Commit 62a49868 authored by mstarzinger's avatar mstarzinger Committed by Commit bot

Add missing FrameState to harmony class literals.

R=bmeurer@chromium.org
TEST=mjsunit/harmony/classes

Review URL: https://codereview.chromium.org/864033002

Cr-Commit-Position: refs/heads/master@{#26202}
parent 208580b4
...@@ -932,7 +932,9 @@ void AstGraphBuilder::VisitClassLiteralContents(ClassLiteral* expr) { ...@@ -932,7 +932,9 @@ void AstGraphBuilder::VisitClassLiteralContents(ClassLiteral* expr) {
if (FunctionLiteral::NeedsHomeObject(property->value())) { if (FunctionLiteral::NeedsHomeObject(property->value())) {
Unique<Name> name = Unique<Name> name =
MakeUnique(isolate()->factory()->home_object_symbol()); MakeUnique(isolate()->factory()->home_object_symbol());
NewNode(javascript()->StoreNamed(strict_mode(), name), value, receiver); Node* store = NewNode(javascript()->StoreNamed(strict_mode(), name),
value, receiver);
PrepareFrameState(store, BailoutId::None());
} }
} }
...@@ -948,6 +950,7 @@ void AstGraphBuilder::VisitClassLiteralContents(ClassLiteral* expr) { ...@@ -948,6 +950,7 @@ void AstGraphBuilder::VisitClassLiteralContents(ClassLiteral* expr) {
BuildVariableAssignment(var, literal, Token::INIT_CONST, BailoutId::None()); BuildVariableAssignment(var, literal, Token::INIT_CONST, BailoutId::None());
} }
PrepareFrameState(literal, expr->id(), ast_context()->GetStateCombine());
ast_context()->ProduceValue(literal); ast_context()->ProduceValue(literal);
} }
...@@ -1461,11 +1464,12 @@ void AstGraphBuilder::VisitCall(Call* expr) { ...@@ -1461,11 +1464,12 @@ void AstGraphBuilder::VisitCall(Call* expr) {
flags = CALL_AS_METHOD; flags = CALL_AS_METHOD;
break; break;
} }
case Call::SUPER_CALL: { case Call::SUPER_CALL:
// TODO(dslomov): Implement super calls. // TODO(dslomov): Implement super calls.
UNIMPLEMENTED(); callee_value = jsgraph()->UndefinedConstant();
receiver_value = jsgraph()->UndefinedConstant();
SetStackOverflow();
break; break;
}
case Call::POSSIBLY_EVAL_CALL: case Call::POSSIBLY_EVAL_CALL:
possibly_eval = true; possibly_eval = true;
// Fall through. // Fall through.
......
...@@ -152,7 +152,9 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) { ...@@ -152,7 +152,9 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
case Runtime::kDebugGetLoadedScripts: case Runtime::kDebugGetLoadedScripts:
case Runtime::kDebugGetPropertyDetails: case Runtime::kDebugGetPropertyDetails:
case Runtime::kDebugPromiseEvent: case Runtime::kDebugPromiseEvent:
case Runtime::kDefaultConstructorSuperCall:
case Runtime::kDefineAccessorPropertyUnchecked: case Runtime::kDefineAccessorPropertyUnchecked:
case Runtime::kDefineClass:
case Runtime::kDefineDataPropertyUnchecked: case Runtime::kDefineDataPropertyUnchecked:
case Runtime::kDeleteProperty: case Runtime::kDeleteProperty:
case Runtime::kDeliverObservationChangeRecords: case Runtime::kDeliverObservationChangeRecords:
......
...@@ -106,13 +106,9 @@ ...@@ -106,13 +106,9 @@
# TODO(jarin): Some tests don't like --turbo-deoptimzation very much. # TODO(jarin): Some tests don't like --turbo-deoptimzation very much.
'asm/embenchen/lua_binarytrees': [SKIP], 'asm/embenchen/lua_binarytrees': [SKIP],
'es6/symbols': [PASS, NO_VARIANTS], 'es6/symbols': [PASS, NO_VARIANTS],
'harmony/classes': [PASS, NO_VARIANTS],
'regress/regress-354433': [PASS, NO_VARIANTS], # only on ARM simulator. 'regress/regress-354433': [PASS, NO_VARIANTS], # only on ARM simulator.
'regress/regress-crbug-259300': [PASS, NO_VARIANTS], 'regress/regress-crbug-259300': [PASS, NO_VARIANTS],
# TODO(dslomov): Implement super calls.
'harmony/super': [PASS, NO_VARIANTS],
# TODO(arv): TurboFan does not yet add [[HomeObject]] as needed. # TODO(arv): TurboFan does not yet add [[HomeObject]] as needed.
'harmony/object-literals-super': [PASS, NO_VARIANTS], 'harmony/object-literals-super': [PASS, NO_VARIANTS],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment