diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-04-23 17:50:57 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-04-23 17:50:57 -0700 |
commit | ef25d9995e494bd596ffea8fb8c09c2e48daa9a0 (patch) | |
tree | 53e22c58375eb36abe97f5b8f2631b4eba111fbc /fpdfsdk/include/javascript | |
parent | e4fde52cc2c827e637c96e8e1f76ba4644cf718a (diff) | |
download | pdfium-ef25d9995e494bd596ffea8fb8c09c2e48daa9a0.tar.xz |
Remove unused nParamNum values from JS method tables.
The code to validate the number of parameters happens inside each particular
method, rather than prior to method dispatch. As such, there's no point in
having this number take up space in the table.
Add some test to cover at least some of the per-method validations, and
update error messages to be more useful.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1084183008
Diffstat (limited to 'fpdfsdk/include/javascript')
-rw-r--r-- | fpdfsdk/include/javascript/JS_Define.h | 14 | ||||
-rw-r--r-- | fpdfsdk/include/javascript/resource.h | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/fpdfsdk/include/javascript/JS_Define.h b/fpdfsdk/include/javascript/JS_Define.h index 2a033d15c5..1c3c64e4dd 100644 --- a/fpdfsdk/include/javascript/JS_Define.h +++ b/fpdfsdk/include/javascript/JS_Define.h @@ -32,7 +32,6 @@ struct JSMethodSpec { const wchar_t* pName; v8::FunctionCallback pMethodCall; - unsigned nParamNum; }; /* ====================================== PUBLIC DEFINE SPEC ============================================== */ @@ -48,8 +47,8 @@ struct JSMethodSpec #define END_JS_STATIC_PROP() {0, 0, 0}}; #define BEGIN_JS_STATIC_METHOD(js_class_name) JSMethodSpec js_class_name::JS_Class_Methods[] = { -#define JS_STATIC_METHOD_ENTRY(method_name, nargs) {JS_WIDESTRING(method_name), method_name##_static, nargs}, -#define END_JS_STATIC_METHOD() {0, 0, 0}}; +#define JS_STATIC_METHOD_ENTRY(method_name) {JS_WIDESTRING(method_name), method_name##_static}, +#define END_JS_STATIC_METHOD() {0, 0}}; /* ======================================== PROP CALLBACK ============================================ */ @@ -194,7 +193,7 @@ int js_class_name::Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType)\ }\ for (int k=0, szk=sizeof(JS_Class_Methods)/sizeof(JSMethodSpec)-1; k<szk; k++)\ {\ - if (JS_DefineObjMethod(pRuntime, nObjDefnID,JS_Class_Methods[k].pName, JS_Class_Methods[k].pMethodCall, JS_Class_Methods[k].nParamNum) < 0) return -1;\ + if (JS_DefineObjMethod(pRuntime, nObjDefnID,JS_Class_Methods[k].pName, JS_Class_Methods[k].pMethodCall) < 0) return -1;\ }\ return nObjDefnID;\ }\ @@ -372,7 +371,7 @@ int js_class_name::Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType)\ \ for (int k=0, szk=sizeof(JS_Class_Methods)/sizeof(JSMethodSpec)-1; k<szk; k++)\ {\ - if (JS_DefineObjMethod(pRuntime, nObjDefnID,JS_Class_Methods[k].pName,JS_Class_Methods[k].pMethodCall,JS_Class_Methods[k].nParamNum)<0)return -1;\ + if (JS_DefineObjMethod(pRuntime, nObjDefnID,JS_Class_Methods[k].pName,JS_Class_Methods[k].pMethodCall)<0)return -1;\ }\ if (JS_DefineObjAllProperties(pRuntime, nObjDefnID, js_class_name::queryprop_##js_class_name##_static, js_class_name::getprop_##js_class_name##_static,js_class_name::putprop_##js_class_name##_static,js_class_name::delprop_##js_class_name##_static)<0) return -1;\ \ @@ -419,7 +418,7 @@ static int Init(IJS_Runtime* pRuntime) #define BEGIN_JS_STATIC_GLOBAL_FUN(js_class_name) \ JSMethodSpec js_class_name::global_methods[] = { -#define JS_STATIC_GLOBAL_FUN_ENTRY(method_name,nargs) JS_STATIC_METHOD_ENTRY(method_name,nargs) +#define JS_STATIC_GLOBAL_FUN_ENTRY(method_name) JS_STATIC_METHOD_ENTRY(method_name) #define END_JS_STATIC_GLOBAL_FUN() END_JS_STATIC_METHOD() @@ -430,8 +429,7 @@ int js_class_name::Init(IJS_Runtime* pRuntime)\ {\ if (JS_DefineGlobalMethod(pRuntime,\ js_class_name::global_methods[i].pName,\ - js_class_name::global_methods[i].pMethodCall,\ - js_class_name::global_methods[i].nParamNum\ + js_class_name::global_methods[i].pMethodCall\ ) < 0\ )return -1;\ }\ diff --git a/fpdfsdk/include/javascript/resource.h b/fpdfsdk/include/javascript/resource.h index 8f0a25061e..88011f2bb0 100644 --- a/fpdfsdk/include/javascript/resource.h +++ b/fpdfsdk/include/javascript/resource.h @@ -28,6 +28,8 @@ class CJS_Context; #define IDS_STRING_JSPRINT2 25633 #define IDS_STRING_JSNOGLOBAL 25635 #define IDS_STRING_JSREADONLY 25636 +#define IDS_STRING_JSTYPEERROR 25637 +#define IDS_STRING_JSVALUEERROR 25638 CFX_WideString JSGetStringFromID(CJS_Context* pContext, FX_UINT id); CFX_WideString JSFormatErrorString(const char* class_name, |