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

Side by Side Diff: src/bootstrapper.cc

Issue 567313003: RegExp: Add support for the ES6-proposed sticky flag (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add missing test of --harmony-regexps flag Created 6 years, 3 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/compilation-cache.cc » ('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/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/extensions/externalize-string-extension.h" 9 #include "src/extensions/externalize-string-extension.h"
10 #include "src/extensions/free-buffer-extension.h" 10 #include "src/extensions/free-buffer-extension.h"
(...skipping 1337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 *fun = result; 1348 *fun = result;
1349 1349
1350 ElementsKind external_kind = GetNextTransitionElementsKind(elements_kind); 1350 ElementsKind external_kind = GetNextTransitionElementsKind(elements_kind);
1351 *external_map = Map::AsElementsKind(initial_map, external_kind); 1351 *external_map = Map::AsElementsKind(initial_map, external_kind);
1352 } 1352 }
1353 1353
1354 1354
1355 void Genesis::InitializeExperimentalGlobal() { 1355 void Genesis::InitializeExperimentalGlobal() {
1356 // TODO(mstarzinger): Move this into Genesis::InitializeGlobal once we no 1356 // TODO(mstarzinger): Move this into Genesis::InitializeGlobal once we no
1357 // longer need to live behind flags, so functions get added to the snapshot. 1357 // longer need to live behind flags, so functions get added to the snapshot.
1358 Handle<JSObject> builtins(native_context()->builtins());
1358 1359
1359 if (FLAG_harmony_generators) { 1360 if (FLAG_harmony_generators) {
1360 // Create generator meta-objects and install them on the builtins object. 1361 // Create generator meta-objects and install them on the builtins object.
1361 Handle<JSObject> builtins(native_context()->builtins());
1362 Handle<JSObject> generator_object_prototype = 1362 Handle<JSObject> generator_object_prototype =
1363 factory()->NewJSObject(isolate()->object_function(), TENURED); 1363 factory()->NewJSObject(isolate()->object_function(), TENURED);
1364 Handle<JSFunction> generator_function_prototype = InstallFunction( 1364 Handle<JSFunction> generator_function_prototype = InstallFunction(
1365 builtins, "GeneratorFunctionPrototype", JS_FUNCTION_TYPE, 1365 builtins, "GeneratorFunctionPrototype", JS_FUNCTION_TYPE,
1366 JSFunction::kHeaderSize, generator_object_prototype, 1366 JSFunction::kHeaderSize, generator_object_prototype,
1367 Builtins::kIllegal); 1367 Builtins::kIllegal);
1368 InstallFunction(builtins, "GeneratorFunction", 1368 InstallFunction(builtins, "GeneratorFunction",
1369 JS_FUNCTION_TYPE, JSFunction::kSize, 1369 JS_FUNCTION_TYPE, JSFunction::kSize,
1370 generator_function_prototype, Builtins::kIllegal); 1370 generator_function_prototype, Builtins::kIllegal);
1371 1371
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 *strict_generator_function_map); 1410 *strict_generator_function_map);
1411 1411
1412 Handle<JSFunction> object_function(native_context()->object_function()); 1412 Handle<JSFunction> object_function(native_context()->object_function());
1413 Handle<Map> generator_object_prototype_map = Map::Create( 1413 Handle<Map> generator_object_prototype_map = Map::Create(
1414 object_function, 0); 1414 object_function, 0);
1415 generator_object_prototype_map->set_prototype( 1415 generator_object_prototype_map->set_prototype(
1416 *generator_object_prototype); 1416 *generator_object_prototype);
1417 native_context()->set_generator_object_prototype_map( 1417 native_context()->set_generator_object_prototype_map(
1418 *generator_object_prototype_map); 1418 *generator_object_prototype_map);
1419 } 1419 }
1420 Handle<HeapObject> flag(
1421 FLAG_harmony_regexps ? heap()->true_value() : heap()->false_value());
1422 PropertyAttributes attributes =
1423 static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
1424 Runtime::DefineObjectProperty(builtins, factory()->harmony_regexps_string(),
1425 flag, attributes).Assert();
1420 } 1426 }
1421 1427
1422 1428
1423 bool Genesis::CompileBuiltin(Isolate* isolate, int index) { 1429 bool Genesis::CompileBuiltin(Isolate* isolate, int index) {
1424 Vector<const char> name = Natives::GetScriptName(index); 1430 Vector<const char> name = Natives::GetScriptName(index);
1425 Handle<String> source_code = 1431 Handle<String> source_code =
1426 isolate->bootstrapper()->NativesSourceLookup(index); 1432 isolate->bootstrapper()->NativesSourceLookup(index);
1427 return CompileNative(isolate, name, source_code); 1433 return CompileNative(isolate, name, source_code);
1428 } 1434 }
1429 1435
(...skipping 1295 matching lines...) Expand 10 before | Expand all | Expand 10 after
2725 return from + sizeof(NestingCounterType); 2731 return from + sizeof(NestingCounterType);
2726 } 2732 }
2727 2733
2728 2734
2729 // Called when the top-level V8 mutex is destroyed. 2735 // Called when the top-level V8 mutex is destroyed.
2730 void Bootstrapper::FreeThreadResources() { 2736 void Bootstrapper::FreeThreadResources() {
2731 DCHECK(!IsActive()); 2737 DCHECK(!IsActive());
2732 } 2738 }
2733 2739
2734 } } // namespace v8::internal 2740 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/compilation-cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698