summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/typer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/typer.cc')
-rw-r--r--deps/v8/src/compiler/typer.cc20
1 files changed, 15 insertions, 5 deletions
diff --git a/deps/v8/src/compiler/typer.cc b/deps/v8/src/compiler/typer.cc
index 5dbbad3dcd..6ba1b39431 100644
--- a/deps/v8/src/compiler/typer.cc
+++ b/deps/v8/src/compiler/typer.cc
@@ -10,6 +10,7 @@
#include "src/codegen/tick-counter.h"
#include "src/compiler/common-operator.h"
#include "src/compiler/graph-reducer.h"
+#include "src/compiler/js-heap-broker.h"
#include "src/compiler/js-operator.h"
#include "src/compiler/linkage.h"
#include "src/compiler/loop-variable-optimizer.h"
@@ -787,7 +788,13 @@ Type Typer::Visitor::TypeParameter(Node* node) {
return Type::NonInternal();
}
-Type Typer::Visitor::TypeOsrValue(Node* node) { return Type::Any(); }
+Type Typer::Visitor::TypeOsrValue(Node* node) {
+ if (OsrValueIndexOf(node->op()) == Linkage::kOsrContextSpillSlotIndex) {
+ return Type::OtherInternal();
+ } else {
+ return Type::Any();
+ }
+}
Type Typer::Visitor::TypeRetain(Node* node) { UNREACHABLE(); }
@@ -999,10 +1006,6 @@ Type Typer::Visitor::TypeTypedObjectState(Node* node) {
Type Typer::Visitor::TypeCall(Node* node) { return Type::Any(); }
-Type Typer::Visitor::TypeCallWithCallerSavedRegisters(Node* node) {
- UNREACHABLE();
-}
-
Type Typer::Visitor::TypeProjection(Node* node) {
Type const type = Operand(node, 0);
if (type.Is(Type::None())) return Type::None();
@@ -1524,6 +1527,10 @@ Type Typer::Visitor::JSCallTyper(Type fun, Typer* t) {
return Type::NonInternal();
}
JSFunctionRef function = fun.AsHeapConstant()->Ref().AsJSFunction();
+ if (!function.serialized()) {
+ TRACE_BROKER_MISSING(t->broker(), "data for function " << function);
+ return Type::NonInternal();
+ }
if (!function.shared().HasBuiltinId()) {
return Type::NonInternal();
}
@@ -1564,6 +1571,7 @@ Type Typer::Visitor::JSCallTyper(Type fun, Typer* t) {
case Builtins::kMathPow:
case Builtins::kMathMax:
case Builtins::kMathMin:
+ case Builtins::kMathHypot:
return Type::Number();
case Builtins::kMathImul:
return Type::Signed32();
@@ -2364,6 +2372,8 @@ Type Typer::Visitor::TypeConstant(Handle<Object> value) {
return Type::NewConstant(typer_->broker(), value, zone());
}
+Type Typer::Visitor::TypeJSGetIterator(Node* node) { return Type::Any(); }
+
} // namespace compiler
} // namespace internal
} // namespace v8