Index: src/compiler/typer.cc |
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc |
index 94c54ac60089a60418f1e22ae263bc2ba9e236dc..3150222b79f8ce0322ffbcf26fff40e185c04631 100644 |
--- a/src/compiler/typer.cc |
+++ b/src/compiler/typer.cc |
@@ -1119,11 +1119,7 @@ Type* Typer::Visitor::TypeJSCreateArguments(Node* node) { |
return Type::OtherObject(); |
} |
- |
-Type* Typer::Visitor::TypeJSCreateArray(Node* node) { |
- return Type::OtherObject(); |
-} |
- |
+Type* Typer::Visitor::TypeJSCreateArray(Node* node) { return Type::Array(); } |
Type* Typer::Visitor::TypeJSCreateClosure(Node* node) { |
return Type::Function(); |
@@ -1139,7 +1135,7 @@ Type* Typer::Visitor::TypeJSCreateKeyValueArray(Node* node) { |
} |
Type* Typer::Visitor::TypeJSCreateLiteralArray(Node* node) { |
- return Type::OtherObject(); |
+ return Type::Array(); |
} |
@@ -1516,6 +1512,7 @@ Type* Typer::Visitor::JSCallTyper(Type* fun, Typer* t) { |
// Object functions. |
case kObjectAssign: |
+ return Type::Receiver(); |
case kObjectCreate: |
return Type::OtherObject(); |
case kObjectHasOwnProperty: |
@@ -1527,7 +1524,7 @@ Type* Typer::Visitor::JSCallTyper(Type* fun, Typer* t) { |
case kRegExpCompile: |
return Type::OtherObject(); |
case kRegExpExec: |
- return Type::Union(Type::OtherObject(), Type::Null(), t->zone()); |
+ return Type::Union(Type::Array(), Type::Null(), t->zone()); |
case kRegExpTest: |
return Type::Boolean(); |
case kRegExpToString: |