X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fstandards%2FTizen%2FContact%2FJSContactOrganization.cpp;h=17c37883294373a26100dae12839bcc2f01965b3;hb=37fad6a43e6da3aa466886818d0c8a8c952f28f2;hp=4e09297cbe222acb388eda98dd5f2ba00fed182f;hpb=65d2bd12c33044282c41ce78c6e1bdbb441d1cff;p=profile%2Fivi%2Fwrt-plugins-tizen.git diff --git a/src/standards/Tizen/Contact/JSContactOrganization.cpp b/src/standards/Tizen/Contact/JSContactOrganization.cpp index 4e09297..17c3788 100755 --- a/src/standards/Tizen/Contact/JSContactOrganization.cpp +++ b/src/standards/Tizen/Contact/JSContactOrganization.cpp @@ -26,7 +26,6 @@ #include #include #include -//#include #include "ContactConverter.h" #define ORGANIZATION_CLASS_NAME "ContactOrganization" @@ -165,7 +164,9 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context, { LogDebug("entered"); -// AceSecurityStatus status = CONTACT_CHECK_ACCESS(controller->getContext(), CONTACT_FUNCTION_API_ADD); + bool js1stParamIsObject = false; + +// AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_ADD); // TIZEN_SYNC_ACCESS_HANDLER(status, context, exception); JSContactOrganizationPriv *priv = static_cast(JSObjectGetPrivate(constructor)); @@ -174,22 +175,22 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context, } JSContextRef gContext = priv->getContext(); -// JSContextRef gContext = JSGlobalContextFactory::getInstance()->get(); - BasicValidator validator = BasicValidatorFactory::getValidator(context, exception); Try { - if (argumentCount > 1) - ThrowMsg(InvalidArgumentException, "Wrong arguments count."); - - if (argumentCount == 1) + if (argumentCount >= 1) { - if (!JSValueIsObject(gContext, arguments[0]) && !JSValueIsNull(gContext, arguments[0])) - ThrowMsg(InvalidArgumentException, "2nd argument is not object."); + if (JSValueIsObject(gContext, arguments[0])) + js1stParamIsObject = true; + + if (!js1stParamIsObject && + !JSValueIsNull(gContext, arguments[0]) && + !JSValueIsUndefined(gContext, arguments[0])) + ThrowMsg(InvalidArgumentException, "1st argument must be a 'object'"); } } Catch(Exception ) { LogError("Argument type mismatch : " << _rethrown_exception.GetMessage()); - *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments"); + *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "1st argument must be a 'object'"); return NULL; } @@ -197,18 +198,14 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context, ContactOrganizationPtr contactOrganization(NULL); Try { - if(argumentCount == 1) - { - if(JSValueIsObject(gContext, arguments[0])) - contactOrganization = converter->toContactOrganizationFromInit(arguments[0]); - } - - if(contactOrganization == NULL) + if(js1stParamIsObject) + contactOrganization = converter->toContactOrganizationFromInit(arguments[0]); + else contactOrganization = ContactOrganizationPtr(new ContactOrganization()); } Catch(Exception) { LogError("Argument type mismatch : " << _rethrown_exception.GetMessage()); - *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments"); + *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::UNKNOWN_ERROR, "Internal error"); return NULL; } @@ -218,7 +215,7 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context, jsobject = createJSObject(gContext, contactOrganization); } Catch(Exception) { LogError("Argument type mismatch : " << _rethrown_exception.GetMessage()); - *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments"); + *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::UNKNOWN_ERROR, "Internal error"); return NULL; }