Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 8909e25f638032df8dba94649c659c6c9afc8331..b94115c7c593e20a04d034efce6d145502d7e8ba 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -379,8 +379,7 @@ static Handle<JSFunction> InstallFunction(Handle<JSObject> target, |
} else { |
attributes = DONT_ENUM; |
} |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- target, internalized_name, function, attributes).Check(); |
+ JSObject::AddProperty(target, internalized_name, function, attributes); |
if (target->IsJSGlobalObject()) { |
function->shared()->set_instance_class_name(*internalized_name); |
} |
@@ -889,9 +888,8 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
Heap* heap = isolate->heap(); |
Handle<String> object_name = factory->Object_string(); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- inner_global, object_name, |
- isolate->object_function(), DONT_ENUM).Check(); |
+ JSObject::AddProperty( |
+ inner_global, object_name, isolate->object_function(), DONT_ENUM); |
Handle<JSObject> global(native_context()->global_object()); |
@@ -1090,8 +1088,7 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
cons->SetInstanceClassName(*name); |
Handle<JSObject> json_object = factory->NewJSObject(cons, TENURED); |
ASSERT(json_object->IsJSObject()); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- global, name, json_object, DONT_ENUM).Check(); |
+ JSObject::AddProperty(global, name, json_object, DONT_ENUM); |
native_context()->set_json_object(*json_object); |
} |
@@ -1156,14 +1153,14 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
native_context()->set_sloppy_arguments_boilerplate(*result); |
// Note: length must be added as the first property and |
// callee must be added as the second property. |
- JSObject::SetOwnPropertyIgnoreAttributes( |
+ JSObject::AddProperty( |
result, factory->length_string(), |
factory->undefined_value(), DONT_ENUM, |
- Object::FORCE_TAGGED, FORCE_FIELD).Check(); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
+ Object::FORCE_TAGGED, FORCE_FIELD); |
+ JSObject::AddProperty( |
result, factory->callee_string(), |
factory->undefined_value(), DONT_ENUM, |
- Object::FORCE_TAGGED, FORCE_FIELD).Check(); |
+ Object::FORCE_TAGGED, FORCE_FIELD); |
#ifdef DEBUG |
LookupResult lookup(isolate); |
@@ -1262,11 +1259,6 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
Handle<JSObject> result = factory->NewJSObjectFromMap(map); |
native_context()->set_strict_arguments_boilerplate(*result); |
- // Add length property only for strict mode boilerplate. |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- result, factory->length_string(), |
- factory->undefined_value(), DONT_ENUM).Check(); |
- |
#ifdef DEBUG |
LookupResult lookup(isolate); |
result->LookupOwn(factory->length_string(), &lookup); |
@@ -1274,6 +1266,10 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
ASSERT(lookup.GetFieldIndex().property_index() == |
Heap::kArgumentsLengthIndex); |
+ Handle<Object> length_value = Object::GetProperty( |
+ result, factory->length_string()).ToHandleChecked(); |
+ ASSERT_EQ(heap->undefined_value(), *length_value); |
+ |
ASSERT(result->map()->inobject_properties() > Heap::kArgumentsLengthIndex); |
// Check the state of the object. |
@@ -1736,12 +1732,10 @@ bool Genesis::InstallNatives() { |
Handle<String> global_string = |
factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("global")); |
Handle<Object> global_obj(native_context()->global_object(), isolate()); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- builtins, global_string, global_obj, attributes).Check(); |
+ JSObject::AddProperty(builtins, global_string, global_obj, attributes); |
Handle<String> builtins_string = |
factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("builtins")); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- builtins, builtins_string, builtins, attributes).Check(); |
+ JSObject::AddProperty(builtins, builtins_string, builtins, attributes); |
// Set up the reference from the global object to the builtins object. |
JSGlobalObject::cast(native_context()->global_object())-> |
@@ -2454,16 +2448,14 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
ASSERT(!descs->GetDetails(i).representation().IsDouble()); |
Handle<Object> value = Handle<Object>(from->RawFastPropertyAt(index), |
isolate()); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- to, key, value, details.attributes()).Check(); |
+ JSObject::AddProperty(to, key, value, details.attributes()); |
break; |
} |
case CONSTANT: { |
HandleScope inner(isolate()); |
Handle<Name> key = Handle<Name>(descs->GetKey(i)); |
Handle<Object> constant(descs->GetConstant(i), isolate()); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- to, key, constant, details.attributes()).Check(); |
+ JSObject::AddProperty(to, key, constant, details.attributes()); |
break; |
} |
case CALLBACKS: { |
@@ -2513,8 +2505,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from, |
isolate()); |
} |
PropertyDetails details = properties->DetailsAt(i); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- to, key, value, details.attributes()).Check(); |
+ JSObject::AddProperty(to, key, value, details.attributes()); |
} |
} |
} |