upload tizen1.0 source
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Tizen / JSSortMode.cpp
index 6e029cc..479e7bd 100755 (executable)
@@ -165,7 +165,9 @@ JSObjectRef JSSortMode::constructor(JSContextRef context,
 {
        LogDebug("entered");
 
-//     AceSecurityStatus status = CONTACT_CHECK_ACCESS(controller->getContext(), CONTACT_FUNCTION_API_ADD);
+       bool js2ndParamIsString = false;
+
+//     AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_ADD);
 //     TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
 
        JSSortModePriv *priv = static_cast<JSSortModePriv*>(JSObjectGetPrivate(constructor));
@@ -178,7 +180,7 @@ JSObjectRef JSSortMode::constructor(JSContextRef context,
 
        BasicValidator validator = BasicValidatorFactory::getValidator(gContext, exception);
        Try {
-               if (argumentCount < 1 || argumentCount > 2)
+               if (argumentCount < 1)
                        ThrowMsg(InvalidArgumentException, "Wrong arguments count.");
 
                if (!JSValueIsString(gContext, arguments[0]))
@@ -186,12 +188,15 @@ JSObjectRef JSSortMode::constructor(JSContextRef context,
 
                if (argumentCount >= 2)
                {
-                       if (!JSValueIsString(gContext, arguments[1]) && !JSValueIsNull(gContext, arguments[1]))
+                       if (JSValueIsString(gContext, arguments[1]))
+                               js2ndParamIsString = true;
+
+                       if (!js2ndParamIsString &&
+                                       !JSValueIsNull(gContext, arguments[1]) &&
+                                       !JSValueIsUndefined(gContext, arguments[1]))
                                ThrowMsg(InvalidArgumentException, "2nd argument is not string.");
                }
 
-               // 3rd argument can be any type.
-
        } Catch(Exception ) {
                LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
                *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
@@ -212,12 +217,11 @@ JSObjectRef JSSortMode::constructor(JSContextRef context,
        }
 
        Try {
-               sortOrder = ASCENDING_SORT_ORDER;
-               if(argumentCount >= 2)
-               {
-                       if(JSValueIsString(gContext, arguments[1]))
-                               sortOrder = converter->toSortOrder(arguments[1]);
-               }
+               if(js2ndParamIsString)
+                       sortOrder = converter->toSortOrder(arguments[1]);
+               else
+                       sortOrder = ASCENDING_SORT_ORDER;
+
        } Catch(Exception) {
                LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
                *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");