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/base/flags.h" | 5 #include "src/base/flags.h" |
6 #include "src/bootstrapper.h" | 6 #include "src/bootstrapper.h" |
7 #include "src/compiler/graph-reducer.h" | 7 #include "src/compiler/graph-reducer.h" |
8 #include "src/compiler/js-operator.h" | 8 #include "src/compiler/js-operator.h" |
9 #include "src/compiler/node.h" | 9 #include "src/compiler/node.h" |
10 #include "src/compiler/node-properties.h" | 10 #include "src/compiler/node-properties.h" |
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1595 return Bounds(Type::None(), Type::Range(0, 32, zone())); | 1595 return Bounds(Type::None(), Type::Range(0, 32, zone())); |
1596 case Runtime::kInlineStringGetLength: | 1596 case Runtime::kInlineStringGetLength: |
1597 return Bounds(Type::None(), Type::Range(0, String::kMaxLength, zone())); | 1597 return Bounds(Type::None(), Type::Range(0, String::kMaxLength, zone())); |
1598 default: | 1598 default: |
1599 break; | 1599 break; |
1600 } | 1600 } |
1601 return Bounds::Unbounded(zone()); | 1601 return Bounds::Unbounded(zone()); |
1602 } | 1602 } |
1603 | 1603 |
1604 | 1604 |
| 1605 Bounds Typer::Visitor::TypeJSForInNext(Node* node) { |
| 1606 return Bounds(Type::None(zone()), |
| 1607 Type::Union(Type::Name(), Type::Undefined(), zone())); |
| 1608 } |
| 1609 |
| 1610 |
| 1611 Bounds Typer::Visitor::TypeJSForInPrepare(Node* node) { |
| 1612 // TODO(bmeurer): Return a tuple type here. |
| 1613 return Bounds::Unbounded(zone()); |
| 1614 } |
| 1615 |
| 1616 |
| 1617 Bounds Typer::Visitor::TypeJSForInDone(Node* node) { |
| 1618 return Bounds(Type::None(zone()), Type::Boolean(zone())); |
| 1619 } |
| 1620 |
| 1621 |
| 1622 Bounds Typer::Visitor::TypeJSForInStep(Node* node) { |
| 1623 STATIC_ASSERT(Map::EnumLengthBits::kMax <= FixedArray::kMaxLength); |
| 1624 return Bounds(Type::None(zone()), |
| 1625 Type::Range(1, FixedArray::kMaxLength + 1, zone())); |
| 1626 } |
| 1627 |
| 1628 |
1605 Bounds Typer::Visitor::TypeJSStackCheck(Node* node) { | 1629 Bounds Typer::Visitor::TypeJSStackCheck(Node* node) { |
1606 return Bounds::Unbounded(zone()); | 1630 return Bounds::Unbounded(zone()); |
1607 } | 1631 } |
1608 | 1632 |
1609 | 1633 |
1610 // Simplified operators. | 1634 // Simplified operators. |
1611 | 1635 |
1612 | 1636 |
1613 Bounds Typer::Visitor::TypeBooleanNot(Node* node) { | 1637 Bounds Typer::Visitor::TypeBooleanNot(Node* node) { |
1614 return Bounds(Type::None(zone()), Type::Boolean(zone())); | 1638 return Bounds(Type::None(zone()), Type::Boolean(zone())); |
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2366 TYPED_ARRAYS(TYPED_ARRAY_CASE) | 2390 TYPED_ARRAYS(TYPED_ARRAY_CASE) |
2367 #undef TYPED_ARRAY_CASE | 2391 #undef TYPED_ARRAY_CASE |
2368 } | 2392 } |
2369 } | 2393 } |
2370 return Type::Constant(value, zone()); | 2394 return Type::Constant(value, zone()); |
2371 } | 2395 } |
2372 | 2396 |
2373 } // namespace compiler | 2397 } // namespace compiler |
2374 } // namespace internal | 2398 } // namespace internal |
2375 } // namespace v8 | 2399 } // namespace v8 |
OLD | NEW |