| Index: src/compiler/bytecode-graph-builder.cc
|
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
|
| index 3813b0da7cf168c3dfc2a3d4f2e556d4c4828413..1b7abcd56410660b9340a09132860364f036871e 100644
|
| --- a/src/compiler/bytecode-graph-builder.cc
|
| +++ b/src/compiler/bytecode-graph-builder.cc
|
| @@ -668,46 +668,38 @@ void BytecodeGraphBuilder::BuildLoadGlobal(
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalSloppy() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalStrict() {
|
| - DCHECK(is_strict(language_mode()));
|
| BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofSloppy() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofStrict() {
|
| - DCHECK(is_strict(language_mode()));
|
| BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalSloppyWide() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalStrictWide() {
|
| - DCHECK(is_strict(language_mode()));
|
| BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofSloppyWide() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofStrictWide() {
|
| - DCHECK(is_strict(language_mode()));
|
| BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
|
| }
|
|
|
| -void BytecodeGraphBuilder::BuildStoreGlobal() {
|
| +void BytecodeGraphBuilder::BuildStoreGlobal(LanguageMode language_mode) {
|
| FrameStateBeforeAndAfter states(this);
|
| Handle<Name> name =
|
| Handle<Name>::cast(bytecode_iterator().GetConstantForIndexOperand(0));
|
| @@ -715,30 +707,25 @@ void BytecodeGraphBuilder::BuildStoreGlobal() {
|
| CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
|
| Node* value = environment()->LookupAccumulator();
|
|
|
| - const Operator* op =
|
| - javascript()->StoreGlobal(language_mode(), name, feedback);
|
| + const Operator* op = javascript()->StoreGlobal(language_mode, name, feedback);
|
| Node* node = NewNode(op, value, BuildLoadFeedbackVector());
|
| environment()->RecordAfterState(node, &states);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStaGlobalSloppy() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildStoreGlobal();
|
| + BuildStoreGlobal(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStaGlobalStrict() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildStoreGlobal();
|
| + BuildStoreGlobal(LanguageMode::STRICT);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStaGlobalSloppyWide() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildStoreGlobal();
|
| + BuildStoreGlobal(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStaGlobalStrictWide() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildStoreGlobal();
|
| + BuildStoreGlobal(LanguageMode::STRICT);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitLdaContextSlot() {
|
| @@ -890,7 +877,7 @@ void BytecodeGraphBuilder::VisitKeyedLoadICStrictWide() {
|
| BuildKeyedLoad();
|
| }
|
|
|
| -void BytecodeGraphBuilder::BuildNamedStore() {
|
| +void BytecodeGraphBuilder::BuildNamedStore(LanguageMode language_mode) {
|
| FrameStateBeforeAndAfter states(this);
|
| Node* value = environment()->LookupAccumulator();
|
| Node* object =
|
| @@ -900,33 +887,28 @@ void BytecodeGraphBuilder::BuildNamedStore() {
|
| VectorSlotPair feedback =
|
| CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(2));
|
|
|
| - const Operator* op =
|
| - javascript()->StoreNamed(language_mode(), name, feedback);
|
| + const Operator* op = javascript()->StoreNamed(language_mode, name, feedback);
|
| Node* node = NewNode(op, object, value, BuildLoadFeedbackVector());
|
| environment()->RecordAfterState(node, &states);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStoreICSloppy() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildNamedStore();
|
| + BuildNamedStore(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStoreICStrict() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildNamedStore();
|
| + BuildNamedStore(LanguageMode::STRICT);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStoreICSloppyWide() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildNamedStore();
|
| + BuildNamedStore(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitStoreICStrictWide() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildNamedStore();
|
| + BuildNamedStore(LanguageMode::STRICT);
|
| }
|
|
|
| -void BytecodeGraphBuilder::BuildKeyedStore() {
|
| +void BytecodeGraphBuilder::BuildKeyedStore(LanguageMode language_mode) {
|
| FrameStateBeforeAndAfter states(this);
|
| Node* value = environment()->LookupAccumulator();
|
| Node* object =
|
| @@ -936,29 +918,25 @@ void BytecodeGraphBuilder::BuildKeyedStore() {
|
| VectorSlotPair feedback =
|
| CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(2));
|
|
|
| - const Operator* op = javascript()->StoreProperty(language_mode(), feedback);
|
| + const Operator* op = javascript()->StoreProperty(language_mode, feedback);
|
| Node* node = NewNode(op, object, key, value, BuildLoadFeedbackVector());
|
| environment()->RecordAfterState(node, &states);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitKeyedStoreICSloppy() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildKeyedStore();
|
| + BuildKeyedStore(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitKeyedStoreICStrict() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildKeyedStore();
|
| + BuildKeyedStore(LanguageMode::STRICT);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitKeyedStoreICSloppyWide() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildKeyedStore();
|
| + BuildKeyedStore(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitKeyedStoreICStrictWide() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildKeyedStore();
|
| + BuildKeyedStore(LanguageMode::STRICT);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitPushContext() {
|
| @@ -1328,24 +1306,22 @@ void BytecodeGraphBuilder::VisitTypeOf() {
|
| environment()->BindAccumulator(node);
|
| }
|
|
|
| -void BytecodeGraphBuilder::BuildDelete() {
|
| +void BytecodeGraphBuilder::BuildDelete(LanguageMode language_mode) {
|
| FrameStateBeforeAndAfter states(this);
|
| Node* key = environment()->LookupAccumulator();
|
| Node* object =
|
| environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
|
| Node* node =
|
| - NewNode(javascript()->DeleteProperty(language_mode()), object, key);
|
| + NewNode(javascript()->DeleteProperty(language_mode), object, key);
|
| environment()->BindAccumulator(node, &states);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitDeletePropertyStrict() {
|
| - DCHECK(is_strict(language_mode()));
|
| - BuildDelete();
|
| + BuildDelete(LanguageMode::STRICT);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitDeletePropertySloppy() {
|
| - DCHECK(is_sloppy(language_mode()));
|
| - BuildDelete();
|
| + BuildDelete(LanguageMode::SLOPPY);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitDeleteLookupSlot() {
|
|
|