static bool CheckArgumentsWithinEval(JSContext *cx, Parser<FullParseHandler> &parser, HandleFunction fun) { if (fun->hasRest()) { // It's an error to use |arguments| in a function that has a rest // parameter. parser.report(ParseError, false, NULL, JSMSG_ARGUMENTS_AND_REST); return false; } // Force construction of arguments objects for functions that use // |arguments| within an eval. RootedScript script(cx, fun->nonLazyScript()); if (script->argumentsHasVarBinding()) { if (!JSScript::argumentsOptimizationFailed(cx, script)) return false; } // It's an error to use |arguments| in a legacy generator expression. if (script->isGeneratorExp && script->isLegacyGenerator) { parser.report(ParseError, false, NULL, JSMSG_BAD_GENEXP_BODY, js_arguments_str); return false; } return true; }
static bool CheckArgumentsWithinEval(JSContext *cx, Parser &parser, HandleFunction fun) { if (fun->hasRest()) { // It's an error to use |arguments| in a function that has a rest // parameter. parser.reportError(NULL, JSMSG_ARGUMENTS_AND_REST); return false; } // Force construction of arguments objects for functions that use // |arguments| within an eval. RootedScript script(cx, fun->nonLazyScript()); if (script->argumentsHasVarBinding()) { if (!JSScript::argumentsOptimizationFailed(cx, script)) return false; } return true; }