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

Side by Side Diff: src/bootstrapper.cc

Issue 394833002: Ship ES6 Math functions. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 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/flag-definitions.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/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 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 // passed through the API. The global from the snapshot is detached from the 195 // passed through the API. The global from the snapshot is detached from the
196 // other objects in the snapshot. 196 // other objects in the snapshot.
197 void HookUpGlobalObject(Handle<GlobalObject> global_object); 197 void HookUpGlobalObject(Handle<GlobalObject> global_object);
198 // New context initialization. Used for creating a context from scratch. 198 // New context initialization. Used for creating a context from scratch.
199 void InitializeGlobal(Handle<GlobalObject> global_object, 199 void InitializeGlobal(Handle<GlobalObject> global_object,
200 Handle<JSFunction> empty_function); 200 Handle<JSFunction> empty_function);
201 void InitializeExperimentalGlobal(); 201 void InitializeExperimentalGlobal();
202 // Installs the contents of the native .js files on the global objects. 202 // Installs the contents of the native .js files on the global objects.
203 // Used for creating a context from scratch. 203 // Used for creating a context from scratch.
204 void InstallNativeFunctions(); 204 void InstallNativeFunctions();
205 void InstallExperimentalBuiltinFunctionIds();
206 void InstallExperimentalNativeFunctions(); 205 void InstallExperimentalNativeFunctions();
207 Handle<JSFunction> InstallInternalArray(Handle<JSBuiltinsObject> builtins, 206 Handle<JSFunction> InstallInternalArray(Handle<JSBuiltinsObject> builtins,
208 const char* name, 207 const char* name,
209 ElementsKind elements_kind); 208 ElementsKind elements_kind);
210 bool InstallNatives(); 209 bool InstallNatives();
211 210
212 void InstallTypedArray( 211 void InstallTypedArray(
213 const char* name, 212 const char* name,
214 ElementsKind elements_kind, 213 ElementsKind elements_kind,
215 Handle<JSFunction>* fun, 214 Handle<JSFunction>* fun,
(...skipping 1800 matching lines...) Expand 10 before | Expand all | Expand 10 after
2016 i++) { 2015 i++) {
2017 INSTALL_EXPERIMENTAL_NATIVE(i, symbols, "symbol.js") 2016 INSTALL_EXPERIMENTAL_NATIVE(i, symbols, "symbol.js")
2018 INSTALL_EXPERIMENTAL_NATIVE(i, proxies, "proxy.js") 2017 INSTALL_EXPERIMENTAL_NATIVE(i, proxies, "proxy.js")
2019 INSTALL_EXPERIMENTAL_NATIVE(i, collections, "collection.js") 2018 INSTALL_EXPERIMENTAL_NATIVE(i, collections, "collection.js")
2020 INSTALL_EXPERIMENTAL_NATIVE(i, collections, "collection-iterator.js") 2019 INSTALL_EXPERIMENTAL_NATIVE(i, collections, "collection-iterator.js")
2021 INSTALL_EXPERIMENTAL_NATIVE(i, generators, "generator.js") 2020 INSTALL_EXPERIMENTAL_NATIVE(i, generators, "generator.js")
2022 INSTALL_EXPERIMENTAL_NATIVE(i, iteration, "array-iterator.js") 2021 INSTALL_EXPERIMENTAL_NATIVE(i, iteration, "array-iterator.js")
2023 INSTALL_EXPERIMENTAL_NATIVE(i, iteration, "string-iterator.js") 2022 INSTALL_EXPERIMENTAL_NATIVE(i, iteration, "string-iterator.js")
2024 INSTALL_EXPERIMENTAL_NATIVE(i, strings, "harmony-string.js") 2023 INSTALL_EXPERIMENTAL_NATIVE(i, strings, "harmony-string.js")
2025 INSTALL_EXPERIMENTAL_NATIVE(i, arrays, "harmony-array.js") 2024 INSTALL_EXPERIMENTAL_NATIVE(i, arrays, "harmony-array.js")
2026 INSTALL_EXPERIMENTAL_NATIVE(i, maths, "harmony-math.js")
2027 } 2025 }
2028 2026
2029 InstallExperimentalNativeFunctions(); 2027 InstallExperimentalNativeFunctions();
2030 InstallExperimentalBuiltinFunctionIds();
2031 return true; 2028 return true;
2032 } 2029 }
2033 2030
2034 2031
2035 static Handle<JSObject> ResolveBuiltinIdHolder( 2032 static Handle<JSObject> ResolveBuiltinIdHolder(
2036 Handle<Context> native_context, 2033 Handle<Context> native_context,
2037 const char* holder_expr) { 2034 const char* holder_expr) {
2038 Isolate* isolate = native_context->GetIsolate(); 2035 Isolate* isolate = native_context->GetIsolate();
2039 Factory* factory = isolate->factory(); 2036 Factory* factory = isolate->factory();
2040 Handle<GlobalObject> global(native_context->global_object()); 2037 Handle<GlobalObject> global(native_context->global_object());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2072 Handle<JSObject> holder = ResolveBuiltinIdHolder( \ 2069 Handle<JSObject> holder = ResolveBuiltinIdHolder( \
2073 native_context(), #holder_expr); \ 2070 native_context(), #holder_expr); \
2074 BuiltinFunctionId id = k##name; \ 2071 BuiltinFunctionId id = k##name; \
2075 InstallBuiltinFunctionId(holder, #fun_name, id); \ 2072 InstallBuiltinFunctionId(holder, #fun_name, id); \
2076 } 2073 }
2077 FUNCTIONS_WITH_ID_LIST(INSTALL_BUILTIN_ID) 2074 FUNCTIONS_WITH_ID_LIST(INSTALL_BUILTIN_ID)
2078 #undef INSTALL_BUILTIN_ID 2075 #undef INSTALL_BUILTIN_ID
2079 } 2076 }
2080 2077
2081 2078
2082 void Genesis::InstallExperimentalBuiltinFunctionIds() {
2083 HandleScope scope(isolate());
2084 if (FLAG_harmony_maths) {
2085 Handle<JSObject> holder = ResolveBuiltinIdHolder(native_context(), "Math");
2086 InstallBuiltinFunctionId(holder, "clz32", kMathClz32);
2087 }
2088 }
2089
2090
2091 // Do not forget to update macros.py with named constant 2079 // Do not forget to update macros.py with named constant
2092 // of cache id. 2080 // of cache id.
2093 #define JSFUNCTION_RESULT_CACHE_LIST(F) \ 2081 #define JSFUNCTION_RESULT_CACHE_LIST(F) \
2094 F(16, native_context()->regexp_function()) 2082 F(16, native_context()->regexp_function())
2095 2083
2096 2084
2097 static FixedArray* CreateCache(int size, Handle<JSFunction> factory_function) { 2085 static FixedArray* CreateCache(int size, Handle<JSFunction> factory_function) {
2098 Factory* factory = factory_function->GetIsolate()->factory(); 2086 Factory* factory = factory_function->GetIsolate()->factory();
2099 // Caches are supposed to live for a long time, allocate in old space. 2087 // Caches are supposed to live for a long time, allocate in old space.
2100 int array_size = JSFunctionResultCache::kEntriesIndex + 2 * size; 2088 int array_size = JSFunctionResultCache::kEntriesIndex + 2 * size;
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
2705 return from + sizeof(NestingCounterType); 2693 return from + sizeof(NestingCounterType);
2706 } 2694 }
2707 2695
2708 2696
2709 // Called when the top-level V8 mutex is destroyed. 2697 // Called when the top-level V8 mutex is destroyed.
2710 void Bootstrapper::FreeThreadResources() { 2698 void Bootstrapper::FreeThreadResources() {
2711 ASSERT(!IsActive()); 2699 ASSERT(!IsActive());
2712 } 2700 }
2713 2701
2714 } } // namespace v8::internal 2702 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/flag-definitions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698