diff options
author | tsepez <tsepez@chromium.org> | 2016-06-01 16:10:41 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-01 16:10:41 -0700 |
commit | fb2a824f87f7096382681fd258906823ef93ebec (patch) | |
tree | 1754bc611306c55ffe02e971db11349de530f491 /xfa/fxjse/context.cpp | |
parent | 44f8faf9852a37df1edda34f99e1de4c9d222921 (diff) | |
download | pdfium-fb2a824f87f7096382681fd258906823ef93ebec.tar.xz |
Don't use array for only one compatible mode script
Also, don't invent an enum that has one possible value that is
always set.
Review-Url: https://codereview.chromium.org/2028343002
Diffstat (limited to 'xfa/fxjse/context.cpp')
-rw-r--r-- | xfa/fxjse/context.cpp | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/xfa/fxjse/context.cpp b/xfa/fxjse/context.cpp index a277d4d412..75be76d673 100644 --- a/xfa/fxjse/context.cpp +++ b/xfa/fxjse/context.cpp @@ -10,6 +10,37 @@ #include "xfa/fxjse/scope_inline.h" #include "xfa/fxjse/value.h" +namespace { + +const FX_CHAR szCompatibleModeScript[] = + "(function(global, list) {\n" + " 'use strict';\n" + " var objname;\n" + " for (objname in list) {\n" + " var globalobj = global[objname];\n" + " if (globalobj) {\n" + " list[objname].forEach(function(name) {\n" + " if (!globalobj[name]) {\n" + " Object.defineProperty(globalobj, name, {\n" + " writable: true,\n" + " enumerable: false,\n" + " value: (function(obj) {\n" + " if (arguments.length === 0) {\n" + " throw new TypeError('missing argument 0 when calling " + " function ' + objname + '.' + name);\n" + " }\n" + " return globalobj.prototype[name].apply(obj, " + " Array.prototype.slice.call(arguments, 1));\n" + " })\n" + " });\n" + " }\n" + " });\n" + " }\n" + " }\n" + "}(this, {String: ['substr', 'toUpperCase']}));"; + +} // namespace + v8::Local<v8::Object> FXJSE_GetGlobalObjectFromContext( const v8::Local<v8::Context>& hContext) { return hContext->Global()->GetPrototype().As<v8::Object>(); @@ -73,39 +104,8 @@ CFXJSE_Value* FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext) { return lpValue; } -static const FX_CHAR* szCompatibleModeScripts[] = { - "(function(global, list) {\n" - " 'use strict';\n" - " var objname;\n" - " for (objname in list) {\n" - " var globalobj = global[objname];\n" - " if (globalobj) {\n" - " list[objname].forEach(function(name) {\n" - " if (!globalobj[name]) {\n" - " Object.defineProperty(globalobj, name, {\n" - " writable: true,\n" - " enumerable: false,\n" - " value: (function(obj) {\n" - " if (arguments.length === 0) {\n" - " throw new TypeError('missing argument 0 when calling " - " function ' + objname + '.' + name);\n" - " }\n" - " return globalobj.prototype[name].apply(obj, " - " Array.prototype.slice.call(arguments, 1));\n" - " })\n" - " });\n" - " }\n" - " });\n" - " }\n" - " }\n" - "}(this, {String: ['substr', 'toUpperCase']}));"}; -void FXJSE_Context_EnableCompatibleMode(CFXJSE_Context* pContext, - uint32_t dwCompatibleFlags) { - for (uint32_t i = 0; i < (uint32_t)FXJSE_COMPATIBLEMODEFLAGCOUNT; i++) { - if (dwCompatibleFlags & (1 << i)) { - FXJSE_ExecuteScript(pContext, szCompatibleModeScripts[i], NULL, NULL); - } - } +void FXJSE_Context_EnableCompatibleMode(CFXJSE_Context* pContext) { + FXJSE_ExecuteScript(pContext, szCompatibleModeScript, nullptr, nullptr); } FX_BOOL FXJSE_ExecuteScript(CFXJSE_Context* pContext, |