Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 9a5353fe630eaba44fecc4d3ce558c1babd343d5..8d984e34b394c61e60e8499faab736c1d9da0463 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -145,15 +145,15 @@ MaybeHandle<Object> Object::GetProperty(LookupIterator* it) { |
} |
-Handle<Object> JSObject::GetDataProperty(Handle<JSObject> object, |
- Handle<Name> key) { |
+Handle<Object> JSReceiver::GetDataProperty(Handle<JSReceiver> object, |
+ Handle<Name> key) { |
LookupIterator it(object, key, |
LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR); |
return GetDataProperty(&it); |
} |
-Handle<Object> JSObject::GetDataProperty(LookupIterator* it) { |
+Handle<Object> JSReceiver::GetDataProperty(LookupIterator* it) { |
for (; it->IsFound(); it->Next()) { |
switch (it->state()) { |
case LookupIterator::INTERCEPTOR: |
@@ -389,11 +389,10 @@ MaybeHandle<Object> Object::SetPropertyWithAccessor( |
receiver, Handle<JSReceiver>::cast(setter), value); |
} else { |
if (is_sloppy(language_mode)) return value; |
- Handle<Object> args[] = {name, holder}; |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("no_setter_in_callback", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, |
+ NewTypeError(MessageTemplate::kNoSetterInCallback, name, holder), |
+ Object); |
} |
} |
@@ -3322,10 +3321,10 @@ MaybeHandle<Object> Object::WriteToReadOnlyProperty( |
Isolate* isolate, Handle<Object> receiver, Handle<Object> name, |
Handle<Object> value, LanguageMode language_mode) { |
if (is_sloppy(language_mode)) return value; |
- Handle<Object> args[] = {name, receiver}; |
- THROW_NEW_ERROR(isolate, NewTypeError("strict_read_only_property", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, |
+ NewTypeError(MessageTemplate::kStrictReadOnlyProperty, name, receiver), |
+ Object); |
} |
@@ -3410,12 +3409,10 @@ MaybeHandle<Object> Object::AddDataProperty(LookupIterator* it, |
it->PrepareTransitionToDataProperty(value, attributes, store_mode); |
if (it->state() != LookupIterator::TRANSITION) { |
if (is_sloppy(language_mode)) return value; |
- |
- Handle<Object> args[] = {it->name()}; |
- THROW_NEW_ERROR(it->isolate(), |
- NewTypeError("object_not_extensible", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ it->isolate(), |
+ NewTypeError(MessageTemplate::kObjectNotExtensible, it->name()), |
+ Object); |
} |
it->ApplyTransitionToDataProperty(); |
@@ -3969,10 +3966,9 @@ MaybeHandle<Object> JSProxy::SetPropertyViaPrototypesWithHandler( |
} |
if (is_sloppy(language_mode)) return value; |
- Handle<Object> args2[] = { name, proxy }; |
- THROW_NEW_ERROR(isolate, NewTypeError("no_setter_in_callback", |
- HandleVector(args2, arraysize(args2))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, NewTypeError(MessageTemplate::kNoSetterInCallback, name, proxy), |
+ Object); |
} |
@@ -3997,12 +3993,10 @@ MaybeHandle<Object> JSProxy::DeletePropertyWithHandler( |
bool result_bool = result->BooleanValue(); |
if (is_strict(language_mode) && !result_bool) { |
Handle<Object> handler(proxy->handler(), isolate); |
- Handle<String> trap_name = isolate->factory()->InternalizeOneByteString( |
- STATIC_CHAR_VECTOR("delete")); |
- Handle<Object> args[] = { handler, trap_name }; |
- THROW_NEW_ERROR(isolate, NewTypeError("handler_failed", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, |
+ NewTypeError(MessageTemplate::kProxyHandlerDeleteFailed, handler), |
+ Object); |
} |
return isolate->factory()->ToBoolean(result_bool); |
} |
@@ -5313,11 +5307,10 @@ MaybeHandle<Object> JSObject::DeleteElement(Handle<JSObject> object, |
if (is_strict(language_mode)) { |
// Deleting a non-configurable property in strict mode. |
Handle<Object> name = factory->NewNumberFromUint(index); |
- Handle<Object> args[] = {name, object}; |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("strict_delete_property", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, |
+ NewTypeError(MessageTemplate::kStrictDeleteProperty, name, object), |
+ Object); |
} |
return factory->false_value(); |
} |
@@ -5447,10 +5440,9 @@ MaybeHandle<Object> JSObject::DeleteProperty(Handle<JSObject> object, |
if (!it.IsConfigurable()) { |
// Fail if the property is not configurable. |
if (is_strict(language_mode)) { |
- Handle<Object> args[] = {name, object}; |
THROW_NEW_ERROR(it.isolate(), |
- NewTypeError("strict_delete_property", |
- HandleVector(args, arraysize(args))), |
+ NewTypeError(MessageTemplate::kStrictDeleteProperty, |
+ name, object), |
Object); |
} |
return it.isolate()->factory()->false_value(); |
@@ -5671,10 +5663,9 @@ MaybeHandle<Object> JSObject::PreventExtensions(Handle<JSObject> object) { |
// It's not possible to seal objects with external array elements |
if (object->HasExternalArrayElements() || |
object->HasFixedTypedArrayElements()) { |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("cant_prevent_ext_external_array_elements", |
- HandleVector(&object, 1)), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, NewTypeError(MessageTemplate::kCannotPreventExtExternalArray), |
+ Object); |
} |
// If there are fast elements we normalize. |
@@ -5780,10 +5771,9 @@ MaybeHandle<Object> JSObject::PreventExtensionsWithTransition( |
// It's not possible to seal or freeze objects with external array elements |
if (object->HasExternalArrayElements() || |
object->HasFixedTypedArrayElements()) { |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("cant_prevent_ext_external_array_elements", |
- HandleVector(&object, 1)), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, NewTypeError(MessageTemplate::kCannotPreventExtExternalArray), |
+ Object); |
} |
Handle<SeededNumberDictionary> new_element_dictionary; |
@@ -10522,7 +10512,7 @@ bool JSFunction::PassesFilter(const char* raw_filter) { |
Handle<String> JSFunction::GetDebugName(Handle<JSFunction> function) { |
Isolate* isolate = function->GetIsolate(); |
Handle<Object> name = |
- JSObject::GetDataProperty(function, isolate->factory()->name_string()); |
+ JSReceiver::GetDataProperty(function, isolate->factory()->name_string()); |
if (name->IsString()) return Handle<String>::cast(name); |
return handle(function->shared()->DebugName(), isolate); |
} |
@@ -12597,9 +12587,8 @@ MaybeHandle<Object> JSObject::SetPrototype(Handle<JSObject> object, |
// or [[Extensible]] must not violate the invariants defined in the preceding |
// paragraph. |
if (!object->map()->is_extensible()) { |
- Handle<Object> args[] = { object }; |
- THROW_NEW_ERROR(isolate, NewTypeError("non_extensible_proto", |
- HandleVector(args, arraysize(args))), |
+ THROW_NEW_ERROR(isolate, |
+ NewTypeError(MessageTemplate::kNonExtensibleProto, object), |
Object); |
} |
@@ -12629,11 +12618,9 @@ MaybeHandle<Object> JSObject::SetPrototype(Handle<JSObject> object, |
Handle<JSObject>::cast(PrototypeIterator::GetCurrent(iter)); |
iter.Advance(); |
if (!real_receiver->map()->is_extensible()) { |
- Handle<Object> args[] = {object}; |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("non_extensible_proto", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, NewTypeError(MessageTemplate::kNonExtensibleProto, object), |
+ Object); |
} |
} |
} |
@@ -12813,11 +12800,10 @@ MaybeHandle<Object> JSObject::SetElementWithCallback( |
} else { |
if (is_sloppy(language_mode)) return value; |
Handle<Object> key(isolate->factory()->NewNumberFromUint(index)); |
- Handle<Object> args[] = {key, holder}; |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("no_setter_in_callback", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, |
+ NewTypeError(MessageTemplate::kNoSetterInCallback, key, holder), |
+ Object); |
} |
} |
@@ -13056,11 +13042,9 @@ MaybeHandle<Object> JSObject::SetDictionaryElement( |
} else { |
Handle<Object> number = isolate->factory()->NewNumberFromUint(index); |
Handle<String> name = isolate->factory()->NumberToString(number); |
- Handle<Object> args[] = {name}; |
- THROW_NEW_ERROR(isolate, |
- NewTypeError("object_not_extensible", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, NewTypeError(MessageTemplate::kObjectNotExtensible, name), |
+ Object); |
} |
} |
@@ -13277,11 +13261,8 @@ MaybeHandle<Object> JSObject::SetElement(Handle<JSObject> object, |
if ((object->HasExternalArrayElements() || |
object->HasFixedTypedArrayElements()) && |
set_mode == DEFINE_PROPERTY) { |
- Handle<Object> number = isolate->factory()->NewNumberFromUint(index); |
- Handle<Object> args[] = { object, number }; |
- THROW_NEW_ERROR(isolate, NewTypeError("redef_external_array_element", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, NewTypeError(MessageTemplate::kRedefineExternalArray), Object); |
} |
// Normalize the elements to enable attributes on the property. |
@@ -13724,10 +13705,10 @@ bool JSArray::WouldChangeReadOnlyLength(Handle<JSArray> array, |
MaybeHandle<Object> JSArray::ReadOnlyLengthError(Handle<JSArray> array) { |
Isolate* isolate = array->GetIsolate(); |
Handle<Name> length = isolate->factory()->length_string(); |
- Handle<Object> args[] = {length, array}; |
- THROW_NEW_ERROR(isolate, NewTypeError("strict_read_only_property", |
- HandleVector(args, arraysize(args))), |
- Object); |
+ THROW_NEW_ERROR( |
+ isolate, |
+ NewTypeError(MessageTemplate::kStrictReadOnlyProperty, length, array), |
+ Object); |
} |