| Index: src/compiler/typer.cc
|
| diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
|
| index 357e5fef4b728fe0ab88598ba3dc740d9e28113d..abb52c4c6a9ce69d93df696c455cd33b66c7a5bc 100644
|
| --- a/src/compiler/typer.cc
|
| +++ b/src/compiler/typer.cc
|
| @@ -1460,6 +1460,8 @@ Type* Typer::Visitor::JSCallFunctionTyper(Type* fun, Typer* t) {
|
| return Type::OtherObject();
|
|
|
| // Array functions.
|
| + case kArrayIsArray:
|
| + return Type::Boolean();
|
| case kArrayConcat:
|
| return Type::Receiver();
|
| case kArrayEvery:
|
| @@ -1494,6 +1496,9 @@ Type* Typer::Visitor::JSCallFunctionTyper(Type* fun, Typer* t) {
|
| return t->cache_.kPositiveSafeInteger;
|
|
|
| // Object functions.
|
| + case kObjectAssign:
|
| + case kObjectCreate:
|
| + return Type::OtherObject();
|
| case kObjectHasOwnProperty:
|
| return Type::Boolean();
|
|
|
| @@ -1522,6 +1527,46 @@ Type* Typer::Visitor::JSCallFunctionTyper(Type* fun, Typer* t) {
|
| case kGlobalIsFinite:
|
| case kGlobalIsNaN:
|
| return Type::Boolean();
|
| +
|
| + // Map functions.
|
| + case kMapClear:
|
| + case kMapForEach:
|
| + return Type::Undefined();
|
| + case kMapDelete:
|
| + case kMapHas:
|
| + return Type::Boolean();
|
| + case kMapEntries:
|
| + case kMapKeys:
|
| + case kMapSet:
|
| + case kMapValues:
|
| + return Type::OtherObject();
|
| +
|
| + // Set functions.
|
| + case kSetAdd:
|
| + case kSetEntries:
|
| + case kSetKeys:
|
| + case kSetValues:
|
| + return Type::OtherObject();
|
| + case kSetClear:
|
| + case kSetForEach:
|
| + return Type::Undefined();
|
| + case kSetDelete:
|
| + case kSetHas:
|
| + return Type::Boolean();
|
| +
|
| + // WeakMap functions.
|
| + case kWeakMapDelete:
|
| + case kWeakMapHas:
|
| + return Type::Boolean();
|
| + case kWeakMapSet:
|
| + return Type::OtherObject();
|
| +
|
| + // WeakSet functions.
|
| + case kWeakSetAdd:
|
| + return Type::OtherObject();
|
| + case kWeakSetDelete:
|
| + case kWeakSetHas:
|
| + return Type::Boolean();
|
| default:
|
| break;
|
| }
|
|
|