| OLD | NEW |
| 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 1688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1699 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_sloppy) | 1699 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_sloppy) |
| 1700 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_unicode) | 1700 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_unicode) |
| 1701 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_computed_property_names) | 1701 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_computed_property_names) |
| 1702 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_rest_parameters) | 1702 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_rest_parameters) |
| 1703 | 1703 |
| 1704 void Genesis::InitializeGlobal_harmony_regexps() { | 1704 void Genesis::InitializeGlobal_harmony_regexps() { |
| 1705 Handle<JSObject> builtins(native_context()->builtins()); | 1705 Handle<JSObject> builtins(native_context()->builtins()); |
| 1706 | 1706 |
| 1707 Handle<HeapObject> flag(FLAG_harmony_regexps ? heap()->true_value() | 1707 Handle<HeapObject> flag(FLAG_harmony_regexps ? heap()->true_value() |
| 1708 : heap()->false_value()); | 1708 : heap()->false_value()); |
| 1709 PropertyAttributes attributes = | 1709 Runtime::SetObjectProperty(isolate(), builtins, |
| 1710 static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY); | 1710 factory()->harmony_regexps_string(), flag, |
| 1711 Runtime::DefineObjectProperty(builtins, factory()->harmony_regexps_string(), | 1711 STRICT).Assert(); |
| 1712 flag, attributes).Assert(); | |
| 1713 } | 1712 } |
| 1714 | 1713 |
| 1715 | 1714 |
| 1716 void Genesis::InitializeGlobal_harmony_unicode_regexps() { | 1715 void Genesis::InitializeGlobal_harmony_unicode_regexps() { |
| 1717 Handle<JSObject> builtins(native_context()->builtins()); | 1716 Handle<JSObject> builtins(native_context()->builtins()); |
| 1718 | 1717 |
| 1719 Handle<HeapObject> flag(FLAG_harmony_unicode_regexps ? heap()->true_value() | 1718 Handle<HeapObject> flag(FLAG_harmony_unicode_regexps ? heap()->true_value() |
| 1720 : heap()->false_value()); | 1719 : heap()->false_value()); |
| 1721 PropertyAttributes attributes = | 1720 Runtime::SetObjectProperty(isolate(), builtins, |
| 1722 static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY); | 1721 factory()->harmony_unicode_regexps_string(), flag, |
| 1723 Runtime::DefineObjectProperty(builtins, | 1722 STRICT).Assert(); |
| 1724 factory()->harmony_unicode_regexps_string(), | |
| 1725 flag, attributes).Assert(); | |
| 1726 } | 1723 } |
| 1727 | 1724 |
| 1728 | 1725 |
| 1729 Handle<JSFunction> Genesis::InstallInternalArray( | 1726 Handle<JSFunction> Genesis::InstallInternalArray( |
| 1730 Handle<JSBuiltinsObject> builtins, | 1727 Handle<JSBuiltinsObject> builtins, |
| 1731 const char* name, | 1728 const char* name, |
| 1732 ElementsKind elements_kind) { | 1729 ElementsKind elements_kind) { |
| 1733 // --- I n t e r n a l A r r a y --- | 1730 // --- I n t e r n a l A r r a y --- |
| 1734 // An array constructor on the builtins object that works like | 1731 // An array constructor on the builtins object that works like |
| 1735 // the public Array constructor, except that its prototype | 1732 // the public Array constructor, except that its prototype |
| (...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2883 | 2880 |
| 2884 MakeFunctionInstancePrototypeWritable(); | 2881 MakeFunctionInstancePrototypeWritable(); |
| 2885 | 2882 |
| 2886 if (!ConfigureGlobalObjects(global_proxy_template)) return; | 2883 if (!ConfigureGlobalObjects(global_proxy_template)) return; |
| 2887 isolate->counters()->contexts_created_from_scratch()->Increment(); | 2884 isolate->counters()->contexts_created_from_scratch()->Increment(); |
| 2888 } | 2885 } |
| 2889 | 2886 |
| 2890 // Install experimental natives. Do not include them into the snapshot as we | 2887 // Install experimental natives. Do not include them into the snapshot as we |
| 2891 // should be able to turn them off at runtime. Re-installing them after | 2888 // should be able to turn them off at runtime. Re-installing them after |
| 2892 // they have already been deserialized would also fail. | 2889 // they have already been deserialized would also fail. |
| 2893 if (!isolate->serializer_enabled() && !InstallExperimentalNatives()) return; | 2890 if (!isolate->serializer_enabled()) { |
| 2894 | 2891 InitializeExperimentalGlobal(); |
| 2895 InitializeExperimentalGlobal(); | 2892 if (!InstallExperimentalNatives()) return; |
| 2893 } |
| 2896 | 2894 |
| 2897 // The serializer cannot serialize typed arrays. Reset those typed arrays | 2895 // The serializer cannot serialize typed arrays. Reset those typed arrays |
| 2898 // for each new context. | 2896 // for each new context. |
| 2899 InitializeBuiltinTypedArrays(); | 2897 InitializeBuiltinTypedArrays(); |
| 2900 | 2898 |
| 2901 result_ = native_context(); | 2899 result_ = native_context(); |
| 2902 } | 2900 } |
| 2903 | 2901 |
| 2904 | 2902 |
| 2905 // Support for thread preemption. | 2903 // Support for thread preemption. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2924 return from + sizeof(NestingCounterType); | 2922 return from + sizeof(NestingCounterType); |
| 2925 } | 2923 } |
| 2926 | 2924 |
| 2927 | 2925 |
| 2928 // Called when the top-level V8 mutex is destroyed. | 2926 // Called when the top-level V8 mutex is destroyed. |
| 2929 void Bootstrapper::FreeThreadResources() { | 2927 void Bootstrapper::FreeThreadResources() { |
| 2930 DCHECK(!IsActive()); | 2928 DCHECK(!IsActive()); |
| 2931 } | 2929 } |
| 2932 | 2930 |
| 2933 } } // namespace v8::internal | 2931 } } // namespace v8::internal |
| OLD | NEW |