OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/verifier.h" | 5 #include "src/compiler/verifier.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <deque> | 8 #include <deque> |
9 #include <queue> | 9 #include <queue> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 break; | 485 break; |
486 case IrOpcode::kJSToObject: | 486 case IrOpcode::kJSToObject: |
487 // Type is Receiver. | 487 // Type is Receiver. |
488 CheckUpperIs(node, Type::Receiver()); | 488 CheckUpperIs(node, Type::Receiver()); |
489 break; | 489 break; |
490 | 490 |
491 case IrOpcode::kJSCreate: | 491 case IrOpcode::kJSCreate: |
492 // Type is Object. | 492 // Type is Object. |
493 CheckUpperIs(node, Type::Object()); | 493 CheckUpperIs(node, Type::Object()); |
494 break; | 494 break; |
| 495 case IrOpcode::kJSCreateClosure: |
| 496 // Type is Function. |
| 497 CheckUpperIs(node, Type::OtherObject()); |
| 498 break; |
495 case IrOpcode::kJSLoadProperty: | 499 case IrOpcode::kJSLoadProperty: |
496 case IrOpcode::kJSLoadNamed: | 500 case IrOpcode::kJSLoadNamed: |
497 // Type can be anything. | 501 // Type can be anything. |
498 CheckUpperIs(node, Type::Any()); | 502 CheckUpperIs(node, Type::Any()); |
499 break; | 503 break; |
500 case IrOpcode::kJSStoreProperty: | 504 case IrOpcode::kJSStoreProperty: |
501 case IrOpcode::kJSStoreNamed: | 505 case IrOpcode::kJSStoreNamed: |
502 // Type is empty. | 506 // Type is empty. |
503 CheckNotTyped(node); | 507 CheckNotTyped(node); |
504 break; | 508 break; |
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1081 // Check inputs for all nodes in the block. | 1085 // Check inputs for all nodes in the block. |
1082 for (size_t i = 0; i < block->NodeCount(); i++) { | 1086 for (size_t i = 0; i < block->NodeCount(); i++) { |
1083 Node* node = block->NodeAt(i); | 1087 Node* node = block->NodeAt(i); |
1084 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); | 1088 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); |
1085 } | 1089 } |
1086 } | 1090 } |
1087 } | 1091 } |
1088 } | 1092 } |
1089 } | 1093 } |
1090 } // namespace v8::internal::compiler | 1094 } // namespace v8::internal::compiler |
OLD | NEW |