| Index: src/full-codegen.cc
|
| diff --git a/src/full-codegen.cc b/src/full-codegen.cc
|
| index 9353ab515617006609013744cb2035b04d38eae1..52cb5015500643de79e517cb52fb2ae8755c912a 100644
|
| --- a/src/full-codegen.cc
|
| +++ b/src/full-codegen.cc
|
| @@ -441,7 +441,7 @@ void FullCodeGenerator::TestContext::Plug(Register reg) const {
|
| // For simplicity we always test the accumulator register.
|
| __ Move(result_register(), reg);
|
| codegen()->PrepareForBailoutBeforeSplit(TOS_REG, false, NULL, NULL);
|
| - codegen()->DoTest(this);
|
| + codegen()->DoTest(true_label_, false_label_, fall_through_);
|
| }
|
|
|
|
|
| @@ -463,7 +463,7 @@ void FullCodeGenerator::TestContext::PlugTOS() const {
|
| // For simplicity we always test the accumulator register.
|
| __ pop(result_register());
|
| codegen()->PrepareForBailoutBeforeSplit(TOS_REG, false, NULL, NULL);
|
| - codegen()->DoTest(this);
|
| + codegen()->DoTest(true_label_, false_label_, fall_through_);
|
| }
|
|
|
|
|
| @@ -513,14 +513,6 @@ void FullCodeGenerator::TestContext::PrepareTest(
|
| }
|
|
|
|
|
| -void FullCodeGenerator::DoTest(const TestContext* context) {
|
| - DoTest(context->condition(),
|
| - context->true_label(),
|
| - context->false_label(),
|
| - context->fall_through());
|
| -}
|
| -
|
| -
|
| void FullCodeGenerator::VisitDeclarations(
|
| ZoneList<Declaration*>* declarations) {
|
| int length = declarations->length();
|
| @@ -742,9 +734,9 @@ void FullCodeGenerator::VisitLogicalExpression(BinaryOperation* expr) {
|
| Label discard, restore;
|
| PrepareForBailoutBeforeSplit(TOS_REG, false, NULL, NULL);
|
| if (is_logical_and) {
|
| - DoTest(left, &discard, &restore, &restore);
|
| + DoTest(&discard, &restore, &restore);
|
| } else {
|
| - DoTest(left, &restore, &discard, &restore);
|
| + DoTest(&restore, &discard, &restore);
|
| }
|
| __ bind(&restore);
|
| __ pop(result_register());
|
| @@ -761,9 +753,9 @@ void FullCodeGenerator::VisitLogicalExpression(BinaryOperation* expr) {
|
| Label discard;
|
| PrepareForBailoutBeforeSplit(TOS_REG, false, NULL, NULL);
|
| if (is_logical_and) {
|
| - DoTest(left, &discard, &done, &discard);
|
| + DoTest(&discard, &done, &discard);
|
| } else {
|
| - DoTest(left, &done, &discard, &discard);
|
| + DoTest(&done, &discard, &discard);
|
| }
|
| __ bind(&discard);
|
| __ Drop(1);
|
| @@ -1107,7 +1099,9 @@ void FullCodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) {
|
| { Comment cmnt(masm_, "[ Extend catch context");
|
| __ Push(stmt->name());
|
| __ push(result_register());
|
| - __ CallRuntime(Runtime::kPushCatchContext, 2);
|
| + __ CallRuntime(Runtime::kCreateCatchExtensionObject, 2);
|
| + __ push(result_register());
|
| + __ CallRuntime(Runtime::kPushCatchContext, 1);
|
| StoreToFrameField(StandardFrameConstants::kContextOffset,
|
| context_register());
|
| }
|
|
|