| Index: src/compiler/typer.cc
|
| diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
|
| index 6e9a28ee3b0f7cb889e4606f7a759a7f8d110822..955fc754399f53c7fb0897bcf01f49551b41fc43 100644
|
| --- a/src/compiler/typer.cc
|
| +++ b/src/compiler/typer.cc
|
| @@ -1338,6 +1338,11 @@ Bounds Typer::Visitor::TypeJSLoadNamed(Node* node) {
|
| }
|
|
|
|
|
| +Bounds Typer::Visitor::TypeJSLoadGlobal(Node* node) {
|
| + return Bounds::Unbounded(zone());
|
| +}
|
| +
|
| +
|
| // Returns a somewhat larger range if we previously assigned
|
| // a (smaller) range to this node. This is used to speed up
|
| // the fixpoint calculation in case there appears to be a loop
|
| @@ -1431,6 +1436,12 @@ Bounds Typer::Visitor::TypeJSStoreNamed(Node* node) {
|
| }
|
|
|
|
|
| +Bounds Typer::Visitor::TypeJSStoreGlobal(Node* node) {
|
| + UNREACHABLE();
|
| + return Bounds();
|
| +}
|
| +
|
| +
|
| Bounds Typer::Visitor::TypeJSDeleteProperty(Node* node) {
|
| return Bounds(Type::None(zone()), Type::Boolean(zone()));
|
| }
|
| @@ -1453,12 +1464,9 @@ Bounds Typer::Visitor::TypeJSLoadContext(Node* node) {
|
| ContextAccess access = OpParameter<ContextAccess>(node);
|
| Bounds outer = Operand(node, 0);
|
| Type* context_type = outer.upper;
|
| - Type* upper = (access.index() == Context::GLOBAL_OBJECT_INDEX)
|
| - ? Type::GlobalObject()
|
| - : Type::Any();
|
| if (context_type->Is(Type::None())) {
|
| // Upper bound of context is not yet known.
|
| - return Bounds(Type::None(), upper);
|
| + return Bounds(Type::None(), Type::Any());
|
| }
|
|
|
| DCHECK(context_type->Maybe(Type::Internal()));
|
| @@ -1488,7 +1496,7 @@ Bounds Typer::Visitor::TypeJSLoadContext(Node* node) {
|
| handle(context.ToHandleChecked()->get(static_cast<int>(access.index())),
|
| isolate()));
|
| }
|
| - return Bounds(lower, upper);
|
| + return Bounds(lower, Type::Any());
|
| }
|
|
|
|
|
|
|