| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index 68c11596ebae2509984ceb0a5246cd61b356b02c..d8d1732dc4aca63b72ffa1b6aba17d9aec5f3d4f 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -584,7 +584,7 @@ void KeyedStoreIC::Clear(Isolate* isolate, Address address, Code* target,
|
| if (IsCleared(target)) return;
|
| SetTargetAtAddress(
|
| address, *pre_monomorphic_stub(
|
| - isolate, StoreIC::GetStrictMode(target->extra_ic_state())),
|
| + isolate, StoreIC::GetLanguageMode(target->extra_ic_state())),
|
| constant_pool);
|
| }
|
|
|
| @@ -1216,7 +1216,7 @@ Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
|
| if (!holder->HasFastProperties()) break;
|
| Handle<JSFunction> function = Handle<JSFunction>::cast(getter);
|
| if (!receiver->IsJSObject() && !function->IsBuiltin() &&
|
| - function->shared()->strict_mode() == SLOPPY) {
|
| + is_sloppy(function->shared()->language_mode())) {
|
| // Calling sloppy non-builtins with a value as the receiver
|
| // requires boxing.
|
| break;
|
| @@ -1540,7 +1540,7 @@ MaybeHandle<Object> StoreIC::Store(Handle<Object> object, Handle<Name> name,
|
| Handle<Object> result;
|
| ASSIGN_RETURN_ON_EXCEPTION(
|
| isolate(), result,
|
| - Object::SetProperty(object, name, value, strict_mode()), Object);
|
| + Object::SetProperty(object, name, value, language_mode()), Object);
|
| return result;
|
| }
|
|
|
| @@ -1561,7 +1561,7 @@ MaybeHandle<Object> StoreIC::Store(Handle<Object> object, Handle<Name> name,
|
| Handle<Object> result;
|
| ASSIGN_RETURN_ON_EXCEPTION(
|
| isolate(), result,
|
| - JSObject::SetElement(receiver, index, value, NONE, strict_mode()),
|
| + JSObject::SetElement(receiver, index, value, NONE, language_mode()),
|
| Object);
|
| return value;
|
| }
|
| @@ -1572,7 +1572,7 @@ MaybeHandle<Object> StoreIC::Store(Handle<Object> object, Handle<Name> name,
|
| Handle<Object> result;
|
| ASSIGN_RETURN_ON_EXCEPTION(
|
| isolate(), result,
|
| - Object::SetProperty(object, name, value, strict_mode(), store_mode),
|
| + Object::SetProperty(object, name, value, language_mode(), store_mode),
|
| Object);
|
| return result;
|
| }
|
| @@ -1584,7 +1584,7 @@ MaybeHandle<Object> StoreIC::Store(Handle<Object> object, Handle<Name> name,
|
| Handle<Object> result;
|
| ASSIGN_RETURN_ON_EXCEPTION(
|
| isolate(), result,
|
| - Object::SetProperty(&it, value, strict_mode(), store_mode), Object);
|
| + Object::SetProperty(&it, value, language_mode(), store_mode), Object);
|
| return result;
|
| }
|
|
|
| @@ -1606,8 +1606,8 @@ Handle<Code> CallIC::initialize_stub_in_optimized_code(
|
|
|
|
|
| Handle<Code> StoreIC::initialize_stub(Isolate* isolate,
|
| - StrictMode strict_mode) {
|
| - ExtraICState extra_state = ComputeExtraICState(strict_mode);
|
| + LanguageMode language_mode) {
|
| + ExtraICState extra_state = ComputeExtraICState(language_mode);
|
| Handle<Code> ic =
|
| PropertyICCompiler::ComputeStore(isolate, UNINITIALIZED, extra_state);
|
| return ic;
|
| @@ -1620,7 +1620,7 @@ Handle<Code> StoreIC::megamorphic_stub() {
|
| extra_ic_state());
|
| } else {
|
| DCHECK(kind() == Code::KEYED_STORE_IC);
|
| - if (strict_mode() == STRICT) {
|
| + if (is_strict(language_mode())) {
|
| return isolate()->builtins()->KeyedStoreIC_Megamorphic_Strict();
|
| } else {
|
| return isolate()->builtins()->KeyedStoreIC_Megamorphic();
|
| @@ -1640,8 +1640,8 @@ Handle<Code> StoreIC::slow_stub() const {
|
|
|
|
|
| Handle<Code> StoreIC::pre_monomorphic_stub(Isolate* isolate,
|
| - StrictMode strict_mode) {
|
| - ExtraICState state = ComputeExtraICState(strict_mode);
|
| + LanguageMode language_mode) {
|
| + ExtraICState state = ComputeExtraICState(language_mode);
|
| return PropertyICCompiler::ComputeStore(isolate, PREMONOMORPHIC, state);
|
| }
|
|
|
| @@ -1813,7 +1813,7 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver,
|
| ComputeTransitionedMap(receiver_map, store_mode);
|
| store_mode = GetNonTransitioningStoreMode(store_mode);
|
| return PropertyICCompiler::ComputeKeyedStoreMonomorphic(
|
| - monomorphic_map, strict_mode(), store_mode);
|
| + monomorphic_map, language_mode(), store_mode);
|
| }
|
|
|
| // There are several special cases where an IC that is MONOMORPHIC can still
|
| @@ -1838,7 +1838,7 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver,
|
| // stay MONOMORPHIC and use the map for the most generic ElementsKind.
|
| store_mode = GetNonTransitioningStoreMode(store_mode);
|
| return PropertyICCompiler::ComputeKeyedStoreMonomorphic(
|
| - transitioned_receiver_map, strict_mode(), store_mode);
|
| + transitioned_receiver_map, language_mode(), store_mode);
|
| } else if (*previous_receiver_map == receiver->map() &&
|
| old_store_mode == STANDARD_STORE &&
|
| (store_mode == STORE_AND_GROW_NO_TRANSITION ||
|
| @@ -1848,7 +1848,7 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver,
|
| // grow at the end of the array, handle OOB accesses or copy COW arrays
|
| // and still stay MONOMORPHIC.
|
| return PropertyICCompiler::ComputeKeyedStoreMonomorphic(
|
| - receiver_map, strict_mode(), store_mode);
|
| + receiver_map, language_mode(), store_mode);
|
| }
|
| }
|
|
|
| @@ -1909,7 +1909,7 @@ Handle<Code> KeyedStoreIC::StoreElementStub(Handle<JSObject> receiver,
|
| }
|
|
|
| return PropertyICCompiler::ComputeKeyedStorePolymorphic(
|
| - &target_receiver_maps, store_mode, strict_mode());
|
| + &target_receiver_maps, store_mode, language_mode());
|
| }
|
|
|
|
|
| @@ -2039,7 +2039,7 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object,
|
| Handle<Object> result;
|
| ASSIGN_RETURN_ON_EXCEPTION(
|
| isolate(), result, Runtime::SetObjectProperty(isolate(), object, key,
|
| - value, strict_mode()),
|
| + value, language_mode()),
|
| Object);
|
| return result;
|
| }
|
| @@ -2089,7 +2089,7 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object,
|
| bool key_is_smi_like = !Object::ToSmi(isolate(), key).is_null();
|
| if (receiver->elements()->map() ==
|
| isolate()->heap()->sloppy_arguments_elements_map()) {
|
| - if (strict_mode() == SLOPPY) {
|
| + if (is_sloppy(language_mode())) {
|
| stub = sloppy_arguments_stub();
|
| } else {
|
| TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "arguments receiver");
|
| @@ -2118,7 +2118,7 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object,
|
| ASSIGN_RETURN_ON_EXCEPTION(
|
| isolate(), store_handle,
|
| Runtime::SetObjectProperty(isolate(), object, key, value,
|
| - strict_mode()),
|
| + language_mode()),
|
| Object);
|
| }
|
|
|
| @@ -2448,11 +2448,11 @@ RUNTIME_FUNCTION(StoreIC_Slow) {
|
| Handle<Object> object = args.at<Object>(0);
|
| Handle<Object> key = args.at<Object>(1);
|
| Handle<Object> value = args.at<Object>(2);
|
| - StrictMode strict_mode = ic.strict_mode();
|
| + LanguageMode language_mode = ic.language_mode();
|
| Handle<Object> result;
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| isolate, result,
|
| - Runtime::SetObjectProperty(isolate, object, key, value, strict_mode));
|
| + Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
|
| return *result;
|
| }
|
|
|
| @@ -2464,11 +2464,11 @@ RUNTIME_FUNCTION(KeyedStoreIC_Slow) {
|
| Handle<Object> object = args.at<Object>(0);
|
| Handle<Object> key = args.at<Object>(1);
|
| Handle<Object> value = args.at<Object>(2);
|
| - StrictMode strict_mode = ic.strict_mode();
|
| + LanguageMode language_mode = ic.language_mode();
|
| Handle<Object> result;
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| isolate, result,
|
| - Runtime::SetObjectProperty(isolate, object, key, value, strict_mode));
|
| + Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
|
| return *result;
|
| }
|
|
|
| @@ -2482,7 +2482,7 @@ RUNTIME_FUNCTION(ElementsTransitionAndStoreIC_Miss) {
|
| Handle<Map> map = args.at<Map>(1);
|
| Handle<Object> key = args.at<Object>(2);
|
| Handle<Object> object = args.at<Object>(3);
|
| - StrictMode strict_mode = ic.strict_mode();
|
| + LanguageMode language_mode = ic.language_mode();
|
| if (object->IsJSObject()) {
|
| JSObject::TransitionElementsKind(Handle<JSObject>::cast(object),
|
| map->elements_kind());
|
| @@ -2490,7 +2490,7 @@ RUNTIME_FUNCTION(ElementsTransitionAndStoreIC_Miss) {
|
| Handle<Object> result;
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| isolate, result,
|
| - Runtime::SetObjectProperty(isolate, object, key, value, strict_mode));
|
| + Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
|
| return *result;
|
| }
|
|
|
| @@ -2941,7 +2941,7 @@ RUNTIME_FUNCTION(StorePropertyWithInterceptor) {
|
| Handle<Object> result;
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| isolate, result,
|
| - JSObject::SetProperty(receiver, name, value, ic.strict_mode()));
|
| + JSObject::SetProperty(receiver, name, value, ic.language_mode()));
|
| return *result;
|
| }
|
|
|
|
|