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 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 return masm()->serializer_enabled() || | 405 return masm()->serializer_enabled() || |
406 literal_flags != ObjectLiteral::kShallowProperties || | 406 literal_flags != ObjectLiteral::kShallowProperties || |
407 literal_flags != ObjectLiteral::kFastElements || | 407 literal_flags != ObjectLiteral::kFastElements || |
408 expr->properties_count() > | 408 expr->properties_count() > |
409 FastCloneShallowObjectStub::kMaximumClonedProperties; | 409 FastCloneShallowObjectStub::kMaximumClonedProperties; |
410 } | 410 } |
411 | 411 |
412 | 412 |
413 bool FullCodeGenerator::MustCreateArrayLiteralWithRuntime( | 413 bool FullCodeGenerator::MustCreateArrayLiteralWithRuntime( |
414 ArrayLiteral* expr) const { | 414 ArrayLiteral* expr) const { |
415 return expr->depth() > 1 || | 415 // TODO(rossberg): Teach strong mode to FastCloneShallowArrayStub. |
| 416 return expr->depth() > 1 || expr->is_strong() || |
416 expr->values()->length() > JSObject::kInitialMaxFastElementArray; | 417 expr->values()->length() > JSObject::kInitialMaxFastElementArray; |
417 } | 418 } |
418 | 419 |
419 | 420 |
420 void FullCodeGenerator::Initialize() { | 421 void FullCodeGenerator::Initialize() { |
421 InitializeAstVisitor(info_->isolate(), info_->zone()); | 422 InitializeAstVisitor(info_->isolate(), info_->zone()); |
422 // The generation of debug code must match between the snapshot code and the | 423 // The generation of debug code must match between the snapshot code and the |
423 // code that is generated later. This is assumed by the debugger when it is | 424 // code that is generated later. This is assumed by the debugger when it is |
424 // calculating PC offsets after generating a debug version of code. Therefore | 425 // calculating PC offsets after generating a debug version of code. Therefore |
425 // we disable the production of debug code in the full compiler if we are | 426 // we disable the production of debug code in the full compiler if we are |
(...skipping 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1635 } | 1636 } |
1636 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1637 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1637 codegen_->scope_ = saved_scope_; | 1638 codegen_->scope_ = saved_scope_; |
1638 } | 1639 } |
1639 | 1640 |
1640 | 1641 |
1641 #undef __ | 1642 #undef __ |
1642 | 1643 |
1643 | 1644 |
1644 } } // namespace v8::internal | 1645 } } // namespace v8::internal |
OLD | NEW |