Index: src/compiler/typer.cc |
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc |
index 006029cd1a3b992d100c6c1645577a3112404fdf..37d9a94006ff7a7501fc9bb93bdd81da26215db2 100644 |
--- a/src/compiler/typer.cc |
+++ b/src/compiler/typer.cc |
@@ -294,7 +294,6 @@ class Typer::Visitor : public Reducer { |
#undef DECLARE_METHOD |
static Type* JSTypeOfTyper(Type*, Typer*); |
- static Type* JSLoadPropertyTyper(Type*, Type*, Typer*); |
static Type* JSCallFunctionTyper(Type*, Typer*); |
static Type* ReferenceEqualTyper(Type*, Type*, Typer*); |
@@ -545,8 +544,9 @@ Type* Typer::Visitor::ObjectIsUndetectable(Type* type, Typer* t) { |
Type* Typer::Visitor::TypeStart(Node* node) { return Type::Internal(); } |
-Type* Typer::Visitor::TypeIfException(Node* node) { return Type::Any(); } |
- |
+Type* Typer::Visitor::TypeIfException(Node* node) { |
+ return Type::NonInternal(); |
+} |
// Common operators. |
@@ -1080,28 +1080,18 @@ Type* Typer::Visitor::TypeJSCreateLiteralRegExp(Node* node) { |
} |
-Type* Typer::Visitor::JSLoadPropertyTyper(Type* object, Type* name, Typer* t) { |
- // TODO(rossberg): Use range types and sized array types to filter undefined. |
- if (object->IsArray() && name->Is(Type::Integral32())) { |
- return Type::Union( |
- object->AsArray()->Element(), Type::Undefined(), t->zone()); |
- } |
- return Type::Any(); |
-} |
- |
- |
Type* Typer::Visitor::TypeJSLoadProperty(Node* node) { |
- return TypeBinaryOp(node, JSLoadPropertyTyper); |
+ return Type::NonInternal(); |
} |
Type* Typer::Visitor::TypeJSLoadNamed(Node* node) { |
- return Type::Any(); |
+ return Type::NonInternal(); |
} |
- |
-Type* Typer::Visitor::TypeJSLoadGlobal(Node* node) { return Type::Any(); } |
- |
+Type* Typer::Visitor::TypeJSLoadGlobal(Node* node) { |
+ return Type::NonInternal(); |
+} |
// Returns a somewhat larger range if we previously assigned |
// a (smaller) range to this node. This is used to speed up |
@@ -1359,7 +1349,7 @@ Type* Typer::Visitor::JSCallFunctionTyper(Type* fun, Typer* t) { |
} |
} |
} |
- return Type::Any(); |
+ return Type::NonInternal(); |
} |
@@ -1402,6 +1392,9 @@ Type* Typer::Visitor::TypeJSCallRuntime(Node* node) { |
default: |
break; |
} |
+ // TODO(turbofan): This should be Type::NonInternal(), but unfortunately we |
+ // have a few weird runtime calls that return the hole or even FixedArrays; |
+ // change this once those weird runtime calls have been removed. |
return Type::Any(); |
} |