Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: src/compiler/bytecode-graph-builder.cc

Issue 2504553003: [es6] Perform the IsConstructor test in GetSuperConstructor. (Closed)
Patch Set: Convert GetSuperConstructor to a new interpreter bytecode Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/bytecode-graph-builder.h" 5 #include "src/compiler/bytecode-graph-builder.h"
6 6
7 #include "src/ast/ast.h" 7 #include "src/ast/ast.h"
8 #include "src/ast/scopes.h" 8 #include "src/ast/scopes.h"
9 #include "src/compilation-info.h" 9 #include "src/compilation-info.h"
10 #include "src/compiler/bytecode-branch-analysis.h" 10 #include "src/compiler/bytecode-branch-analysis.h"
(...skipping 1669 matching lines...) Expand 10 before | Expand all | Expand 10 after
1680 } 1680 }
1681 1681
1682 void BytecodeGraphBuilder::VisitDeletePropertyStrict() { 1682 void BytecodeGraphBuilder::VisitDeletePropertyStrict() {
1683 BuildDelete(LanguageMode::STRICT); 1683 BuildDelete(LanguageMode::STRICT);
1684 } 1684 }
1685 1685
1686 void BytecodeGraphBuilder::VisitDeletePropertySloppy() { 1686 void BytecodeGraphBuilder::VisitDeletePropertySloppy() {
1687 BuildDelete(LanguageMode::SLOPPY); 1687 BuildDelete(LanguageMode::SLOPPY);
1688 } 1688 }
1689 1689
1690 void BytecodeGraphBuilder::VisitGetSuperConstructor() {
1691 Node* node = NewNode(javascript()->GetSuperConstructor(),
1692 environment()->LookupAccumulator());
1693 environment()->BindAccumulator(node);
1694 }
1695
1690 void BytecodeGraphBuilder::BuildCompareOp(const Operator* js_op) { 1696 void BytecodeGraphBuilder::BuildCompareOp(const Operator* js_op) {
1691 FrameStateBeforeAndAfter states(this); 1697 FrameStateBeforeAndAfter states(this);
1692 Node* left = 1698 Node* left =
1693 environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0)); 1699 environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
1694 Node* right = environment()->LookupAccumulator(); 1700 Node* right = environment()->LookupAccumulator();
1695 Node* node = NewNode(js_op, left, right); 1701 Node* node = NewNode(js_op, left, right);
1696 environment()->BindAccumulator(node, &states); 1702 environment()->BindAccumulator(node, &states);
1697 } 1703 }
1698 1704
1699 void BytecodeGraphBuilder::VisitTestEqual() { 1705 void BytecodeGraphBuilder::VisitTestEqual() {
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after
2281 source_positions_->set_current_position(it->source_position()); 2287 source_positions_->set_current_position(it->source_position());
2282 it->Advance(); 2288 it->Advance();
2283 } else { 2289 } else {
2284 DCHECK_GT(it->code_offset(), offset); 2290 DCHECK_GT(it->code_offset(), offset);
2285 } 2291 }
2286 } 2292 }
2287 2293
2288 } // namespace compiler 2294 } // namespace compiler
2289 } // namespace internal 2295 } // namespace internal
2290 } // namespace v8 2296 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698