OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/ast.h" | 7 #include "src/ast.h" |
8 #include "src/ast-numbering.h" | 8 #include "src/ast-numbering.h" |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 1573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1584 __ Push(isolate()->factory()->the_hole_value()); | 1584 __ Push(isolate()->factory()->the_hole_value()); |
1585 } | 1585 } |
1586 | 1586 |
1587 VisitForStackValue(lit->constructor()); | 1587 VisitForStackValue(lit->constructor()); |
1588 | 1588 |
1589 __ Push(script()); | 1589 __ Push(script()); |
1590 __ Push(Smi::FromInt(lit->start_position())); | 1590 __ Push(Smi::FromInt(lit->start_position())); |
1591 __ Push(Smi::FromInt(lit->end_position())); | 1591 __ Push(Smi::FromInt(lit->end_position())); |
1592 | 1592 |
1593 __ CallRuntime(Runtime::kDefineClass, 6); | 1593 __ CallRuntime(Runtime::kDefineClass, 6); |
| 1594 PrepareForBailoutForId(lit->CreateLiteralId(), TOS_REG); |
1594 EmitClassDefineProperties(lit); | 1595 EmitClassDefineProperties(lit); |
1595 | 1596 |
1596 if (lit->scope() != NULL) { | 1597 if (lit->scope() != NULL) { |
1597 DCHECK_NOT_NULL(lit->class_variable_proxy()); | 1598 DCHECK_NOT_NULL(lit->class_variable_proxy()); |
1598 EmitVariableAssignment(lit->class_variable_proxy()->var(), | 1599 EmitVariableAssignment(lit->class_variable_proxy()->var(), |
1599 Token::INIT_CONST); | 1600 Token::INIT_CONST); |
1600 } | 1601 } |
1601 } | 1602 } |
1602 | 1603 |
1603 context()->Plug(result_register()); | 1604 context()->Plug(result_register()); |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1856 } | 1857 } |
1857 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1858 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1858 codegen_->scope_ = saved_scope_; | 1859 codegen_->scope_ = saved_scope_; |
1859 } | 1860 } |
1860 | 1861 |
1861 | 1862 |
1862 #undef __ | 1863 #undef __ |
1863 | 1864 |
1864 | 1865 |
1865 } } // namespace v8::internal | 1866 } } // namespace v8::internal |
OLD | NEW |