• Caitlin Potter's avatar
    [es6] don't use do-expressions to desugar ES6 classes · c6540ab1
    Caitlin Potter authored
    Removes the do-expression wrapping, modifies BytecodeGenerator change
    to enter a class literal's block scope if needed.
    
    This does not solve the actual bug in v8:6322, but helps mitigate it in
    simple cases. The bug is caused by BytecodeGenerator not allocating a
    large enough array of context registers to hold its entire stack,
    allowing non-context registers to be overwritten during PushContext and
    PopContext bytecodes.
    
    Nevertheless, I like the idea of not depending on do-expressions when
    possible, so I think it's worth doing anyways.
    
    BUG=v8:6322
    R=rmcilroy@chromium.org, marja@chromium.org, littledan@chromium.org
    
    Change-Id: I82b7569db2a0eead1694bd04765fc4456c2f1a0a
    Reviewed-on: https://chromium-review.googlesource.com/491074
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarDaniel Ehrenberg <littledan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45110}
    c6540ab1
Name
Last commit
Last update
..
ArrayLiterals.golden Loading commit data...
ArrayLiteralsWide.golden Loading commit data...
AssignmentsInBinaryExpression.golden Loading commit data...
BasicBlockToBoolean.golden Loading commit data...
BasicLoops.golden Loading commit data...
BreakableBlocks.golden Loading commit data...
CallAndSpread.golden Loading commit data...
CallGlobal.golden Loading commit data...
CallLookupSlot.golden Loading commit data...
CallNew.golden Loading commit data...
CallRuntime.golden Loading commit data...
ClassAndSuperClass.golden Loading commit data...
ClassDeclarations.golden Loading commit data...
CompareNil.golden Loading commit data...
CompareTypeOf.golden Loading commit data...
CompoundExpressions.golden Loading commit data...
Conditional.golden Loading commit data...
ConstVariable.golden Loading commit data...
ConstVariableContextSlot.golden Loading commit data...
ContextParameters.golden Loading commit data...
ContextVariables.golden Loading commit data...
CountOperators.golden Loading commit data...
CreateArguments.golden Loading commit data...
CreateRestParameter.golden Loading commit data...
DeadCodeRemoval.golden Loading commit data...
DeclareGlobals.golden Loading commit data...
Delete.golden Loading commit data...
DeleteLookupSlotInEval.golden Loading commit data...
DoDebugger.golden Loading commit data...
DoExpression.golden Loading commit data...
Eval.golden Loading commit data...
ForAwaitOf.golden Loading commit data...
ForIn.golden Loading commit data...
ForOf.golden Loading commit data...
ForOfLoop.golden Loading commit data...
FunctionLiterals.golden Loading commit data...
GenerateTestUndetectable.golden Loading commit data...
Generators.golden Loading commit data...
GlobalCompoundExpressions.golden Loading commit data...
GlobalCountOperators.golden Loading commit data...
GlobalDelete.golden Loading commit data...
HeapNumberConstants.golden Loading commit data...
IfConditions.golden Loading commit data...
IntegerConstants.golden Loading commit data...
JumpsRequiringConstantWideOperands.golden Loading commit data...
LetVariable.golden Loading commit data...
LetVariableContextSlot.golden Loading commit data...
LoadGlobal.golden Loading commit data...
LogicalExpressions.golden Loading commit data...
LookupSlot.golden Loading commit data...
LookupSlotInEval.golden Loading commit data...
LookupSlotWideInEval.golden Loading commit data...
Modules.golden Loading commit data...
NewAndSpread.golden Loading commit data...
NewTarget.golden Loading commit data...
ObjectLiterals.golden Loading commit data...
ObjectLiteralsWide.golden Loading commit data...
OuterContextVariables.golden Loading commit data...
Parameters.golden Loading commit data...
PrimitiveExpressions.golden Loading commit data...
PrimitiveReturnStatements.golden Loading commit data...
PropertyCall.golden Loading commit data...
PropertyLoads.golden Loading commit data...
PropertyStores.golden Loading commit data...
RegExpLiterals.golden Loading commit data...
RegExpLiteralsWide.golden Loading commit data...
RemoveRedundantLdar.golden Loading commit data...
StandardForLoop.golden Loading commit data...
StoreGlobal.golden Loading commit data...
StringConstants.golden Loading commit data...
SuperCallAndSpread.golden Loading commit data...
Switch.golden Loading commit data...
ThisFunction.golden Loading commit data...
Throw.golden Loading commit data...
TopLevelObjectLiterals.golden Loading commit data...
TryCatch.golden Loading commit data...
TryFinally.golden Loading commit data...
Typeof.golden Loading commit data...
UnaryOperators.golden Loading commit data...
WideRegisters.golden Loading commit data...
WithStatement.golden Loading commit data...