| 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 1588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1599 } | 1599 } |
| 1600 | 1600 |
| 1601 { // -- A r r a y B u f f e r | 1601 { // -- A r r a y B u f f e r |
| 1602 Handle<JSFunction> array_buffer_fun = | 1602 Handle<JSFunction> array_buffer_fun = |
| 1603 InstallArrayBuffer(global, "ArrayBuffer"); | 1603 InstallArrayBuffer(global, "ArrayBuffer"); |
| 1604 InstallWithIntrinsicDefaultProto(isolate, array_buffer_fun, | 1604 InstallWithIntrinsicDefaultProto(isolate, array_buffer_fun, |
| 1605 Context::ARRAY_BUFFER_FUN_INDEX); | 1605 Context::ARRAY_BUFFER_FUN_INDEX); |
| 1606 } | 1606 } |
| 1607 | 1607 |
| 1608 { // -- T y p e d A r r a y s | 1608 { // -- T y p e d A r r a y s |
| 1609 // Create the %TypedArrayPrototype% | |
| 1610 Handle<JSObject> typed_array_prototype = | |
| 1611 factory->NewJSObject(isolate->object_function(), TENURED); | |
| 1612 native_context()->set_typed_array_prototype(*typed_array_prototype); | |
| 1613 | |
| 1614 Handle<JSFunction> typed_array_fun = CreateFunction( | |
| 1615 isolate, factory->InternalizeUtf8String("TypedArray"), JS_OBJECT_TYPE, | |
| 1616 JSObject::kHeaderSize, typed_array_prototype, Builtins::kIllegal); | |
| 1617 InstallWithIntrinsicDefaultProto(isolate, typed_array_fun, | |
| 1618 Context::TYPED_ARRAY_FUN_INDEX); | |
| 1619 | |
| 1620 #define INSTALL_TYPED_ARRAY(Type, type, TYPE, ctype, size) \ | 1609 #define INSTALL_TYPED_ARRAY(Type, type, TYPE, ctype, size) \ |
| 1621 { \ | 1610 { \ |
| 1622 Handle<JSFunction> fun; \ | 1611 Handle<JSFunction> fun; \ |
| 1623 InstallTypedArray(#Type "Array", TYPE##_ELEMENTS, &fun); \ | 1612 InstallTypedArray(#Type "Array", TYPE##_ELEMENTS, &fun); \ |
| 1624 InstallWithIntrinsicDefaultProto(isolate, fun, \ | 1613 InstallWithIntrinsicDefaultProto(isolate, fun, \ |
| 1625 Context::TYPE##_ARRAY_FUN_INDEX); \ | 1614 Context::TYPE##_ARRAY_FUN_INDEX); \ |
| 1626 } | 1615 } |
| 1627 TYPED_ARRAYS(INSTALL_TYPED_ARRAY) | 1616 TYPED_ARRAYS(INSTALL_TYPED_ARRAY) |
| 1628 #undef INSTALL_TYPED_ARRAY | 1617 #undef INSTALL_TYPED_ARRAY |
| 1629 | 1618 |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1932 factory->empty_string(), code, JS_OBJECT_TYPE, JSObject::kHeaderSize); | 1921 factory->empty_string(), code, JS_OBJECT_TYPE, JSObject::kHeaderSize); |
| 1933 native_context()->set_call_as_constructor_delegate(*delegate); | 1922 native_context()->set_call_as_constructor_delegate(*delegate); |
| 1934 delegate->shared()->DontAdaptArguments(); | 1923 delegate->shared()->DontAdaptArguments(); |
| 1935 } | 1924 } |
| 1936 } // NOLINT(readability/fn_size) | 1925 } // NOLINT(readability/fn_size) |
| 1937 | 1926 |
| 1938 | 1927 |
| 1939 void Genesis::InstallTypedArray(const char* name, ElementsKind elements_kind, | 1928 void Genesis::InstallTypedArray(const char* name, ElementsKind elements_kind, |
| 1940 Handle<JSFunction>* fun) { | 1929 Handle<JSFunction>* fun) { |
| 1941 Handle<JSObject> global = Handle<JSObject>(native_context()->global_object()); | 1930 Handle<JSObject> global = Handle<JSObject>(native_context()->global_object()); |
| 1942 | 1931 Handle<JSFunction> result = InstallFunction( |
| 1943 Handle<JSObject> typed_array_prototype = | 1932 global, name, JS_TYPED_ARRAY_TYPE, JSTypedArray::kSize, |
| 1944 Handle<JSObject>(isolate()->typed_array_prototype()); | 1933 isolate()->initial_object_prototype(), Builtins::kIllegal); |
| 1945 Handle<JSFunction> typed_array_function = | |
| 1946 Handle<JSFunction>(isolate()->typed_array_function()); | |
| 1947 | |
| 1948 Handle<JSObject> prototype = | |
| 1949 factory()->NewJSObject(isolate()->object_function(), TENURED); | |
| 1950 Handle<JSFunction> result = | |
| 1951 InstallFunction(global, name, JS_TYPED_ARRAY_TYPE, JSTypedArray::kSize, | |
| 1952 prototype, Builtins::kIllegal); | |
| 1953 | 1934 |
| 1954 Handle<Map> initial_map = isolate()->factory()->NewMap( | 1935 Handle<Map> initial_map = isolate()->factory()->NewMap( |
| 1955 JS_TYPED_ARRAY_TYPE, | 1936 JS_TYPED_ARRAY_TYPE, |
| 1956 JSTypedArray::kSizeWithInternalFields, | 1937 JSTypedArray::kSizeWithInternalFields, |
| 1957 elements_kind); | 1938 elements_kind); |
| 1958 JSFunction::SetInitialMap(result, initial_map, | 1939 JSFunction::SetInitialMap(result, initial_map, |
| 1959 handle(initial_map->prototype(), isolate())); | 1940 handle(initial_map->prototype(), isolate())); |
| 1960 | |
| 1961 CHECK(JSObject::SetPrototype(result, typed_array_function, false, | |
| 1962 Object::DONT_THROW) | |
| 1963 .FromJust()); | |
| 1964 | |
| 1965 CHECK(JSObject::SetPrototype(prototype, typed_array_prototype, false, | |
| 1966 Object::DONT_THROW) | |
| 1967 .FromJust()); | |
| 1968 | |
| 1969 *fun = result; | 1941 *fun = result; |
| 1970 } | 1942 } |
| 1971 | 1943 |
| 1972 | 1944 |
| 1973 void Genesis::InitializeExperimentalGlobal() { | 1945 void Genesis::InitializeExperimentalGlobal() { |
| 1974 #define FEATURE_INITIALIZE_GLOBAL(id, descr) InitializeGlobal_##id(); | 1946 #define FEATURE_INITIALIZE_GLOBAL(id, descr) InitializeGlobal_##id(); |
| 1975 | 1947 |
| 1976 HARMONY_INPROGRESS(FEATURE_INITIALIZE_GLOBAL) | 1948 HARMONY_INPROGRESS(FEATURE_INITIALIZE_GLOBAL) |
| 1977 HARMONY_STAGED(FEATURE_INITIALIZE_GLOBAL) | 1949 HARMONY_STAGED(FEATURE_INITIALIZE_GLOBAL) |
| 1978 HARMONY_SHIPPING(FEATURE_INITIALIZE_GLOBAL) | 1950 HARMONY_SHIPPING(FEATURE_INITIALIZE_GLOBAL) |
| (...skipping 1749 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3728 } | 3700 } |
| 3729 | 3701 |
| 3730 | 3702 |
| 3731 // Called when the top-level V8 mutex is destroyed. | 3703 // Called when the top-level V8 mutex is destroyed. |
| 3732 void Bootstrapper::FreeThreadResources() { | 3704 void Bootstrapper::FreeThreadResources() { |
| 3733 DCHECK(!IsActive()); | 3705 DCHECK(!IsActive()); |
| 3734 } | 3706 } |
| 3735 | 3707 |
| 3736 } // namespace internal | 3708 } // namespace internal |
| 3737 } // namespace v8 | 3709 } // namespace v8 |
| OLD | NEW |