Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: src/bootstrapper.cc

Issue 1432453005: Revert of Use in-object fields instead of private symbols for regexp slots. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/crankshaft/hydrogen.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/bootstrapper.h" 5 #include "src/bootstrapper.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api-natives.h" 8 #include "src/api-natives.h"
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/extensions/externalize-string-extension.h" 10 #include "src/extensions/externalize-string-extension.h"
(...skipping 1205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 InstallFunction(global, "RegExp", JS_REGEXP_TYPE, JSRegExp::kSize, 1216 InstallFunction(global, "RegExp", JS_REGEXP_TYPE, JSRegExp::kSize,
1217 isolate->initial_object_prototype(), 1217 isolate->initial_object_prototype(),
1218 Builtins::kIllegal); 1218 Builtins::kIllegal);
1219 native_context()->set_regexp_function(*regexp_fun); 1219 native_context()->set_regexp_function(*regexp_fun);
1220 1220
1221 DCHECK(regexp_fun->has_initial_map()); 1221 DCHECK(regexp_fun->has_initial_map());
1222 Handle<Map> initial_map(regexp_fun->initial_map()); 1222 Handle<Map> initial_map(regexp_fun->initial_map());
1223 1223
1224 DCHECK_EQ(0, initial_map->GetInObjectProperties()); 1224 DCHECK_EQ(0, initial_map->GetInObjectProperties());
1225 1225
1226 Map::EnsureDescriptorSlack(initial_map, 1); 1226 PropertyAttributes final =
1227 static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY);
1228 Map::EnsureDescriptorSlack(initial_map, 5);
1227 1229
1228 // ECMA-262, section 15.10.7.5. 1230 {
1229 PropertyAttributes writable = 1231 // ES6 21.2.3.2.1
1230 static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE); 1232 DataDescriptor field(factory->regexp_source_symbol(),
1231 DataDescriptor field(factory->last_index_string(), 1233 JSRegExp::kSourceFieldIndex, final,
1232 JSRegExp::kLastIndexFieldIndex, writable, 1234 Representation::Tagged());
1233 Representation::Tagged()); 1235 initial_map->AppendDescriptor(&field);
1234 initial_map->AppendDescriptor(&field); 1236 }
1237 {
1238 DataDescriptor field(factory->regexp_flags_symbol(),
1239 JSRegExp::kFlagsFieldIndex, final,
1240 Representation::Smi());
1241 initial_map->AppendDescriptor(&field);
1242 }
1243 {
1244 // ECMA-262, section 15.10.7.5.
1245 PropertyAttributes writable =
1246 static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE);
1247 DataDescriptor field(factory->last_index_string(),
1248 JSRegExp::kLastIndexFieldIndex, writable,
1249 Representation::Tagged());
1250 initial_map->AppendDescriptor(&field);
1251 }
1235 1252
1236 static const int num_fields = JSRegExp::kInObjectFieldCount; 1253 static const int num_fields = JSRegExp::kInObjectFieldCount;
1237 initial_map->SetInObjectProperties(num_fields); 1254 initial_map->SetInObjectProperties(num_fields);
1238 initial_map->set_unused_property_fields(0); 1255 initial_map->set_unused_property_fields(0);
1239 initial_map->set_instance_size(initial_map->instance_size() + 1256 initial_map->set_instance_size(initial_map->instance_size() +
1240 num_fields * kPointerSize); 1257 num_fields * kPointerSize);
1241 } 1258 }
1242 1259
1243 // Initialize the embedder data slot. 1260 // Initialize the embedder data slot.
1244 Handle<FixedArray> embedder_data = factory->NewFixedArray(3); 1261 Handle<FixedArray> embedder_data = factory->NewFixedArray(3);
(...skipping 1983 matching lines...) Expand 10 before | Expand all | Expand 10 after
3228 } 3245 }
3229 3246
3230 3247
3231 // Called when the top-level V8 mutex is destroyed. 3248 // Called when the top-level V8 mutex is destroyed.
3232 void Bootstrapper::FreeThreadResources() { 3249 void Bootstrapper::FreeThreadResources() {
3233 DCHECK(!IsActive()); 3250 DCHECK(!IsActive());
3234 } 3251 }
3235 3252
3236 } // namespace internal 3253 } // namespace internal
3237 } // namespace v8 3254 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/crankshaft/hydrogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698