Reviewers: MarkM,
Description:
Previously, if the mitigation options were absent (null or undefined
value), the parseFunctionBody option would be taken as true, but if
an options record were provided without the parseFunctionBody property,
it would be taken as false.
Resolved this inconsistency in the direction of parseFunctionBody
defaulting to false.
Please review this at https://codereview.appspot.com/257910043/
Affected files (+18, -24 lines):
M src/com/google/caja/ses/startSES.js
Index: src/com/google/caja/ses/startSES.js
diff --git a/src/com/google/caja/ses/startSES.js
b/src/com/google/caja/ses/startSES.js
index
4bbcca8332ca64ab17ad3f9cf42aef3033d99881..1c35690d74b4768706875879626b555afd965404
100644
--- a/src/com/google/caja/ses/startSES.js
+++ b/src/com/google/caja/ses/startSES.js
@@ -305,33 +305,27 @@ ses.startSES = function(global,
* options and their effects.
*/
function resolveOptions(opt_mitigateOpts) {
+ if (opt_mitigateOpts === undefined || opt_mitigateOpts === null) {
+ opt_mitigateOpts = {};
+ }
+
function resolve(opt, defaultOption) {
- return (opt_mitigateOpts && opt in opt_mitigateOpts) ?
- opt_mitigateOpts[opt] : defaultOption;
+ return opt in opt_mitigateOpts ? opt_mitigateOpts[opt] :
defaultOption;
}
+
var options = {};
- if (opt_mitigateOpts === undefined || opt_mitigateOpts === null) {
- options.maskReferenceError = true;
- options.parseFunctionBody = true;
- options.sourceUrl = void 0;
-
- options.rewriteTopLevelVars = true;
- options.rewriteTopLevelFuncs = true;
- options.rewriteFunctionCalls = true;
- options.rewriteTypeOf = false;
- options.forceParseAndRender = false;
- } else {
- options.maskReferenceError = resolve('maskReferenceError', true);
- options.parseFunctionBody = resolve('parseFunctionBody', false);
- options.sourceUrl = resolve('sourceUrl', void 0);
-
- options.rewriteTopLevelVars = resolve('rewriteTopLevelVars', true);
- options.rewriteTopLevelFuncs = resolve('rewriteTopLevelFuncs', true);
- options.rewriteFunctionCalls = resolve('rewriteFunctionCalls', true);
- options.rewriteTypeOf = resolve('rewriteTypeOf',
- !options.maskReferenceError);
- options.forceParseAndRender = resolve('forceParseAndRender', false);
- }
+
+ options.maskReferenceError = resolve('maskReferenceError', true);
+ options.parseFunctionBody = resolve('parseFunctionBody', false);
+ options.sourceUrl = resolve('sourceUrl', void 0);
+
+ options.rewriteTopLevelVars = resolve('rewriteTopLevelVars', true);
+ options.rewriteTopLevelFuncs = resolve('rewriteTopLevelFuncs', true);
+ options.rewriteFunctionCalls = resolve('rewriteFunctionCalls', true);
+ options.rewriteTypeOf = resolve('rewriteTypeOf',
+ !options.maskReferenceError);
+ options.forceParseAndRender = resolve('forceParseAndRender', false);
+
return options;
}
ses.resolveOptions = resolveOptions;
--
---
You received this message because you are subscribed to the Google Groups "Google Caja Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.