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) {
if (FunctionLiteral::NeedsHomeObject(property->value())) {
Unique<Name> name =
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) {
BuildVariableAssignment(var, literal, Token::INIT_CONST, BailoutId::None());
}
PrepareFrameState(literal, expr->id(), ast_context()->GetStateCombine());
ast_context()->ProduceValue(literal);
}
......@@ -1461,11 +1464,12 @@ void AstGraphBuilder::VisitCall(Call* expr) {
flags = CALL_AS_METHOD;
break;
}
case Call::SUPER_CALL: {
case Call::SUPER_CALL:
// TODO(dslomov): Implement super calls.
UNIMPLEMENTED();
callee_value = jsgraph()->UndefinedConstant();
receiver_value = jsgraph()->UndefinedConstant();
SetStackOverflow();
break;
}
case Call::POSSIBLY_EVAL_CALL:
possibly_eval = true;
// Fall through.
......
......@@ -152,7 +152,9 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
case Runtime::kDebugGetLoadedScripts:
case Runtime::kDebugGetPropertyDetails:
case Runtime::kDebugPromiseEvent:
case Runtime::kDefaultConstructorSuperCall:
case Runtime::kDefineAccessorPropertyUnchecked:
case Runtime::kDefineClass:
case Runtime::kDefineDataPropertyUnchecked:
case Runtime::kDeleteProperty:
case Runtime::kDeliverObservationChangeRecords:
......
......@@ -106,13 +106,9 @@
# TODO(jarin): Some tests don't like --turbo-deoptimzation very much.
'asm/embenchen/lua_binarytrees': [SKIP],
'es6/symbols': [PASS, NO_VARIANTS],
'harmony/classes': [PASS, NO_VARIANTS],
'regress/regress-354433': [PASS, NO_VARIANTS], # only on ARM simulator.
'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.
'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