| Index: src/compiler/typer.cc
|
| diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
|
| index dafd3c95a128f317d0033d1d0b6aeb2e0441f0a2..782c8e3352a2c09b43936b573d6826656b70ad07 100644
|
| --- a/src/compiler/typer.cc
|
| +++ b/src/compiler/typer.cc
|
| @@ -1602,6 +1602,30 @@ Bounds Typer::Visitor::TypeJSCallRuntime(Node* node) {
|
| }
|
|
|
|
|
| +Bounds Typer::Visitor::TypeJSForInNext(Node* node) {
|
| + return Bounds(Type::None(zone()),
|
| + Type::Union(Type::Name(), Type::Undefined(), zone()));
|
| +}
|
| +
|
| +
|
| +Bounds Typer::Visitor::TypeJSForInPrepare(Node* node) {
|
| + // TODO(bmeurer): Return a tuple type here.
|
| + return Bounds::Unbounded(zone());
|
| +}
|
| +
|
| +
|
| +Bounds Typer::Visitor::TypeJSForInDone(Node* node) {
|
| + return Bounds(Type::None(zone()), Type::Boolean(zone()));
|
| +}
|
| +
|
| +
|
| +Bounds Typer::Visitor::TypeJSForInStep(Node* node) {
|
| + STATIC_ASSERT(Map::EnumLengthBits::kMax <= FixedArray::kMaxLength);
|
| + return Bounds(Type::None(zone()),
|
| + Type::Range(1, FixedArray::kMaxLength + 1, zone()));
|
| +}
|
| +
|
| +
|
| Bounds Typer::Visitor::TypeJSStackCheck(Node* node) {
|
| return Bounds::Unbounded(zone());
|
| }
|
|
|