From d67fedb12c7eb3d21cc77f422f1934d4817c4d43 Mon Sep 17 00:00:00 2001 From: machenbach Date: Thu, 1 Sep 2016 23:23:07 -0700 Subject: [PATCH] Revert of Allow lexically declared "arguments" in function scope in sloppy mode. (patchset #5 id:100001 of https://codereview.chromium.org/2290753003/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/9470 Original issue's description: > Allow lexically declared "arguments" in function scope in sloppy mode. > > Lexically declared "arguments" in sloppy mode will throw redeclaration error > currently, this patch fixes it by delaying the declaration of arguments until we > fully parse parameter list and function body. > > BUG=v8:4577 > LOG=N > > Committed: https://crrev.com/70a613dd0a5f5d205b46559b55702764464851fa > Cr-Commit-Position: refs/heads/master@{#39109} TBR=adamk@chromium.org,mythria@chromium.org,lpy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4577 Review-Url: https://codereview.chromium.org/2304853002 Cr-Commit-Position: refs/heads/master@{#39115} --- src/ast/scopes.cc | 32 +- src/ast/scopes.h | 1 - src/parsing/parser.cc | 4 - .../CallLookupSlot.golden | 4 +- .../ContextVariables.golden | 523 +++++++++--------- .../CreateRestParameter.golden | 12 +- .../bytecode_expectations/Eval.golden | 4 +- .../bytecode_expectations/LookupSlot.golden | 12 +- .../interpreter/test-bytecode-generator.cc | 5 +- test/cctest/test-parsing.cc | 61 +- .../regress-4577.js => bugs/bug-4577.js} | 8 - 11 files changed, 305 insertions(+), 361 deletions(-) rename test/mjsunit/{regress/regress-4577.js => bugs/bug-4577.js} (68%) diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc index 0dd8f1e6ac..beb5721144 100644 --- a/src/ast/scopes.cc +++ b/src/ast/scopes.cc @@ -486,32 +486,15 @@ void DeclarationScope::DeclareThis(AstValueFactory* ast_value_factory) { receiver_ = var; } -void DeclarationScope::DeclareArguments(AstValueFactory* ast_value_factory) { - DCHECK(is_function_scope()); - DCHECK(!is_arrow_scope()); - - // Check if there's lexically declared variable named arguments to avoid - // redeclaration. See ES#sec-functiondeclarationinstantiation, step 20. - Variable* arg_variable = LookupLocal(ast_value_factory->arguments_string()); - if (arg_variable != nullptr && IsLexicalVariableMode(arg_variable->mode())) { - return; - } - - // Declare 'arguments' variable which exists in all non arrow functions. - // Note that it might never be accessed, in which case it won't be - // allocated during variable allocation. - if (arg_variable == nullptr) { - arguments_ = Declare(zone(), this, ast_value_factory->arguments_string(), - VAR, Variable::ARGUMENTS, kCreatedInitialized); - } else { - arguments_ = arg_variable; - } -} - void DeclarationScope::DeclareDefaultFunctionVariables( AstValueFactory* ast_value_factory) { DCHECK(is_function_scope()); DCHECK(!is_arrow_scope()); + // Declare 'arguments' variable which exists in all non arrow functions. + // Note that it might never be accessed, in which case it won't be + // allocated during variable allocation. + arguments_ = Declare(zone(), this, ast_value_factory->arguments_string(), VAR, + Variable::ARGUMENTS, kCreatedInitialized); new_target_ = Declare(zone(), this, ast_value_factory->new_target_string(), CONST, Variable::NORMAL, kCreatedInitialized); @@ -1516,8 +1499,8 @@ void DeclarationScope::AllocateParameterLocals() { bool uses_sloppy_arguments = false; + // Functions have 'arguments' declared implicitly in all non arrow functions. if (arguments_ != nullptr) { - DCHECK(!is_arrow_scope()); // 'arguments' is used. Unless there is also a parameter called // 'arguments', we must be conservative and allocate all parameters to // the context assuming they will be captured by the arguments object. @@ -1538,6 +1521,9 @@ void DeclarationScope::AllocateParameterLocals() { // allocate the arguments object by nulling out arguments_. arguments_ = nullptr; } + + } else { + DCHECK(is_arrow_scope()); } // The same parameter may occur multiple times in the parameters_ list. diff --git a/src/ast/scopes.h b/src/ast/scopes.h index c45894c077..5f0ebb9ed5 100644 --- a/src/ast/scopes.h +++ b/src/ast/scopes.h @@ -626,7 +626,6 @@ class DeclarationScope : public Scope { void set_asm_function() { asm_module_ = true; } void DeclareThis(AstValueFactory* ast_value_factory); - void DeclareArguments(AstValueFactory* ast_value_factory); void DeclareDefaultFunctionVariables(AstValueFactory* ast_value_factory); // This lookup corresponds to a lookup in the "intermediate" scope sitting diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc index e64b0fd8d3..9f18790eef 100644 --- a/src/parsing/parser.cc +++ b/src/parsing/parser.cc @@ -3861,10 +3861,6 @@ FunctionLiteral* Parser::ParseFunctionLiteral( // Parsing the body may change the language mode in our scope. language_mode = scope->language_mode(); - scope->DeclareArguments(ast_value_factory()); - if (main_scope != scope) { - main_scope->DeclareArguments(ast_value_factory()); - } // Validate name and parameter names. We can do this only after parsing the // function, since the function can declare itself strict. diff --git a/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden b/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden index 347f8e404d..9438503ae4 100644 --- a/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden +++ b/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden @@ -20,9 +20,9 @@ bytecodes: [ B(Ldar), R(this), B(StaContextSlot), R(context), U8(4), B(CreateMappedArguments), - B(StaContextSlot), R(context), U8(6), - B(Ldar), R(new_target), B(StaContextSlot), R(context), U8(5), + B(Ldar), R(new_target), + B(StaContextSlot), R(context), U8(6), /* 30 E> */ B(StackCheck), /* 34 S> */ B(CreateClosure), U8(0), U8(2), /* 36 E> */ B(StaLookupSlotSloppy), U8(1), diff --git a/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden b/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden index f227329dec..b3226e0d64 100644 --- a/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden +++ b/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden @@ -384,531 +384,528 @@ snippet: " var a246 = 0; var a247 = 0; var a248 = 0; - var a249 = 0; eval(); var b = 100; return b " frame size: 3 parameter count: 1 -bytecode array length: 1047 +bytecode array length: 1040 bytecodes: [ - B(CreateFunctionContext), U8(254), + B(CreateFunctionContext), U8(253), B(PushContext), R(0), B(Ldar), R(this), B(StaContextSlot), R(context), U8(4), B(CreateUnmappedArguments), - B(Wide), B(StaContextSlot), R16(context), U16(257), - B(Ldar), R(new_target), B(StaContextSlot), R(context), U8(5), + B(Ldar), R(new_target), + B(StaContextSlot), R(context), U8(6), /* 30 E> */ B(StackCheck), /* 57 S> */ B(LdaZero), - /* 57 E> */ B(StaContextSlot), R(context), U8(6), + /* 57 E> */ B(StaContextSlot), R(context), U8(7), /* 69 S> */ B(LdaZero), - /* 69 E> */ B(StaContextSlot), R(context), U8(7), + /* 69 E> */ B(StaContextSlot), R(context), U8(8), /* 81 S> */ B(LdaZero), - /* 81 E> */ B(StaContextSlot), R(context), U8(8), + /* 81 E> */ B(StaContextSlot), R(context), U8(9), /* 93 S> */ B(LdaZero), - /* 93 E> */ B(StaContextSlot), R(context), U8(9), + /* 93 E> */ B(StaContextSlot), R(context), U8(10), /* 105 S> */ B(LdaZero), - /* 105 E> */ B(StaContextSlot), R(context), U8(10), + /* 105 E> */ B(StaContextSlot), R(context), U8(11), /* 117 S> */ B(LdaZero), - /* 117 E> */ B(StaContextSlot), R(context), U8(11), + /* 117 E> */ B(StaContextSlot), R(context), U8(12), /* 129 S> */ B(LdaZero), - /* 129 E> */ B(StaContextSlot), R(context), U8(12), + /* 129 E> */ B(StaContextSlot), R(context), U8(13), /* 141 S> */ B(LdaZero), - /* 141 E> */ B(StaContextSlot), R(context), U8(13), + /* 141 E> */ B(StaContextSlot), R(context), U8(14), /* 153 S> */ B(LdaZero), - /* 153 E> */ B(StaContextSlot), R(context), U8(14), + /* 153 E> */ B(StaContextSlot), R(context), U8(15), /* 165 S> */ B(LdaZero), - /* 165 E> */ B(StaContextSlot), R(context), U8(15), + /* 165 E> */ B(StaContextSlot), R(context), U8(16), /* 178 S> */ B(LdaZero), - /* 178 E> */ B(StaContextSlot), R(context), U8(16), + /* 178 E> */ B(StaContextSlot), R(context), U8(17), /* 191 S> */ B(LdaZero), - /* 191 E> */ B(StaContextSlot), R(context), U8(17), + /* 191 E> */ B(StaContextSlot), R(context), U8(18), /* 204 S> */ B(LdaZero), - /* 204 E> */ B(StaContextSlot), R(context), U8(18), + /* 204 E> */ B(StaContextSlot), R(context), U8(19), /* 217 S> */ B(LdaZero), - /* 217 E> */ B(StaContextSlot), R(context), U8(19), + /* 217 E> */ B(StaContextSlot), R(context), U8(20), /* 230 S> */ B(LdaZero), - /* 230 E> */ B(StaContextSlot), R(context), U8(20), + /* 230 E> */ B(StaContextSlot), R(context), U8(21), /* 243 S> */ B(LdaZero), - /* 243 E> */ B(StaContextSlot), R(context), U8(21), + /* 243 E> */ B(StaContextSlot), R(context), U8(22), /* 256 S> */ B(LdaZero), - /* 256 E> */ B(StaContextSlot), R(context), U8(22), + /* 256 E> */ B(StaContextSlot), R(context), U8(23), /* 269 S> */ B(LdaZero), - /* 269 E> */ B(StaContextSlot), R(context), U8(23), + /* 269 E> */ B(StaContextSlot), R(context), U8(24), /* 282 S> */ B(LdaZero), - /* 282 E> */ B(StaContextSlot), R(context), U8(24), + /* 282 E> */ B(StaContextSlot), R(context), U8(25), /* 295 S> */ B(LdaZero), - /* 295 E> */ B(StaContextSlot), R(context), U8(25), + /* 295 E> */ B(StaContextSlot), R(context), U8(26), /* 308 S> */ B(LdaZero), - /* 308 E> */ B(StaContextSlot), R(context), U8(26), + /* 308 E> */ B(StaContextSlot), R(context), U8(27), /* 321 S> */ B(LdaZero), - /* 321 E> */ B(StaContextSlot), R(context), U8(27), + /* 321 E> */ B(StaContextSlot), R(context), U8(28), /* 334 S> */ B(LdaZero), - /* 334 E> */ B(StaContextSlot), R(context), U8(28), + /* 334 E> */ B(StaContextSlot), R(context), U8(29), /* 347 S> */ B(LdaZero), - /* 347 E> */ B(StaContextSlot), R(context), U8(29), + /* 347 E> */ B(StaContextSlot), R(context), U8(30), /* 360 S> */ B(LdaZero), - /* 360 E> */ B(StaContextSlot), R(context), U8(30), + /* 360 E> */ B(StaContextSlot), R(context), U8(31), /* 373 S> */ B(LdaZero), - /* 373 E> */ B(StaContextSlot), R(context), U8(31), + /* 373 E> */ B(StaContextSlot), R(context), U8(32), /* 386 S> */ B(LdaZero), - /* 386 E> */ B(StaContextSlot), R(context), U8(32), + /* 386 E> */ B(StaContextSlot), R(context), U8(33), /* 399 S> */ B(LdaZero), - /* 399 E> */ B(StaContextSlot), R(context), U8(33), + /* 399 E> */ B(StaContextSlot), R(context), U8(34), /* 412 S> */ B(LdaZero), - /* 412 E> */ B(StaContextSlot), R(context), U8(34), + /* 412 E> */ B(StaContextSlot), R(context), U8(35), /* 425 S> */ B(LdaZero), - /* 425 E> */ B(StaContextSlot), R(context), U8(35), + /* 425 E> */ B(StaContextSlot), R(context), U8(36), /* 438 S> */ B(LdaZero), - /* 438 E> */ B(StaContextSlot), R(context), U8(36), + /* 438 E> */ B(StaContextSlot), R(context), U8(37), /* 451 S> */ B(LdaZero), - /* 451 E> */ B(StaContextSlot), R(context), U8(37), + /* 451 E> */ B(StaContextSlot), R(context), U8(38), /* 464 S> */ B(LdaZero), - /* 464 E> */ B(StaContextSlot), R(context), U8(38), + /* 464 E> */ B(StaContextSlot), R(context), U8(39), /* 477 S> */ B(LdaZero), - /* 477 E> */ B(StaContextSlot), R(context), U8(39), + /* 477 E> */ B(StaContextSlot), R(context), U8(40), /* 490 S> */ B(LdaZero), - /* 490 E> */ B(StaContextSlot), R(context), U8(40), + /* 490 E> */ B(StaContextSlot), R(context), U8(41), /* 503 S> */ B(LdaZero), - /* 503 E> */ B(StaContextSlot), R(context), U8(41), + /* 503 E> */ B(StaContextSlot), R(context), U8(42), /* 516 S> */ B(LdaZero), - /* 516 E> */ B(StaContextSlot), R(context), U8(42), + /* 516 E> */ B(StaContextSlot), R(context), U8(43), /* 529 S> */ B(LdaZero), - /* 529 E> */ B(StaContextSlot), R(context), U8(43), + /* 529 E> */ B(StaContextSlot), R(context), U8(44), /* 542 S> */ B(LdaZero), - /* 542 E> */ B(StaContextSlot), R(context), U8(44), + /* 542 E> */ B(StaContextSlot), R(context), U8(45), /* 555 S> */ B(LdaZero), - /* 555 E> */ B(StaContextSlot), R(context), U8(45), + /* 555 E> */ B(StaContextSlot), R(context), U8(46), /* 568 S> */ B(LdaZero), - /* 568 E> */ B(StaContextSlot), R(context), U8(46), + /* 568 E> */ B(StaContextSlot), R(context), U8(47), /* 581 S> */ B(LdaZero), - /* 581 E> */ B(StaContextSlot), R(context), U8(47), + /* 581 E> */ B(StaContextSlot), R(context), U8(48), /* 594 S> */ B(LdaZero), - /* 594 E> */ B(StaContextSlot), R(context), U8(48), + /* 594 E> */ B(StaContextSlot), R(context), U8(49), /* 607 S> */ B(LdaZero), - /* 607 E> */ B(StaContextSlot), R(context), U8(49), + /* 607 E> */ B(StaContextSlot), R(context), U8(50), /* 620 S> */ B(LdaZero), - /* 620 E> */ B(StaContextSlot), R(context), U8(50), + /* 620 E> */ B(StaContextSlot), R(context), U8(51), /* 633 S> */ B(LdaZero), - /* 633 E> */ B(StaContextSlot), R(context), U8(51), + /* 633 E> */ B(StaContextSlot), R(context), U8(52), /* 646 S> */ B(LdaZero), - /* 646 E> */ B(StaContextSlot), R(context), U8(52), + /* 646 E> */ B(StaContextSlot), R(context), U8(53), /* 659 S> */ B(LdaZero), - /* 659 E> */ B(StaContextSlot), R(context), U8(53), + /* 659 E> */ B(StaContextSlot), R(context), U8(54), /* 672 S> */ B(LdaZero), - /* 672 E> */ B(StaContextSlot), R(context), U8(54), + /* 672 E> */ B(StaContextSlot), R(context), U8(55), /* 685 S> */ B(LdaZero), - /* 685 E> */ B(StaContextSlot), R(context), U8(55), + /* 685 E> */ B(StaContextSlot), R(context), U8(56), /* 698 S> */ B(LdaZero), - /* 698 E> */ B(StaContextSlot), R(context), U8(56), + /* 698 E> */ B(StaContextSlot), R(context), U8(57), /* 711 S> */ B(LdaZero), - /* 711 E> */ B(StaContextSlot), R(context), U8(57), + /* 711 E> */ B(StaContextSlot), R(context), U8(58), /* 724 S> */ B(LdaZero), - /* 724 E> */ B(StaContextSlot), R(context), U8(58), + /* 724 E> */ B(StaContextSlot), R(context), U8(59), /* 737 S> */ B(LdaZero), - /* 737 E> */ B(StaContextSlot), R(context), U8(59), + /* 737 E> */ B(StaContextSlot), R(context), U8(60), /* 750 S> */ B(LdaZero), - /* 750 E> */ B(StaContextSlot), R(context), U8(60), + /* 750 E> */ B(StaContextSlot), R(context), U8(61), /* 763 S> */ B(LdaZero), - /* 763 E> */ B(StaContextSlot), R(context), U8(61), + /* 763 E> */ B(StaContextSlot), R(context), U8(62), /* 776 S> */ B(LdaZero), - /* 776 E> */ B(StaContextSlot), R(context), U8(62), + /* 776 E> */ B(StaContextSlot), R(context), U8(63), /* 789 S> */ B(LdaZero), - /* 789 E> */ B(StaContextSlot), R(context), U8(63), + /* 789 E> */ B(StaContextSlot), R(context), U8(64), /* 802 S> */ B(LdaZero), - /* 802 E> */ B(StaContextSlot), R(context), U8(64), + /* 802 E> */ B(StaContextSlot), R(context), U8(65), /* 815 S> */ B(LdaZero), - /* 815 E> */ B(StaContextSlot), R(context), U8(65), + /* 815 E> */ B(StaContextSlot), R(context), U8(66), /* 828 S> */ B(LdaZero), - /* 828 E> */ B(StaContextSlot), R(context), U8(66), + /* 828 E> */ B(StaContextSlot), R(context), U8(67), /* 841 S> */ B(LdaZero), - /* 841 E> */ B(StaContextSlot), R(context), U8(67), + /* 841 E> */ B(StaContextSlot), R(context), U8(68), /* 854 S> */ B(LdaZero), - /* 854 E> */ B(StaContextSlot), R(context), U8(68), + /* 854 E> */ B(StaContextSlot), R(context), U8(69), /* 867 S> */ B(LdaZero), - /* 867 E> */ B(StaContextSlot), R(context), U8(69), + /* 867 E> */ B(StaContextSlot), R(context), U8(70), /* 880 S> */ B(LdaZero), - /* 880 E> */ B(StaContextSlot), R(context), U8(70), + /* 880 E> */ B(StaContextSlot), R(context), U8(71), /* 893 S> */ B(LdaZero), - /* 893 E> */ B(StaContextSlot), R(context), U8(71), + /* 893 E> */ B(StaContextSlot), R(context), U8(72), /* 906 S> */ B(LdaZero), - /* 906 E> */ B(StaContextSlot), R(context), U8(72), + /* 906 E> */ B(StaContextSlot), R(context), U8(73), /* 919 S> */ B(LdaZero), - /* 919 E> */ B(StaContextSlot), R(context), U8(73), + /* 919 E> */ B(StaContextSlot), R(context), U8(74), /* 932 S> */ B(LdaZero), - /* 932 E> */ B(StaContextSlot), R(context), U8(74), + /* 932 E> */ B(StaContextSlot), R(context), U8(75), /* 945 S> */ B(LdaZero), - /* 945 E> */ B(StaContextSlot), R(context), U8(75), + /* 945 E> */ B(StaContextSlot), R(context), U8(76), /* 958 S> */ B(LdaZero), - /* 958 E> */ B(StaContextSlot), R(context), U8(76), + /* 958 E> */ B(StaContextSlot), R(context), U8(77), /* 971 S> */ B(LdaZero), - /* 971 E> */ B(StaContextSlot), R(context), U8(77), + /* 971 E> */ B(StaContextSlot), R(context), U8(78), /* 984 S> */ B(LdaZero), - /* 984 E> */ B(StaContextSlot), R(context), U8(78), + /* 984 E> */ B(StaContextSlot), R(context), U8(79), /* 997 S> */ B(LdaZero), - /* 997 E> */ B(StaContextSlot), R(context), U8(79), + /* 997 E> */ B(StaContextSlot), R(context), U8(80), /* 1010 S> */ B(LdaZero), - /* 1010 E> */ B(StaContextSlot), R(context), U8(80), + /* 1010 E> */ B(StaContextSlot), R(context), U8(81), /* 1023 S> */ B(LdaZero), - /* 1023 E> */ B(StaContextSlot), R(context), U8(81), + /* 1023 E> */ B(StaContextSlot), R(context), U8(82), /* 1036 S> */ B(LdaZero), - /* 1036 E> */ B(StaContextSlot), R(context), U8(82), + /* 1036 E> */ B(StaContextSlot), R(context), U8(83), /* 1049 S> */ B(LdaZero), - /* 1049 E> */ B(StaContextSlot), R(context), U8(83), + /* 1049 E> */ B(StaContextSlot), R(context), U8(84), /* 1062 S> */ B(LdaZero), - /* 1062 E> */ B(StaContextSlot), R(context), U8(84), + /* 1062 E> */ B(StaContextSlot), R(context), U8(85), /* 1075 S> */ B(LdaZero), - /* 1075 E> */ B(StaContextSlot), R(context), U8(85), + /* 1075 E> */ B(StaContextSlot), R(context), U8(86), /* 1088 S> */ B(LdaZero), - /* 1088 E> */ B(StaContextSlot), R(context), U8(86), + /* 1088 E> */ B(StaContextSlot), R(context), U8(87), /* 1101 S> */ B(LdaZero), - /* 1101 E> */ B(StaContextSlot), R(context), U8(87), + /* 1101 E> */ B(StaContextSlot), R(context), U8(88), /* 1114 S> */ B(LdaZero), - /* 1114 E> */ B(StaContextSlot), R(context), U8(88), + /* 1114 E> */ B(StaContextSlot), R(context), U8(89), /* 1127 S> */ B(LdaZero), - /* 1127 E> */ B(StaContextSlot), R(context), U8(89), + /* 1127 E> */ B(StaContextSlot), R(context), U8(90), /* 1140 S> */ B(LdaZero), - /* 1140 E> */ B(StaContextSlot), R(context), U8(90), + /* 1140 E> */ B(StaContextSlot), R(context), U8(91), /* 1153 S> */ B(LdaZero), - /* 1153 E> */ B(StaContextSlot), R(context), U8(91), + /* 1153 E> */ B(StaContextSlot), R(context), U8(92), /* 1166 S> */ B(LdaZero), - /* 1166 E> */ B(StaContextSlot), R(context), U8(92), + /* 1166 E> */ B(StaContextSlot), R(context), U8(93), /* 1179 S> */ B(LdaZero), - /* 1179 E> */ B(StaContextSlot), R(context), U8(93), + /* 1179 E> */ B(StaContextSlot), R(context), U8(94), /* 1192 S> */ B(LdaZero), - /* 1192 E> */ B(StaContextSlot), R(context), U8(94), + /* 1192 E> */ B(StaContextSlot), R(context), U8(95), /* 1205 S> */ B(LdaZero), - /* 1205 E> */ B(StaContextSlot), R(context), U8(95), + /* 1205 E> */ B(StaContextSlot), R(context), U8(96), /* 1218 S> */ B(LdaZero), - /* 1218 E> */ B(StaContextSlot), R(context), U8(96), + /* 1218 E> */ B(StaContextSlot), R(context), U8(97), /* 1231 S> */ B(LdaZero), - /* 1231 E> */ B(StaContextSlot), R(context), U8(97), + /* 1231 E> */ B(StaContextSlot), R(context), U8(98), /* 1244 S> */ B(LdaZero), - /* 1244 E> */ B(StaContextSlot), R(context), U8(98), + /* 1244 E> */ B(StaContextSlot), R(context), U8(99), /* 1257 S> */ B(LdaZero), - /* 1257 E> */ B(StaContextSlot), R(context), U8(99), + /* 1257 E> */ B(StaContextSlot), R(context), U8(100), /* 1270 S> */ B(LdaZero), - /* 1270 E> */ B(StaContextSlot), R(context), U8(100), + /* 1270 E> */ B(StaContextSlot), R(context), U8(101), /* 1283 S> */ B(LdaZero), - /* 1283 E> */ B(StaContextSlot), R(context), U8(101), + /* 1283 E> */ B(StaContextSlot), R(context), U8(102), /* 1296 S> */ B(LdaZero), - /* 1296 E> */ B(StaContextSlot), R(context), U8(102), + /* 1296 E> */ B(StaContextSlot), R(context), U8(103), /* 1309 S> */ B(LdaZero), - /* 1309 E> */ B(StaContextSlot), R(context), U8(103), + /* 1309 E> */ B(StaContextSlot), R(context), U8(104), /* 1322 S> */ B(LdaZero), - /* 1322 E> */ B(StaContextSlot), R(context), U8(104), + /* 1322 E> */ B(StaContextSlot), R(context), U8(105), /* 1335 S> */ B(LdaZero), - /* 1335 E> */ B(StaContextSlot), R(context), U8(105), + /* 1335 E> */ B(StaContextSlot), R(context), U8(106), /* 1349 S> */ B(LdaZero), - /* 1349 E> */ B(StaContextSlot), R(context), U8(106), + /* 1349 E> */ B(StaContextSlot), R(context), U8(107), /* 1363 S> */ B(LdaZero), - /* 1363 E> */ B(StaContextSlot), R(context), U8(107), + /* 1363 E> */ B(StaContextSlot), R(context), U8(108), /* 1377 S> */ B(LdaZero), - /* 1377 E> */ B(StaContextSlot), R(context), U8(108), + /* 1377 E> */ B(StaContextSlot), R(context), U8(109), /* 1391 S> */ B(LdaZero), - /* 1391 E> */ B(StaContextSlot), R(context), U8(109), + /* 1391 E> */ B(StaContextSlot), R(context), U8(110), /* 1405 S> */ B(LdaZero), - /* 1405 E> */ B(StaContextSlot), R(context), U8(110), + /* 1405 E> */ B(StaContextSlot), R(context), U8(111), /* 1419 S> */ B(LdaZero), - /* 1419 E> */ B(StaContextSlot), R(context), U8(111), + /* 1419 E> */ B(StaContextSlot), R(context), U8(112), /* 1433 S> */ B(LdaZero), - /* 1433 E> */ B(StaContextSlot), R(context), U8(112), + /* 1433 E> */ B(StaContextSlot), R(context), U8(113), /* 1447 S> */ B(LdaZero), - /* 1447 E> */ B(StaContextSlot), R(context), U8(113), + /* 1447 E> */ B(StaContextSlot), R(context), U8(114), /* 1461 S> */ B(LdaZero), - /* 1461 E> */ B(StaContextSlot), R(context), U8(114), + /* 1461 E> */ B(StaContextSlot), R(context), U8(115), /* 1475 S> */ B(LdaZero), - /* 1475 E> */ B(StaContextSlot), R(context), U8(115), + /* 1475 E> */ B(StaContextSlot), R(context), U8(116), /* 1489 S> */ B(LdaZero), - /* 1489 E> */ B(StaContextSlot), R(context), U8(116), + /* 1489 E> */ B(StaContextSlot), R(context), U8(117), /* 1503 S> */ B(LdaZero), - /* 1503 E> */ B(StaContextSlot), R(context), U8(117), + /* 1503 E> */ B(StaContextSlot), R(context), U8(118), /* 1517 S> */ B(LdaZero), - /* 1517 E> */ B(StaContextSlot), R(context), U8(118), + /* 1517 E> */ B(StaContextSlot), R(context), U8(119), /* 1531 S> */ B(LdaZero), - /* 1531 E> */ B(StaContextSlot), R(context), U8(119), + /* 1531 E> */ B(StaContextSlot), R(context), U8(120), /* 1545 S> */ B(LdaZero), - /* 1545 E> */ B(StaContextSlot), R(context), U8(120), + /* 1545 E> */ B(StaContextSlot), R(context), U8(121), /* 1559 S> */ B(LdaZero), - /* 1559 E> */ B(StaContextSlot), R(context), U8(121), + /* 1559 E> */ B(StaContextSlot), R(context), U8(122), /* 1573 S> */ B(LdaZero), - /* 1573 E> */ B(StaContextSlot), R(context), U8(122), + /* 1573 E> */ B(StaContextSlot), R(context), U8(123), /* 1587 S> */ B(LdaZero), - /* 1587 E> */ B(StaContextSlot), R(context), U8(123), + /* 1587 E> */ B(StaContextSlot), R(context), U8(124), /* 1601 S> */ B(LdaZero), - /* 1601 E> */ B(StaContextSlot), R(context), U8(124), + /* 1601 E> */ B(StaContextSlot), R(context), U8(125), /* 1615 S> */ B(LdaZero), - /* 1615 E> */ B(StaContextSlot), R(context), U8(125), + /* 1615 E> */ B(StaContextSlot), R(context), U8(126), /* 1629 S> */ B(LdaZero), - /* 1629 E> */ B(StaContextSlot), R(context), U8(126), + /* 1629 E> */ B(StaContextSlot), R(context), U8(127), /* 1643 S> */ B(LdaZero), - /* 1643 E> */ B(StaContextSlot), R(context), U8(127), + /* 1643 E> */ B(StaContextSlot), R(context), U8(128), /* 1657 S> */ B(LdaZero), - /* 1657 E> */ B(StaContextSlot), R(context), U8(128), + /* 1657 E> */ B(StaContextSlot), R(context), U8(129), /* 1671 S> */ B(LdaZero), - /* 1671 E> */ B(StaContextSlot), R(context), U8(129), + /* 1671 E> */ B(StaContextSlot), R(context), U8(130), /* 1685 S> */ B(LdaZero), - /* 1685 E> */ B(StaContextSlot), R(context), U8(130), + /* 1685 E> */ B(StaContextSlot), R(context), U8(131), /* 1699 S> */ B(LdaZero), - /* 1699 E> */ B(StaContextSlot), R(context), U8(131), + /* 1699 E> */ B(StaContextSlot), R(context), U8(132), /* 1713 S> */ B(LdaZero), - /* 1713 E> */ B(StaContextSlot), R(context), U8(132), + /* 1713 E> */ B(StaContextSlot), R(context), U8(133), /* 1727 S> */ B(LdaZero), - /* 1727 E> */ B(StaContextSlot), R(context), U8(133), + /* 1727 E> */ B(StaContextSlot), R(context), U8(134), /* 1741 S> */ B(LdaZero), - /* 1741 E> */ B(StaContextSlot), R(context), U8(134), + /* 1741 E> */ B(StaContextSlot), R(context), U8(135), /* 1755 S> */ B(LdaZero), - /* 1755 E> */ B(StaContextSlot), R(context), U8(135), + /* 1755 E> */ B(StaContextSlot), R(context), U8(136), /* 1769 S> */ B(LdaZero), - /* 1769 E> */ B(StaContextSlot), R(context), U8(136), + /* 1769 E> */ B(StaContextSlot), R(context), U8(137), /* 1783 S> */ B(LdaZero), - /* 1783 E> */ B(StaContextSlot), R(context), U8(137), + /* 1783 E> */ B(StaContextSlot), R(context), U8(138), /* 1797 S> */ B(LdaZero), - /* 1797 E> */ B(StaContextSlot), R(context), U8(138), + /* 1797 E> */ B(StaContextSlot), R(context), U8(139), /* 1811 S> */ B(LdaZero), - /* 1811 E> */ B(StaContextSlot), R(context), U8(139), + /* 1811 E> */ B(StaContextSlot), R(context), U8(140), /* 1825 S> */ B(LdaZero), - /* 1825 E> */ B(StaContextSlot), R(context), U8(140), + /* 1825 E> */ B(StaContextSlot), R(context), U8(141), /* 1839 S> */ B(LdaZero), - /* 1839 E> */ B(StaContextSlot), R(context), U8(141), + /* 1839 E> */ B(StaContextSlot), R(context), U8(142), /* 1853 S> */ B(LdaZero), - /* 1853 E> */ B(StaContextSlot), R(context), U8(142), + /* 1853 E> */ B(StaContextSlot), R(context), U8(143), /* 1867 S> */ B(LdaZero), - /* 1867 E> */ B(StaContextSlot), R(context), U8(143), + /* 1867 E> */ B(StaContextSlot), R(context), U8(144), /* 1881 S> */ B(LdaZero), - /* 1881 E> */ B(StaContextSlot), R(context), U8(144), + /* 1881 E> */ B(StaContextSlot), R(context), U8(145), /* 1895 S> */ B(LdaZero), - /* 1895 E> */ B(StaContextSlot), R(context), U8(145), + /* 1895 E> */ B(StaContextSlot), R(context), U8(146), /* 1909 S> */ B(LdaZero), - /* 1909 E> */ B(StaContextSlot), R(context), U8(146), + /* 1909 E> */ B(StaContextSlot), R(context), U8(147), /* 1923 S> */ B(LdaZero), - /* 1923 E> */ B(StaContextSlot), R(context), U8(147), + /* 1923 E> */ B(StaContextSlot), R(context), U8(148), /* 1937 S> */ B(LdaZero), - /* 1937 E> */ B(StaContextSlot), R(context), U8(148), + /* 1937 E> */ B(StaContextSlot), R(context), U8(149), /* 1951 S> */ B(LdaZero), - /* 1951 E> */ B(StaContextSlot), R(context), U8(149), + /* 1951 E> */ B(StaContextSlot), R(context), U8(150), /* 1965 S> */ B(LdaZero), - /* 1965 E> */ B(StaContextSlot), R(context), U8(150), + /* 1965 E> */ B(StaContextSlot), R(context), U8(151), /* 1979 S> */ B(LdaZero), - /* 1979 E> */ B(StaContextSlot), R(context), U8(151), + /* 1979 E> */ B(StaContextSlot), R(context), U8(152), /* 1993 S> */ B(LdaZero), - /* 1993 E> */ B(StaContextSlot), R(context), U8(152), + /* 1993 E> */ B(StaContextSlot), R(context), U8(153), /* 2007 S> */ B(LdaZero), - /* 2007 E> */ B(StaContextSlot), R(context), U8(153), + /* 2007 E> */ B(StaContextSlot), R(context), U8(154), /* 2021 S> */ B(LdaZero), - /* 2021 E> */ B(StaContextSlot), R(context), U8(154), + /* 2021 E> */ B(StaContextSlot), R(context), U8(155), /* 2035 S> */ B(LdaZero), - /* 2035 E> */ B(StaContextSlot), R(context), U8(155), + /* 2035 E> */ B(StaContextSlot), R(context), U8(156), /* 2049 S> */ B(LdaZero), - /* 2049 E> */ B(StaContextSlot), R(context), U8(156), + /* 2049 E> */ B(StaContextSlot), R(context), U8(157), /* 2063 S> */ B(LdaZero), - /* 2063 E> */ B(StaContextSlot), R(context), U8(157), + /* 2063 E> */ B(StaContextSlot), R(context), U8(158), /* 2077 S> */ B(LdaZero), - /* 2077 E> */ B(StaContextSlot), R(context), U8(158), + /* 2077 E> */ B(StaContextSlot), R(context), U8(159), /* 2091 S> */ B(LdaZero), - /* 2091 E> */ B(StaContextSlot), R(context), U8(159), + /* 2091 E> */ B(StaContextSlot), R(context), U8(160), /* 2105 S> */ B(LdaZero), - /* 2105 E> */ B(StaContextSlot), R(context), U8(160), + /* 2105 E> */ B(StaContextSlot), R(context), U8(161), /* 2119 S> */ B(LdaZero), - /* 2119 E> */ B(StaContextSlot), R(context), U8(161), + /* 2119 E> */ B(StaContextSlot), R(context), U8(162), /* 2133 S> */ B(LdaZero), - /* 2133 E> */ B(StaContextSlot), R(context), U8(162), + /* 2133 E> */ B(StaContextSlot), R(context), U8(163), /* 2147 S> */ B(LdaZero), - /* 2147 E> */ B(StaContextSlot), R(context), U8(163), + /* 2147 E> */ B(StaContextSlot), R(context), U8(164), /* 2161 S> */ B(LdaZero), - /* 2161 E> */ B(StaContextSlot), R(context), U8(164), + /* 2161 E> */ B(StaContextSlot), R(context), U8(165), /* 2175 S> */ B(LdaZero), - /* 2175 E> */ B(StaContextSlot), R(context), U8(165), + /* 2175 E> */ B(StaContextSlot), R(context), U8(166), /* 2189 S> */ B(LdaZero), - /* 2189 E> */ B(StaContextSlot), R(context), U8(166), + /* 2189 E> */ B(StaContextSlot), R(context), U8(167), /* 2203 S> */ B(LdaZero), - /* 2203 E> */ B(StaContextSlot), R(context), U8(167), + /* 2203 E> */ B(StaContextSlot), R(context), U8(168), /* 2217 S> */ B(LdaZero), - /* 2217 E> */ B(StaContextSlot), R(context), U8(168), + /* 2217 E> */ B(StaContextSlot), R(context), U8(169), /* 2231 S> */ B(LdaZero), - /* 2231 E> */ B(StaContextSlot), R(context), U8(169), + /* 2231 E> */ B(StaContextSlot), R(context), U8(170), /* 2245 S> */ B(LdaZero), - /* 2245 E> */ B(StaContextSlot), R(context), U8(170), + /* 2245 E> */ B(StaContextSlot), R(context), U8(171), /* 2259 S> */ B(LdaZero), - /* 2259 E> */ B(StaContextSlot), R(context), U8(171), + /* 2259 E> */ B(StaContextSlot), R(context), U8(172), /* 2273 S> */ B(LdaZero), - /* 2273 E> */ B(StaContextSlot), R(context), U8(172), + /* 2273 E> */ B(StaContextSlot), R(context), U8(173), /* 2287 S> */ B(LdaZero), - /* 2287 E> */ B(StaContextSlot), R(context), U8(173), + /* 2287 E> */ B(StaContextSlot), R(context), U8(174), /* 2301 S> */ B(LdaZero), - /* 2301 E> */ B(StaContextSlot), R(context), U8(174), + /* 2301 E> */ B(StaContextSlot), R(context), U8(175), /* 2315 S> */ B(LdaZero), - /* 2315 E> */ B(StaContextSlot), R(context), U8(175), + /* 2315 E> */ B(StaContextSlot), R(context), U8(176), /* 2329 S> */ B(LdaZero), - /* 2329 E> */ B(StaContextSlot), R(context), U8(176), + /* 2329 E> */ B(StaContextSlot), R(context), U8(177), /* 2343 S> */ B(LdaZero), - /* 2343 E> */ B(StaContextSlot), R(context), U8(177), + /* 2343 E> */ B(StaContextSlot), R(context), U8(178), /* 2357 S> */ B(LdaZero), - /* 2357 E> */ B(StaContextSlot), R(context), U8(178), + /* 2357 E> */ B(StaContextSlot), R(context), U8(179), /* 2371 S> */ B(LdaZero), - /* 2371 E> */ B(StaContextSlot), R(context), U8(179), + /* 2371 E> */ B(StaContextSlot), R(context), U8(180), /* 2385 S> */ B(LdaZero), - /* 2385 E> */ B(StaContextSlot), R(context), U8(180), + /* 2385 E> */ B(StaContextSlot), R(context), U8(181), /* 2399 S> */ B(LdaZero), - /* 2399 E> */ B(StaContextSlot), R(context), U8(181), + /* 2399 E> */ B(StaContextSlot), R(context), U8(182), /* 2413 S> */ B(LdaZero), - /* 2413 E> */ B(StaContextSlot), R(context), U8(182), + /* 2413 E> */ B(StaContextSlot), R(context), U8(183), /* 2427 S> */ B(LdaZero), - /* 2427 E> */ B(StaContextSlot), R(context), U8(183), + /* 2427 E> */ B(StaContextSlot), R(context), U8(184), /* 2441 S> */ B(LdaZero), - /* 2441 E> */ B(StaContextSlot), R(context), U8(184), + /* 2441 E> */ B(StaContextSlot), R(context), U8(185), /* 2455 S> */ B(LdaZero), - /* 2455 E> */ B(StaContextSlot), R(context), U8(185), + /* 2455 E> */ B(StaContextSlot), R(context), U8(186), /* 2469 S> */ B(LdaZero), - /* 2469 E> */ B(StaContextSlot), R(context), U8(186), + /* 2469 E> */ B(StaContextSlot), R(context), U8(187), /* 2483 S> */ B(LdaZero), - /* 2483 E> */ B(StaContextSlot), R(context), U8(187), + /* 2483 E> */ B(StaContextSlot), R(context), U8(188), /* 2497 S> */ B(LdaZero), - /* 2497 E> */ B(StaContextSlot), R(context), U8(188), + /* 2497 E> */ B(StaContextSlot), R(context), U8(189), /* 2511 S> */ B(LdaZero), - /* 2511 E> */ B(StaContextSlot), R(context), U8(189), + /* 2511 E> */ B(StaContextSlot), R(context), U8(190), /* 2525 S> */ B(LdaZero), - /* 2525 E> */ B(StaContextSlot), R(context), U8(190), + /* 2525 E> */ B(StaContextSlot), R(context), U8(191), /* 2539 S> */ B(LdaZero), - /* 2539 E> */ B(StaContextSlot), R(context), U8(191), + /* 2539 E> */ B(StaContextSlot), R(context), U8(192), /* 2553 S> */ B(LdaZero), - /* 2553 E> */ B(StaContextSlot), R(context), U8(192), + /* 2553 E> */ B(StaContextSlot), R(context), U8(193), /* 2567 S> */ B(LdaZero), - /* 2567 E> */ B(StaContextSlot), R(context), U8(193), + /* 2567 E> */ B(StaContextSlot), R(context), U8(194), /* 2581 S> */ B(LdaZero), - /* 2581 E> */ B(StaContextSlot), R(context), U8(194), + /* 2581 E> */ B(StaContextSlot), R(context), U8(195), /* 2595 S> */ B(LdaZero), - /* 2595 E> */ B(StaContextSlot), R(context), U8(195), + /* 2595 E> */ B(StaContextSlot), R(context), U8(196), /* 2609 S> */ B(LdaZero), - /* 2609 E> */ B(StaContextSlot), R(context), U8(196), + /* 2609 E> */ B(StaContextSlot), R(context), U8(197), /* 2623 S> */ B(LdaZero), - /* 2623 E> */ B(StaContextSlot), R(context), U8(197), + /* 2623 E> */ B(StaContextSlot), R(context), U8(198), /* 2637 S> */ B(LdaZero), - /* 2637 E> */ B(StaContextSlot), R(context), U8(198), + /* 2637 E> */ B(StaContextSlot), R(context), U8(199), /* 2651 S> */ B(LdaZero), - /* 2651 E> */ B(StaContextSlot), R(context), U8(199), + /* 2651 E> */ B(StaContextSlot), R(context), U8(200), /* 2665 S> */ B(LdaZero), - /* 2665 E> */ B(StaContextSlot), R(context), U8(200), + /* 2665 E> */ B(StaContextSlot), R(context), U8(201), /* 2679 S> */ B(LdaZero), - /* 2679 E> */ B(StaContextSlot), R(context), U8(201), + /* 2679 E> */ B(StaContextSlot), R(context), U8(202), /* 2693 S> */ B(LdaZero), - /* 2693 E> */ B(StaContextSlot), R(context), U8(202), + /* 2693 E> */ B(StaContextSlot), R(context), U8(203), /* 2707 S> */ B(LdaZero), - /* 2707 E> */ B(StaContextSlot), R(context), U8(203), + /* 2707 E> */ B(StaContextSlot), R(context), U8(204), /* 2721 S> */ B(LdaZero), - /* 2721 E> */ B(StaContextSlot), R(context), U8(204), + /* 2721 E> */ B(StaContextSlot), R(context), U8(205), /* 2735 S> */ B(LdaZero), - /* 2735 E> */ B(StaContextSlot), R(context), U8(205), + /* 2735 E> */ B(StaContextSlot), R(context), U8(206), /* 2749 S> */ B(LdaZero), - /* 2749 E> */ B(StaContextSlot), R(context), U8(206), + /* 2749 E> */ B(StaContextSlot), R(context), U8(207), /* 2763 S> */ B(LdaZero), - /* 2763 E> */ B(StaContextSlot), R(context), U8(207), + /* 2763 E> */ B(StaContextSlot), R(context), U8(208), /* 2777 S> */ B(LdaZero), - /* 2777 E> */ B(StaContextSlot), R(context), U8(208), + /* 2777 E> */ B(StaContextSlot), R(context), U8(209), /* 2791 S> */ B(LdaZero), - /* 2791 E> */ B(StaContextSlot), R(context), U8(209), + /* 2791 E> */ B(StaContextSlot), R(context), U8(210), /* 2805 S> */ B(LdaZero), - /* 2805 E> */ B(StaContextSlot), R(context), U8(210), + /* 2805 E> */ B(StaContextSlot), R(context), U8(211), /* 2819 S> */ B(LdaZero), - /* 2819 E> */ B(StaContextSlot), R(context), U8(211), + /* 2819 E> */ B(StaContextSlot), R(context), U8(212), /* 2833 S> */ B(LdaZero), - /* 2833 E> */ B(StaContextSlot), R(context), U8(212), + /* 2833 E> */ B(StaContextSlot), R(context), U8(213), /* 2847 S> */ B(LdaZero), - /* 2847 E> */ B(StaContextSlot), R(context), U8(213), + /* 2847 E> */ B(StaContextSlot), R(context), U8(214), /* 2861 S> */ B(LdaZero), - /* 2861 E> */ B(StaContextSlot), R(context), U8(214), + /* 2861 E> */ B(StaContextSlot), R(context), U8(215), /* 2875 S> */ B(LdaZero), - /* 2875 E> */ B(StaContextSlot), R(context), U8(215), + /* 2875 E> */ B(StaContextSlot), R(context), U8(216), /* 2889 S> */ B(LdaZero), - /* 2889 E> */ B(StaContextSlot), R(context), U8(216), + /* 2889 E> */ B(StaContextSlot), R(context), U8(217), /* 2903 S> */ B(LdaZero), - /* 2903 E> */ B(StaContextSlot), R(context), U8(217), + /* 2903 E> */ B(StaContextSlot), R(context), U8(218), /* 2917 S> */ B(LdaZero), - /* 2917 E> */ B(StaContextSlot), R(context), U8(218), + /* 2917 E> */ B(StaContextSlot), R(context), U8(219), /* 2931 S> */ B(LdaZero), - /* 2931 E> */ B(StaContextSlot), R(context), U8(219), + /* 2931 E> */ B(StaContextSlot), R(context), U8(220), /* 2945 S> */ B(LdaZero), - /* 2945 E> */ B(StaContextSlot), R(context), U8(220), + /* 2945 E> */ B(StaContextSlot), R(context), U8(221), /* 2959 S> */ B(LdaZero), - /* 2959 E> */ B(StaContextSlot), R(context), U8(221), + /* 2959 E> */ B(StaContextSlot), R(context), U8(222), /* 2973 S> */ B(LdaZero), - /* 2973 E> */ B(StaContextSlot), R(context), U8(222), + /* 2973 E> */ B(StaContextSlot), R(context), U8(223), /* 2987 S> */ B(LdaZero), - /* 2987 E> */ B(StaContextSlot), R(context), U8(223), + /* 2987 E> */ B(StaContextSlot), R(context), U8(224), /* 3001 S> */ B(LdaZero), - /* 3001 E> */ B(StaContextSlot), R(context), U8(224), + /* 3001 E> */ B(StaContextSlot), R(context), U8(225), /* 3015 S> */ B(LdaZero), - /* 3015 E> */ B(StaContextSlot), R(context), U8(225), + /* 3015 E> */ B(StaContextSlot), R(context), U8(226), /* 3029 S> */ B(LdaZero), - /* 3029 E> */ B(StaContextSlot), R(context), U8(226), + /* 3029 E> */ B(StaContextSlot), R(context), U8(227), /* 3043 S> */ B(LdaZero), - /* 3043 E> */ B(StaContextSlot), R(context), U8(227), + /* 3043 E> */ B(StaContextSlot), R(context), U8(228), /* 3057 S> */ B(LdaZero), - /* 3057 E> */ B(StaContextSlot), R(context), U8(228), + /* 3057 E> */ B(StaContextSlot), R(context), U8(229), /* 3071 S> */ B(LdaZero), - /* 3071 E> */ B(StaContextSlot), R(context), U8(229), + /* 3071 E> */ B(StaContextSlot), R(context), U8(230), /* 3085 S> */ B(LdaZero), - /* 3085 E> */ B(StaContextSlot), R(context), U8(230), + /* 3085 E> */ B(StaContextSlot), R(context), U8(231), /* 3099 S> */ B(LdaZero), - /* 3099 E> */ B(StaContextSlot), R(context), U8(231), + /* 3099 E> */ B(StaContextSlot), R(context), U8(232), /* 3113 S> */ B(LdaZero), - /* 3113 E> */ B(StaContextSlot), R(context), U8(232), + /* 3113 E> */ B(StaContextSlot), R(context), U8(233), /* 3127 S> */ B(LdaZero), - /* 3127 E> */ B(StaContextSlot), R(context), U8(233), + /* 3127 E> */ B(StaContextSlot), R(context), U8(234), /* 3141 S> */ B(LdaZero), - /* 3141 E> */ B(StaContextSlot), R(context), U8(234), + /* 3141 E> */ B(StaContextSlot), R(context), U8(235), /* 3155 S> */ B(LdaZero), - /* 3155 E> */ B(StaContextSlot), R(context), U8(235), + /* 3155 E> */ B(StaContextSlot), R(context), U8(236), /* 3169 S> */ B(LdaZero), - /* 3169 E> */ B(StaContextSlot), R(context), U8(236), + /* 3169 E> */ B(StaContextSlot), R(context), U8(237), /* 3183 S> */ B(LdaZero), - /* 3183 E> */ B(StaContextSlot), R(context), U8(237), + /* 3183 E> */ B(StaContextSlot), R(context), U8(238), /* 3197 S> */ B(LdaZero), - /* 3197 E> */ B(StaContextSlot), R(context), U8(238), + /* 3197 E> */ B(StaContextSlot), R(context), U8(239), /* 3211 S> */ B(LdaZero), - /* 3211 E> */ B(StaContextSlot), R(context), U8(239), + /* 3211 E> */ B(StaContextSlot), R(context), U8(240), /* 3225 S> */ B(LdaZero), - /* 3225 E> */ B(StaContextSlot), R(context), U8(240), + /* 3225 E> */ B(StaContextSlot), R(context), U8(241), /* 3239 S> */ B(LdaZero), - /* 3239 E> */ B(StaContextSlot), R(context), U8(241), + /* 3239 E> */ B(StaContextSlot), R(context), U8(242), /* 3253 S> */ B(LdaZero), - /* 3253 E> */ B(StaContextSlot), R(context), U8(242), + /* 3253 E> */ B(StaContextSlot), R(context), U8(243), /* 3267 S> */ B(LdaZero), - /* 3267 E> */ B(StaContextSlot), R(context), U8(243), + /* 3267 E> */ B(StaContextSlot), R(context), U8(244), /* 3281 S> */ B(LdaZero), - /* 3281 E> */ B(StaContextSlot), R(context), U8(244), + /* 3281 E> */ B(StaContextSlot), R(context), U8(245), /* 3295 S> */ B(LdaZero), - /* 3295 E> */ B(StaContextSlot), R(context), U8(245), + /* 3295 E> */ B(StaContextSlot), R(context), U8(246), /* 3309 S> */ B(LdaZero), - /* 3309 E> */ B(StaContextSlot), R(context), U8(246), + /* 3309 E> */ B(StaContextSlot), R(context), U8(247), /* 3323 S> */ B(LdaZero), - /* 3323 E> */ B(StaContextSlot), R(context), U8(247), + /* 3323 E> */ B(StaContextSlot), R(context), U8(248), /* 3337 S> */ B(LdaZero), - /* 3337 E> */ B(StaContextSlot), R(context), U8(248), + /* 3337 E> */ B(StaContextSlot), R(context), U8(249), /* 3351 S> */ B(LdaZero), - /* 3351 E> */ B(StaContextSlot), R(context), U8(249), + /* 3351 E> */ B(StaContextSlot), R(context), U8(250), /* 3365 S> */ B(LdaZero), - /* 3365 E> */ B(StaContextSlot), R(context), U8(250), + /* 3365 E> */ B(StaContextSlot), R(context), U8(251), /* 3379 S> */ B(LdaZero), - /* 3379 E> */ B(StaContextSlot), R(context), U8(251), + /* 3379 E> */ B(StaContextSlot), R(context), U8(252), /* 3393 S> */ B(LdaZero), - /* 3393 E> */ B(StaContextSlot), R(context), U8(252), + /* 3393 E> */ B(StaContextSlot), R(context), U8(253), /* 3407 S> */ B(LdaZero), - /* 3407 E> */ B(StaContextSlot), R(context), U8(253), + /* 3407 E> */ B(StaContextSlot), R(context), U8(254), /* 3421 S> */ B(LdaZero), - /* 3421 E> */ B(StaContextSlot), R(context), U8(254), - /* 3435 S> */ B(LdaZero), - /* 3435 E> */ B(StaContextSlot), R(context), U8(255), - /* 3438 S> */ B(LdrUndefined), R(2), - /* 3438 E> */ B(LdrGlobal), U8(1), R(1), - /* 3438 E> */ B(Call), R(1), R(2), U8(1), U8(0), - /* 3454 S> */ B(LdaSmi), U8(100), - /* 3454 E> */ B(Wide), B(StaContextSlot), R16(context), U16(256), - /* 3459 S> */ B(Wide), B(LdaContextSlot), R16(context), U16(256), - /* 3468 S> */ B(Return), + /* 3421 E> */ B(StaContextSlot), R(context), U8(255), + /* 3424 S> */ B(LdrUndefined), R(2), + /* 3424 E> */ B(LdrGlobal), U8(1), R(1), + /* 3424 E> */ B(Call), R(1), R(2), U8(1), U8(0), + /* 3440 S> */ B(LdaSmi), U8(100), + /* 3440 E> */ B(Wide), B(StaContextSlot), R16(context), U16(256), + /* 3445 S> */ B(Wide), B(LdaContextSlot), R16(context), U16(256), + /* 3454 S> */ B(Return), ] constant pool: [ ] diff --git a/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden b/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden index bffbb6c2d8..afa349ac3e 100644 --- a/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden +++ b/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden @@ -85,17 +85,17 @@ parameter count: 2 bytecode array length: 26 bytecodes: [ B(CreateUnmappedArguments), - B(Star), R(2), - B(CreateRestParameter), B(Star), R(0), - B(LdaTheHole), + B(CreateRestParameter), B(Star), R(1), + B(LdaTheHole), + B(Star), R(2), /* 10 E> */ B(StackCheck), - B(Mov), R(arg0), R(1), + B(Mov), R(arg0), R(2), /* 29 S> */ B(LdaZero), - /* 44 E> */ B(LdrKeyedProperty), R(0), U8(1), R(4), + /* 44 E> */ B(LdrKeyedProperty), R(1), U8(1), R(4), B(LdaZero), - /* 59 E> */ B(LdaKeyedProperty), R(2), U8(3), + /* 59 E> */ B(LdaKeyedProperty), R(0), U8(3), B(Add), R(4), U8(5), /* 64 S> */ B(Return), ] diff --git a/test/cctest/interpreter/bytecode_expectations/Eval.golden b/test/cctest/interpreter/bytecode_expectations/Eval.golden index 7afb1410fa..f8ee37a398 100644 --- a/test/cctest/interpreter/bytecode_expectations/Eval.golden +++ b/test/cctest/interpreter/bytecode_expectations/Eval.golden @@ -20,9 +20,9 @@ bytecodes: [ B(Ldar), R(this), B(StaContextSlot), R(context), U8(4), B(CreateMappedArguments), - B(StaContextSlot), R(context), U8(6), - B(Ldar), R(new_target), B(StaContextSlot), R(context), U8(5), + B(Ldar), R(new_target), + B(StaContextSlot), R(context), U8(6), /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaConstant), U8(0), B(Star), R(3), diff --git a/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden b/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden index 2b96c0be9c..ed13d254ac 100644 --- a/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden +++ b/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden @@ -20,9 +20,9 @@ bytecodes: [ B(Ldar), R(this), B(StaContextSlot), R(context), U8(4), B(CreateMappedArguments), - B(StaContextSlot), R(context), U8(6), - B(Ldar), R(new_target), B(StaContextSlot), R(context), U8(5), + B(Ldar), R(new_target), + B(StaContextSlot), R(context), U8(6), /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaConstant), U8(0), B(Star), R(3), @@ -65,9 +65,9 @@ bytecodes: [ B(Ldar), R(this), B(StaContextSlot), R(context), U8(4), B(CreateMappedArguments), - B(StaContextSlot), R(context), U8(6), - B(Ldar), R(new_target), B(StaContextSlot), R(context), U8(5), + B(Ldar), R(new_target), + B(StaContextSlot), R(context), U8(6), /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaConstant), U8(0), B(Star), R(3), @@ -111,9 +111,9 @@ bytecodes: [ B(Ldar), R(this), B(StaContextSlot), R(context), U8(4), B(CreateMappedArguments), - B(StaContextSlot), R(context), U8(6), - B(Ldar), R(new_target), B(StaContextSlot), R(context), U8(5), + B(Ldar), R(new_target), + B(StaContextSlot), R(context), U8(6), /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaSmi), U8(20), /* 36 E> */ B(StaLookupSlotSloppy), U8(0), diff --git a/test/cctest/interpreter/test-bytecode-generator.cc b/test/cctest/interpreter/test-bytecode-generator.cc index f1aa244c4f..c71e3ef034 100644 --- a/test/cctest/interpreter/test-bytecode-generator.cc +++ b/test/cctest/interpreter/test-bytecode-generator.cc @@ -56,13 +56,12 @@ namespace interpreter { #define REPEAT_64_UNIQUE_VARS() REPEAT_32_UNIQUE_VARS() REPEAT_32_UNIQUE_VARS() #define REPEAT_128_UNIQUE_VARS() REPEAT_64_UNIQUE_VARS() REPEAT_64_UNIQUE_VARS() -#define REPEAT_250_UNIQUE_VARS() \ +#define REPEAT_249_UNIQUE_VARS() \ REPEAT_128_UNIQUE_VARS() \ REPEAT_64_UNIQUE_VARS() \ REPEAT_32_UNIQUE_VARS() \ REPEAT_16_UNIQUE_VARS() \ REPEAT_8_UNIQUE_VARS() \ - UNIQUE_VAR() \ UNIQUE_VAR() static const char* kGoldenFileDirectory = @@ -1354,7 +1353,7 @@ TEST(ContextVariables) { "{ let b = 2; return function() { a + b; }; }\n", "'use strict';\n" - REPEAT_250_UNIQUE_VARS() + REPEAT_249_UNIQUE_VARS() "eval();\n" "var b = 100;\n" "return b\n", diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc index 383d372770..befa92a5a1 100644 --- a/test/cctest/test-parsing.cc +++ b/test/cctest/test-parsing.cc @@ -6444,9 +6444,10 @@ TEST(DestructuringPositiveTests) { RunParserSyncTest(context_data, data, kSuccess); // v8:5201 + // TODO(lpy): The two test sets below should be merged once + // we fix https://bugs.chromium.org/p/v8/issues/detail?id=4577 { - // clang-format off - const char* sloppy_context_data[][2] = { + const char* sloppy_context_data1[][2] = { {"var ", " = {};"}, {"function f(", ") {}"}, {"function f(argument1, ", ") {}"}, @@ -6455,17 +6456,26 @@ TEST(DestructuringPositiveTests) { {"try {} catch(", ") {}"}, {NULL, NULL} }; - const char* data[] = { - "{arguments}", + const char* data1[] = { "{eval}", - "{x: arguments}", "{x: eval}", - "{arguments = false}", "{eval = false}", NULL }; - // clang-format on - RunParserSyncTest(sloppy_context_data, data, kSuccess); + RunParserSyncTest(sloppy_context_data1, data1, kSuccess); + + const char* sloppy_context_data2[][2] = { + {"var ", " = {};"}, + {"try {} catch(", ") {}"}, + {NULL, NULL} + }; + const char* data2[] = { + "{arguments}", + "{x: arguments}", + "{arguments = false}", + NULL, + }; + RunParserSyncTest(sloppy_context_data2, data2, kSuccess); } } @@ -8320,38 +8330,3 @@ TEST(TrailingCommasInParametersErrors) { RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags, arraysize(always_flags)); } - -TEST(ArgumentsRedeclaration) { - { - // clang-format off - const char* context_data[][2] = { - { "function f(", ") {}" }, - { NULL, NULL } - }; - const char* success_data[] = { - "{arguments}", - "{arguments = false}", - "arg1, arguments", - "arg1, ...arguments", - NULL - }; - // clang-format on - RunParserSyncTest(context_data, success_data, kSuccess); - } - - { - // clang-format off - const char* context_data[][2] = { - { "function f() {", "}" }, - { NULL, NULL } - }; - const char* data[] = { - "const arguments = 1", - "let arguments", - "var arguments", - NULL - }; - // clang-format on - RunParserSyncTest(context_data, data, kSuccess); - } -} diff --git a/test/mjsunit/regress/regress-4577.js b/test/mjsunit/bugs/bug-4577.js similarity index 68% rename from test/mjsunit/regress/regress-4577.js rename to test/mjsunit/bugs/bug-4577.js index ea46fdd2b0..de2f843965 100644 --- a/test/mjsunit/regress/regress-4577.js +++ b/test/mjsunit/bugs/bug-4577.js @@ -11,11 +11,3 @@ function g({arguments}) { return arguments === 42; } assertTrue(g({arguments: 42})); - -function foo() { - let arguments = 2; - return arguments; -} -assertEquals(2, foo()); - -assertThrows(function(x = arguments, arguments) {}, ReferenceError);