v8/test/cctest/interpreter/bytecode_expectations
Marja Hölttä f6450b97ec Reland [super] Store home object in Context instead of JSFunction
1) Computed property keys (esp functions in them) shouldn't be inside
the object literal scope.

2) I was using an imprecise "maybe uses super" and storing it to
preparse data. This won't fly, since it pollutes sister scopes and
leads to confusion wrt whether an object literal needs a home object
or not. Made it precise (mostly cancelling changes in the original CL).

3) PreParser::NewSuperPropertyReference was creating a VariableProxy for
this_function (which made it used) -> inconsistent scopes between
parsing and preparsing.

4) MultipleEntryBlockContextScope was messing up the accumulator

Original: https://chromium-review.googlesource.com/c/v8/v8/+/2563275

This saves memory (the home object doesn't need to be stored for each
method, but only once per class) and hopefully makes the home object
a constant in the optimized code.

Detailed documentation of the changes:
https://docs.google.com/document/d/1ZVXcoQdf9IdMsnRI9iyUjyq9NDoEyx9nA3XqMgwflMs/edit?usp=sharing

Bug: v8:9237, chromium:1167918, chromium:1167981, chromium:1167988, chromium:1168055
Change-Id: I4f53f18cc18762c33e53d8c802909b42f1c33538
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637220
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72169}
2021-01-19 17:05:01 +00:00
..
ArrayLiterals.golden [interpreter] Use LdaSmi when possible. 2020-12-17 14:51:13 +00:00
AssignmentsInBinaryExpression.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
AsyncGenerators.golden Suppress GetMethod errors in IteratorClose 2020-05-07 20:12:56 +00:00
AsyncModules.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
BasicBlockToBoolean.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
BasicLoops.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
BreakableBlocks.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
CallAndSpread.golden [interpreter] Use LdaSmi when possible. 2020-12-17 14:51:13 +00:00
CallGlobal.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CallLookupSlot.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CallNew.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CallRuntime.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ClassAndSuperClass.golden Reland [super] Store home object in Context instead of JSFunction 2021-01-19 17:05:01 +00:00
ClassDeclarations.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CompareNil.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
CompareTypeOf.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CompoundExpressions.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Conditional.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ConstVariable.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ConstVariableContextSlot.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ContextParameters.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ContextVariables.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CountOperators.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CreateArguments.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
CreateRestParameter.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
DeadCodeRemoval.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
DeclareGlobals.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Delete.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
DeleteLookupSlotInEval.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
DestructuringAssignment.golden Add iterator done check in spread destructuring 2020-09-25 19:08:17 +00:00
DoDebugger.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Eval.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ForAwaitOf.golden Suppress GetMethod errors in IteratorClose 2020-05-07 20:12:56 +00:00
ForIn.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
ForOf.golden Suppress GetMethod errors in IteratorClose 2020-05-07 20:12:56 +00:00
ForOfLoop.golden Suppress GetMethod errors in IteratorClose 2020-05-07 20:12:56 +00:00
FunctionLiterals.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
GenerateTestUndetectable.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Generators.golden Suppress GetMethod errors in IteratorClose 2020-05-07 20:12:56 +00:00
GlobalCompoundExpressions.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
GlobalCountOperators.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
GlobalDelete.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
HeapNumberConstants.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
IfConditions.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
IIFEWithOneshotOpt.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
IIFEWithoutOneshotOpt.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
IntegerConstants.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
LetVariable.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
LetVariableContextSlot.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
LoadGlobal.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
LogicalExpressions.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
LookupSlot.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
LookupSlotInEval.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Modules.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
NewAndSpread.golden [interpreter] Use LdaSmi when possible. 2020-12-17 14:51:13 +00:00
NewTarget.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ObjectLiterals.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
OuterContextVariables.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Parameters.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PrimitiveExpressions.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PrimitiveReturnStatements.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PrivateAccessorAccess.golden [flags] Remove --harmony-private-methods 2020-11-12 23:21:53 +00:00
PrivateAccessorDeclaration.golden Reland [super] Store home object in Context instead of JSFunction 2021-01-19 17:05:01 +00:00
PrivateClassFieldAccess.golden [flags] Remove --harmony-private-methods 2020-11-12 23:21:53 +00:00
PrivateClassFields.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PrivateMethodAccess.golden [flags] Remove --harmony-private-methods 2020-11-12 23:21:53 +00:00
PrivateMethodDeclaration.golden Reland [super] Store home object in Context instead of JSFunction 2021-01-19 17:05:01 +00:00
PropertyCall.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PropertyLoads.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PropertyLoadStoreOneShot.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
PropertyLoadStoreWithoutOneShot.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PropertyStores.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
PublicClassFields.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
RegExpLiterals.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
RemoveRedundantLdar.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
StandardForLoop.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
StaticClassFields.golden Reland [super] Store home object in Context instead of JSFunction 2021-01-19 17:05:01 +00:00
StaticPrivateMethodAccess.golden [flags] Remove --harmony-private-methods 2020-11-12 23:21:53 +00:00
StaticPrivateMethodDeclaration.golden Reland [super] Store home object in Context instead of JSFunction 2021-01-19 17:05:01 +00:00
StoreGlobal.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
StringConcat.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
StringConstants.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
SuperCallAndSpread.golden [class] Fix super call evaluation order 2020-10-29 16:08:34 +00:00
Switch.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
TemplateLiterals.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
ThisFunction.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Throw.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
TopLevelObjectLiterals.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
TryCatch.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
TryFinally.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
Typeof.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00
UnaryOperators.golden [interpreter] Make IterationBody StackChecks implicit within JumpLoop 2020-03-20 13:22:41 +00:00
WideRegisters.golden [execution] Add argument count to the standard frame 2020-09-02 09:27:30 +00:00
WithStatement.golden [interpreter] Make FunctionEntry StackCheck bytecodes implicit 2020-02-10 17:05:23 +00:00