| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index e20baf0ec8e6975961807fb487cc88df78825f90..d0f1cc76d98a6ab408d6f7436f6759e6403ecd1f 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -834,8 +834,8 @@ static void ReplaceAccessors(Handle<Map> map,
|
| Handle<AccessorPair> accessor_pair) {
|
| DescriptorArray* descriptors = map->instance_descriptors();
|
| int idx = descriptors->SearchWithCache(map->GetIsolate(), *name, *map);
|
| - AccessorConstantDescriptor descriptor(name, accessor_pair, attributes);
|
| - descriptors->Replace(idx, &descriptor);
|
| + Descriptor d = Descriptor::AccessorConstant(name, accessor_pair, attributes);
|
| + descriptors->Replace(idx, &d);
|
| }
|
|
|
| void Genesis::AddRestrictedFunctionProperties(Handle<JSFunction> empty) {
|
| @@ -1107,8 +1107,8 @@ static void InstallError(Isolate* isolate, Handle<JSObject> global,
|
| Handle<AccessorInfo> error_stack =
|
| Accessors::ErrorStackInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(Handle<Name>(Name::cast(error_stack->name())),
|
| - error_stack, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| + Handle<Name>(Name::cast(error_stack->name())), error_stack, attribs);
|
| initial_map->AppendDescriptor(&d);
|
| }
|
| }
|
| @@ -1318,7 +1318,7 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| Handle<AccessorInfo> array_length =
|
| Accessors::ArrayLengthInfo(isolate, attribs);
|
| { // Add length.
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(array_length->name())), array_length,
|
| attribs);
|
| initial_map->AppendDescriptor(&d);
|
| @@ -1542,8 +1542,8 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| Accessors::StringLengthInfo(isolate, attribs));
|
|
|
| { // Add length.
|
| - AccessorConstantDescriptor d(factory->length_string(), string_length,
|
| - attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(factory->length_string(),
|
| + string_length, attribs);
|
| string_map->AppendDescriptor(&d);
|
| }
|
|
|
| @@ -2143,10 +2143,10 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| // ECMA-262, section 15.10.7.5.
|
| PropertyAttributes writable =
|
| static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE);
|
| - DataDescriptor field(factory->lastIndex_string(),
|
| - JSRegExp::kLastIndexFieldIndex, writable,
|
| - Representation::Tagged());
|
| - initial_map->AppendDescriptor(&field);
|
| + Descriptor d = Descriptor::DataField(factory->lastIndex_string(),
|
| + JSRegExp::kLastIndexFieldIndex,
|
| + writable, Representation::Tagged());
|
| + initial_map->AppendDescriptor(&d);
|
|
|
| static const int num_fields = JSRegExp::kInObjectFieldCount;
|
| initial_map->SetInObjectProperties(num_fields);
|
| @@ -2488,9 +2488,9 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| { // Install @@toStringTag.
|
| PropertyAttributes attribs =
|
| static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
|
| - DataConstantDescriptor d(factory->to_string_tag_symbol(),
|
| - factory->NewStringFromAsciiChecked("Module"),
|
| - attribs);
|
| + Descriptor d = Descriptor::DataConstant(
|
| + factory->to_string_tag_symbol(),
|
| + factory->NewStringFromAsciiChecked("Module"), attribs);
|
| map->AppendDescriptor(&d);
|
| }
|
| }
|
| @@ -2502,14 +2502,16 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| Map::EnsureDescriptorSlack(map, 2);
|
|
|
| { // value
|
| - DataDescriptor d(factory->value_string(), JSIteratorResult::kValueIndex,
|
| - NONE, Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(factory->value_string(),
|
| + JSIteratorResult::kValueIndex, NONE,
|
| + Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
|
|
| { // done
|
| - DataDescriptor d(factory->done_string(), JSIteratorResult::kDoneIndex,
|
| - NONE, Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(factory->done_string(),
|
| + JSIteratorResult::kDoneIndex, NONE,
|
| + Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
|
|
| @@ -2615,15 +2617,15 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| Handle<AccessorInfo> bound_length =
|
| Accessors::BoundFunctionLengthInfo(isolate, roc_attribs);
|
| { // length
|
| - AccessorConstantDescriptor d(factory->length_string(), bound_length,
|
| - roc_attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(factory->length_string(),
|
| + bound_length, roc_attribs);
|
| map->AppendDescriptor(&d);
|
| }
|
| Handle<AccessorInfo> bound_name =
|
| Accessors::BoundFunctionNameInfo(isolate, roc_attribs);
|
| - { // length
|
| - AccessorConstantDescriptor d(factory->name_string(), bound_name,
|
| - roc_attribs);
|
| + { // name
|
| + Descriptor d = Descriptor::AccessorConstant(factory->name_string(),
|
| + bound_name, roc_attribs);
|
| map->AppendDescriptor(&d);
|
| }
|
| map->SetInObjectProperties(0);
|
| @@ -2650,15 +2652,15 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| Map::EnsureDescriptorSlack(map, 2);
|
|
|
| { // length
|
| - DataDescriptor d(factory->length_string(),
|
| - JSSloppyArgumentsObject::kLengthIndex, DONT_ENUM,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory->length_string(), JSSloppyArgumentsObject::kLengthIndex,
|
| + DONT_ENUM, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // callee
|
| - DataDescriptor d(factory->callee_string(),
|
| - JSSloppyArgumentsObject::kCalleeIndex, DONT_ENUM,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory->callee_string(), JSSloppyArgumentsObject::kCalleeIndex,
|
| + DONT_ENUM, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| // @@iterator method is added later.
|
| @@ -2707,14 +2709,14 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| Map::EnsureDescriptorSlack(map, 2);
|
|
|
| { // length
|
| - DataDescriptor d(factory->length_string(),
|
| - JSStrictArgumentsObject::kLengthIndex, DONT_ENUM,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory->length_string(), JSStrictArgumentsObject::kLengthIndex,
|
| + DONT_ENUM, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // callee
|
| - AccessorConstantDescriptor d(factory->callee_string(), callee,
|
| - attributes);
|
| + Descriptor d = Descriptor::AccessorConstant(factory->callee_string(),
|
| + callee, attributes);
|
| map->AppendDescriptor(&d);
|
| }
|
| // @@iterator method is added later.
|
| @@ -3127,7 +3129,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_column =
|
| Accessors::ScriptColumnOffsetInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_column->name())), script_column,
|
| attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3135,8 +3137,8 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
|
|
| Handle<AccessorInfo> script_id = Accessors::ScriptIdInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(Handle<Name>(Name::cast(script_id->name())),
|
| - script_id, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| + Handle<Name>(Name::cast(script_id->name())), script_id, attribs);
|
| script_map->AppendDescriptor(&d);
|
| }
|
|
|
| @@ -3144,7 +3146,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_name =
|
| Accessors::ScriptNameInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_name->name())), script_name, attribs);
|
| script_map->AppendDescriptor(&d);
|
| }
|
| @@ -3152,7 +3154,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_line =
|
| Accessors::ScriptLineOffsetInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_line->name())), script_line, attribs);
|
| script_map->AppendDescriptor(&d);
|
| }
|
| @@ -3160,7 +3162,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_source =
|
| Accessors::ScriptSourceInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_source->name())), script_source,
|
| attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3169,7 +3171,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_type =
|
| Accessors::ScriptTypeInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_type->name())), script_type, attribs);
|
| script_map->AppendDescriptor(&d);
|
| }
|
| @@ -3177,7 +3179,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_compilation_type =
|
| Accessors::ScriptCompilationTypeInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_compilation_type->name())),
|
| script_compilation_type, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3186,7 +3188,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_context_data =
|
| Accessors::ScriptContextDataInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_context_data->name())),
|
| script_context_data, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3195,7 +3197,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_eval_from_script =
|
| Accessors::ScriptEvalFromScriptInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_eval_from_script->name())),
|
| script_eval_from_script, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3204,7 +3206,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_eval_from_script_position =
|
| Accessors::ScriptEvalFromScriptPositionInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_eval_from_script_position->name())),
|
| script_eval_from_script_position, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3213,7 +3215,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_eval_from_function_name =
|
| Accessors::ScriptEvalFromFunctionNameInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_eval_from_function_name->name())),
|
| script_eval_from_function_name, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3222,7 +3224,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_source_url =
|
| Accessors::ScriptSourceUrlInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_source_url->name())),
|
| script_source_url, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3231,7 +3233,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
|
| Handle<AccessorInfo> script_source_mapping_url =
|
| Accessors::ScriptSourceMappingUrlInfo(isolate, attribs);
|
| {
|
| - AccessorConstantDescriptor d(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| Handle<Name>(Name::cast(script_source_mapping_url->name())),
|
| script_source_mapping_url, attribs);
|
| script_map->AppendDescriptor(&d);
|
| @@ -3534,8 +3536,8 @@ Handle<JSFunction> Genesis::InstallInternalArray(Handle<JSObject> target,
|
| Handle<AccessorInfo> array_length =
|
| Accessors::ArrayLengthInfo(isolate(), attribs);
|
| { // Add length.
|
| - AccessorConstantDescriptor d(Handle<Name>(Name::cast(array_length->name())),
|
| - array_length, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| + Handle<Name>(Name::cast(array_length->name())), array_length, attribs);
|
| initial_map->AppendDescriptor(&d);
|
| }
|
|
|
| @@ -3730,27 +3732,29 @@ bool Genesis::InstallNatives(GlobalContextType context_type) {
|
| Map::EnsureDescriptorSlack(map, 4);
|
|
|
| { // get
|
| - DataDescriptor d(factory()->get_string(),
|
| - JSAccessorPropertyDescriptor::kGetIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory()->get_string(), JSAccessorPropertyDescriptor::kGetIndex,
|
| + NONE, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // set
|
| - DataDescriptor d(factory()->set_string(),
|
| - JSAccessorPropertyDescriptor::kSetIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory()->set_string(), JSAccessorPropertyDescriptor::kSetIndex,
|
| + NONE, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // enumerable
|
| - DataDescriptor d(factory()->enumerable_string(),
|
| - JSAccessorPropertyDescriptor::kEnumerableIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d =
|
| + Descriptor::DataField(factory()->enumerable_string(),
|
| + JSAccessorPropertyDescriptor::kEnumerableIndex,
|
| + NONE, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // configurable
|
| - DataDescriptor d(factory()->configurable_string(),
|
| - JSAccessorPropertyDescriptor::kConfigurableIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory()->configurable_string(),
|
| + JSAccessorPropertyDescriptor::kConfigurableIndex, NONE,
|
| + Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
|
|
| @@ -3773,27 +3777,30 @@ bool Genesis::InstallNatives(GlobalContextType context_type) {
|
| Map::EnsureDescriptorSlack(map, 4);
|
|
|
| { // value
|
| - DataDescriptor d(factory()->value_string(),
|
| - JSDataPropertyDescriptor::kValueIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d = Descriptor::DataField(
|
| + factory()->value_string(), JSDataPropertyDescriptor::kValueIndex,
|
| + NONE, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // writable
|
| - DataDescriptor d(factory()->writable_string(),
|
| - JSDataPropertyDescriptor::kWritableIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d =
|
| + Descriptor::DataField(factory()->writable_string(),
|
| + JSDataPropertyDescriptor::kWritableIndex, NONE,
|
| + Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // enumerable
|
| - DataDescriptor d(factory()->enumerable_string(),
|
| - JSDataPropertyDescriptor::kEnumerableIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d =
|
| + Descriptor::DataField(factory()->enumerable_string(),
|
| + JSDataPropertyDescriptor::kEnumerableIndex,
|
| + NONE, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
| { // configurable
|
| - DataDescriptor d(factory()->configurable_string(),
|
| - JSDataPropertyDescriptor::kConfigurableIndex, NONE,
|
| - Representation::Tagged());
|
| + Descriptor d =
|
| + Descriptor::DataField(factory()->configurable_string(),
|
| + JSDataPropertyDescriptor::kConfigurableIndex,
|
| + NONE, Representation::Tagged());
|
| map->AppendDescriptor(&d);
|
| }
|
|
|
| @@ -3835,23 +3842,23 @@ bool Genesis::InstallNatives(GlobalContextType context_type) {
|
| int old = array_descriptors->SearchWithCache(
|
| isolate(), *length, array_function->initial_map());
|
| DCHECK(old != DescriptorArray::kNotFound);
|
| - AccessorConstantDescriptor desc(
|
| + Descriptor d = Descriptor::AccessorConstant(
|
| length, handle(array_descriptors->GetValue(old), isolate()),
|
| array_descriptors->GetDetails(old).attributes());
|
| - initial_map->AppendDescriptor(&desc);
|
| + initial_map->AppendDescriptor(&d);
|
| }
|
| {
|
| - DataDescriptor index_field(factory()->index_string(),
|
| - JSRegExpResult::kIndexIndex, NONE,
|
| - Representation::Tagged());
|
| - initial_map->AppendDescriptor(&index_field);
|
| + Descriptor d = Descriptor::DataField(factory()->index_string(),
|
| + JSRegExpResult::kIndexIndex, NONE,
|
| + Representation::Tagged());
|
| + initial_map->AppendDescriptor(&d);
|
| }
|
|
|
| {
|
| - DataDescriptor input_field(factory()->input_string(),
|
| - JSRegExpResult::kInputIndex, NONE,
|
| - Representation::Tagged());
|
| - initial_map->AppendDescriptor(&input_field);
|
| + Descriptor d = Descriptor::DataField(factory()->input_string(),
|
| + JSRegExpResult::kInputIndex, NONE,
|
| + Representation::Tagged());
|
| + initial_map->AppendDescriptor(&d);
|
| }
|
|
|
| initial_map->SetInObjectProperties(2);
|
| @@ -3866,29 +3873,29 @@ bool Genesis::InstallNatives(GlobalContextType context_type) {
|
| Handle<AccessorInfo> arguments_iterator =
|
| Accessors::ArgumentsIteratorInfo(isolate(), attribs);
|
| {
|
| - AccessorConstantDescriptor d(factory()->iterator_symbol(),
|
| - arguments_iterator, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(factory()->iterator_symbol(),
|
| + arguments_iterator, attribs);
|
| Handle<Map> map(native_context()->sloppy_arguments_map());
|
| Map::EnsureDescriptorSlack(map, 1);
|
| map->AppendDescriptor(&d);
|
| }
|
| {
|
| - AccessorConstantDescriptor d(factory()->iterator_symbol(),
|
| - arguments_iterator, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(factory()->iterator_symbol(),
|
| + arguments_iterator, attribs);
|
| Handle<Map> map(native_context()->fast_aliased_arguments_map());
|
| Map::EnsureDescriptorSlack(map, 1);
|
| map->AppendDescriptor(&d);
|
| }
|
| {
|
| - AccessorConstantDescriptor d(factory()->iterator_symbol(),
|
| - arguments_iterator, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(factory()->iterator_symbol(),
|
| + arguments_iterator, attribs);
|
| Handle<Map> map(native_context()->slow_aliased_arguments_map());
|
| Map::EnsureDescriptorSlack(map, 1);
|
| map->AppendDescriptor(&d);
|
| }
|
| {
|
| - AccessorConstantDescriptor d(factory()->iterator_symbol(),
|
| - arguments_iterator, attribs);
|
| + Descriptor d = Descriptor::AccessorConstant(factory()->iterator_symbol(),
|
| + arguments_iterator, attribs);
|
| Handle<Map> map(native_context()->strict_arguments_map());
|
| Map::EnsureDescriptorSlack(map, 1);
|
| map->AppendDescriptor(&d);
|
|
|