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/base/ieee754.h" | 9 #include "src/base/ieee754.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 1567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1578 | 1578 |
1579 static const int num_fields = JSRegExp::kInObjectFieldCount; | 1579 static const int num_fields = JSRegExp::kInObjectFieldCount; |
1580 initial_map->SetInObjectProperties(num_fields); | 1580 initial_map->SetInObjectProperties(num_fields); |
1581 initial_map->set_unused_property_fields(0); | 1581 initial_map->set_unused_property_fields(0); |
1582 initial_map->set_instance_size(initial_map->instance_size() + | 1582 initial_map->set_instance_size(initial_map->instance_size() + |
1583 num_fields * kPointerSize); | 1583 num_fields * kPointerSize); |
1584 } | 1584 } |
1585 | 1585 |
1586 { // -- E r r o r | 1586 { // -- E r r o r |
1587 Handle<JSFunction> error_fun = InstallFunction( | 1587 Handle<JSFunction> error_fun = InstallFunction( |
1588 global, "Error", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1588 global, "Error", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1589 isolate->initial_object_prototype(), Builtins::kIllegal); | 1589 isolate->initial_object_prototype(), Builtins::kIllegal); |
1590 InstallWithIntrinsicDefaultProto(isolate, error_fun, | 1590 InstallWithIntrinsicDefaultProto(isolate, error_fun, |
1591 Context::ERROR_FUNCTION_INDEX); | 1591 Context::ERROR_FUNCTION_INDEX); |
1592 } | 1592 } |
1593 | 1593 |
1594 { // -- E v a l E r r o r | 1594 { // -- E v a l E r r o r |
1595 Handle<JSFunction> eval_error_fun = InstallFunction( | 1595 Handle<JSFunction> eval_error_fun = InstallFunction( |
1596 global, "EvalError", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1596 global, "EvalError", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1597 isolate->initial_object_prototype(), Builtins::kIllegal); | 1597 isolate->initial_object_prototype(), Builtins::kIllegal); |
1598 InstallWithIntrinsicDefaultProto(isolate, eval_error_fun, | 1598 InstallWithIntrinsicDefaultProto(isolate, eval_error_fun, |
1599 Context::EVAL_ERROR_FUNCTION_INDEX); | 1599 Context::EVAL_ERROR_FUNCTION_INDEX); |
1600 } | 1600 } |
1601 | 1601 |
1602 { // -- R a n g e E r r o r | 1602 { // -- R a n g e E r r o r |
1603 Handle<JSFunction> range_error_fun = InstallFunction( | 1603 Handle<JSFunction> range_error_fun = InstallFunction( |
1604 global, "RangeError", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1604 global, "RangeError", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1605 isolate->initial_object_prototype(), Builtins::kIllegal); | 1605 isolate->initial_object_prototype(), Builtins::kIllegal); |
1606 InstallWithIntrinsicDefaultProto(isolate, range_error_fun, | 1606 InstallWithIntrinsicDefaultProto(isolate, range_error_fun, |
1607 Context::RANGE_ERROR_FUNCTION_INDEX); | 1607 Context::RANGE_ERROR_FUNCTION_INDEX); |
1608 } | 1608 } |
1609 | 1609 |
1610 { // -- R e f e r e n c e E r r o r | 1610 { // -- R e f e r e n c e E r r o r |
1611 Handle<JSFunction> reference_error_fun = InstallFunction( | 1611 Handle<JSFunction> reference_error_fun = InstallFunction( |
1612 global, "ReferenceError", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1612 global, "ReferenceError", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1613 isolate->initial_object_prototype(), Builtins::kIllegal); | 1613 isolate->initial_object_prototype(), Builtins::kIllegal); |
1614 InstallWithIntrinsicDefaultProto(isolate, reference_error_fun, | 1614 InstallWithIntrinsicDefaultProto(isolate, reference_error_fun, |
1615 Context::REFERENCE_ERROR_FUNCTION_INDEX); | 1615 Context::REFERENCE_ERROR_FUNCTION_INDEX); |
1616 } | 1616 } |
1617 | 1617 |
1618 { // -- S y n t a x E r r o r | 1618 { // -- S y n t a x E r r o r |
1619 Handle<JSFunction> syntax_error_fun = InstallFunction( | 1619 Handle<JSFunction> syntax_error_fun = InstallFunction( |
1620 global, "SyntaxError", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1620 global, "SyntaxError", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1621 isolate->initial_object_prototype(), Builtins::kIllegal); | 1621 isolate->initial_object_prototype(), Builtins::kIllegal); |
1622 InstallWithIntrinsicDefaultProto(isolate, syntax_error_fun, | 1622 InstallWithIntrinsicDefaultProto(isolate, syntax_error_fun, |
1623 Context::SYNTAX_ERROR_FUNCTION_INDEX); | 1623 Context::SYNTAX_ERROR_FUNCTION_INDEX); |
1624 } | 1624 } |
1625 | 1625 |
1626 { // -- T y p e E r r o r | 1626 { // -- T y p e E r r o r |
1627 Handle<JSFunction> type_error_fun = InstallFunction( | 1627 Handle<JSFunction> type_error_fun = InstallFunction( |
1628 global, "TypeError", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1628 global, "TypeError", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1629 isolate->initial_object_prototype(), Builtins::kIllegal); | 1629 isolate->initial_object_prototype(), Builtins::kIllegal); |
1630 InstallWithIntrinsicDefaultProto(isolate, type_error_fun, | 1630 InstallWithIntrinsicDefaultProto(isolate, type_error_fun, |
1631 Context::TYPE_ERROR_FUNCTION_INDEX); | 1631 Context::TYPE_ERROR_FUNCTION_INDEX); |
1632 } | 1632 } |
1633 | 1633 |
1634 { // -- U R I E r r o r | 1634 { // -- U R I E r r o r |
1635 Handle<JSFunction> uri_error_fun = InstallFunction( | 1635 Handle<JSFunction> uri_error_fun = InstallFunction( |
1636 global, "URIError", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 1636 global, "URIError", JS_ERROR_TYPE, JSObject::kHeaderSize, |
1637 isolate->initial_object_prototype(), Builtins::kIllegal); | 1637 isolate->initial_object_prototype(), Builtins::kIllegal); |
1638 InstallWithIntrinsicDefaultProto(isolate, uri_error_fun, | 1638 InstallWithIntrinsicDefaultProto(isolate, uri_error_fun, |
1639 Context::URI_ERROR_FUNCTION_INDEX); | 1639 Context::URI_ERROR_FUNCTION_INDEX); |
1640 } | 1640 } |
1641 | 1641 |
1642 // Initialize the embedder data slot. | 1642 // Initialize the embedder data slot. |
1643 Handle<FixedArray> embedder_data = factory->NewFixedArray(3); | 1643 Handle<FixedArray> embedder_data = factory->NewFixedArray(3); |
1644 native_context()->set_embedder_data(*embedder_data); | 1644 native_context()->set_embedder_data(*embedder_data); |
1645 | 1645 |
1646 if (context_type == THIN_CONTEXT) return; | 1646 if (context_type == THIN_CONTEXT) return; |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1973 // Make sure we can recognize argument objects at runtime. | 1973 // Make sure we can recognize argument objects at runtime. |
1974 // This is done by introducing an anonymous function with | 1974 // This is done by introducing an anonymous function with |
1975 // class_name equals 'Arguments'. | 1975 // class_name equals 'Arguments'. |
1976 Handle<String> arguments_string = factory->Arguments_string(); | 1976 Handle<String> arguments_string = factory->Arguments_string(); |
1977 Handle<Code> code = isolate->builtins()->Illegal(); | 1977 Handle<Code> code = isolate->builtins()->Illegal(); |
1978 Handle<JSFunction> function = factory->NewFunctionWithoutPrototype( | 1978 Handle<JSFunction> function = factory->NewFunctionWithoutPrototype( |
1979 arguments_string, code); | 1979 arguments_string, code); |
1980 function->shared()->set_instance_class_name(*arguments_string); | 1980 function->shared()->set_instance_class_name(*arguments_string); |
1981 | 1981 |
1982 Handle<Map> map = factory->NewMap( | 1982 Handle<Map> map = factory->NewMap( |
1983 JS_OBJECT_TYPE, JSSloppyArgumentsObject::kSize, FAST_ELEMENTS); | 1983 JS_ARGUMENTS_TYPE, JSSloppyArgumentsObject::kSize, FAST_ELEMENTS); |
1984 // Create the descriptor array for the arguments object. | 1984 // Create the descriptor array for the arguments object. |
1985 Map::EnsureDescriptorSlack(map, 2); | 1985 Map::EnsureDescriptorSlack(map, 2); |
1986 | 1986 |
1987 { // length | 1987 { // length |
1988 DataDescriptor d(factory->length_string(), | 1988 DataDescriptor d(factory->length_string(), |
1989 JSSloppyArgumentsObject::kLengthIndex, DONT_ENUM, | 1989 JSSloppyArgumentsObject::kLengthIndex, DONT_ENUM, |
1990 Representation::Tagged()); | 1990 Representation::Tagged()); |
1991 map->AppendDescriptor(&d); | 1991 map->AppendDescriptor(&d); |
1992 } | 1992 } |
1993 { // callee | 1993 { // callee |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2033 Handle<JSFunction> poison = GetStrictArgumentsPoisonFunction(); | 2033 Handle<JSFunction> poison = GetStrictArgumentsPoisonFunction(); |
2034 | 2034 |
2035 // Install the ThrowTypeError functions. | 2035 // Install the ThrowTypeError functions. |
2036 callee->set_getter(*poison); | 2036 callee->set_getter(*poison); |
2037 callee->set_setter(*poison); | 2037 callee->set_setter(*poison); |
2038 caller->set_getter(*poison); | 2038 caller->set_getter(*poison); |
2039 caller->set_setter(*poison); | 2039 caller->set_setter(*poison); |
2040 | 2040 |
2041 // Create the map. Allocate one in-object field for length. | 2041 // Create the map. Allocate one in-object field for length. |
2042 Handle<Map> map = factory->NewMap( | 2042 Handle<Map> map = factory->NewMap( |
2043 JS_OBJECT_TYPE, JSStrictArgumentsObject::kSize, FAST_ELEMENTS); | 2043 JS_ARGUMENTS_TYPE, JSStrictArgumentsObject::kSize, FAST_ELEMENTS); |
2044 // Create the descriptor array for the arguments object. | 2044 // Create the descriptor array for the arguments object. |
2045 Map::EnsureDescriptorSlack(map, 3); | 2045 Map::EnsureDescriptorSlack(map, 3); |
2046 | 2046 |
2047 { // length | 2047 { // length |
2048 DataDescriptor d(factory->length_string(), | 2048 DataDescriptor d(factory->length_string(), |
2049 JSStrictArgumentsObject::kLengthIndex, DONT_ENUM, | 2049 JSStrictArgumentsObject::kLengthIndex, DONT_ENUM, |
2050 Representation::Tagged()); | 2050 Representation::Tagged()); |
2051 map->AppendDescriptor(&d); | 2051 map->AppendDescriptor(&d); |
2052 } | 2052 } |
2053 { // callee | 2053 { // callee |
(...skipping 1925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3979 } | 3979 } |
3980 | 3980 |
3981 | 3981 |
3982 // Called when the top-level V8 mutex is destroyed. | 3982 // Called when the top-level V8 mutex is destroyed. |
3983 void Bootstrapper::FreeThreadResources() { | 3983 void Bootstrapper::FreeThreadResources() { |
3984 DCHECK(!IsActive()); | 3984 DCHECK(!IsActive()); |
3985 } | 3985 } |
3986 | 3986 |
3987 } // namespace internal | 3987 } // namespace internal |
3988 } // namespace v8 | 3988 } // namespace v8 |
OLD | NEW |