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/factory.h" | 5 #include "src/factory.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 1717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 } else { | 1728 } else { |
1729 DCHECK(mode == INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE); | 1729 DCHECK(mode == INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE); |
1730 elms = NewFixedArrayWithHoles(capacity); | 1730 elms = NewFixedArrayWithHoles(capacity); |
1731 } | 1731 } |
1732 } | 1732 } |
1733 | 1733 |
1734 array->set_elements(*elms); | 1734 array->set_elements(*elms); |
1735 array->set_length(Smi::FromInt(length)); | 1735 array->set_length(Smi::FromInt(length)); |
1736 } | 1736 } |
1737 | 1737 |
| 1738 Handle<JSModuleNamespace> Factory::NewJSModuleNamespace() { |
| 1739 Handle<Map> map = isolate()->js_module_namespace_map(); |
| 1740 return Handle<JSModuleNamespace>::cast(NewJSObjectFromMap(map)); |
| 1741 } |
1738 | 1742 |
1739 Handle<JSGeneratorObject> Factory::NewJSGeneratorObject( | 1743 Handle<JSGeneratorObject> Factory::NewJSGeneratorObject( |
1740 Handle<JSFunction> function) { | 1744 Handle<JSFunction> function) { |
1741 DCHECK(IsResumableFunction(function->shared()->kind())); | 1745 DCHECK(IsResumableFunction(function->shared()->kind())); |
1742 JSFunction::EnsureHasInitialMap(function); | 1746 JSFunction::EnsureHasInitialMap(function); |
1743 Handle<Map> map(function->initial_map()); | 1747 Handle<Map> map(function->initial_map()); |
1744 DCHECK_EQ(JS_GENERATOR_OBJECT_TYPE, map->instance_type()); | 1748 DCHECK_EQ(JS_GENERATOR_OBJECT_TYPE, map->instance_type()); |
1745 CALL_HEAP_FUNCTION( | 1749 CALL_HEAP_FUNCTION( |
1746 isolate(), | 1750 isolate(), |
1747 isolate()->heap()->AllocateJSObjectFromMap(*map), | 1751 isolate()->heap()->AllocateJSObjectFromMap(*map), |
(...skipping 10 matching lines...) Expand all Loading... |
1758 requested_modules_length > 0 ? NewFixedArray(requested_modules_length) | 1762 requested_modules_length > 0 ? NewFixedArray(requested_modules_length) |
1759 : empty_fixed_array(); | 1763 : empty_fixed_array(); |
1760 | 1764 |
1761 // To make it easy to hash Modules, we set a new symbol as the name of | 1765 // To make it easy to hash Modules, we set a new symbol as the name of |
1762 // SharedFunctionInfo representing this Module. | 1766 // SharedFunctionInfo representing this Module. |
1763 Handle<Symbol> name_symbol = NewSymbol(); | 1767 Handle<Symbol> name_symbol = NewSymbol(); |
1764 code->set_name(*name_symbol); | 1768 code->set_name(*name_symbol); |
1765 | 1769 |
1766 Handle<Module> module = Handle<Module>::cast(NewStruct(MODULE_TYPE)); | 1770 Handle<Module> module = Handle<Module>::cast(NewStruct(MODULE_TYPE)); |
1767 module->set_code(*code); | 1771 module->set_code(*code); |
| 1772 module->set_embedder_data(isolate()->heap()->undefined_value()); |
1768 module->set_exports(*exports); | 1773 module->set_exports(*exports); |
| 1774 module->set_flags(0); |
| 1775 module->set_module_namespace(isolate()->heap()->undefined_value()); |
1769 module->set_requested_modules(*requested_modules); | 1776 module->set_requested_modules(*requested_modules); |
1770 module->set_flags(0); | |
1771 module->set_embedder_data(isolate()->heap()->undefined_value()); | |
1772 return module; | 1777 return module; |
1773 } | 1778 } |
1774 | 1779 |
1775 Handle<JSArrayBuffer> Factory::NewJSArrayBuffer(SharedFlag shared, | 1780 Handle<JSArrayBuffer> Factory::NewJSArrayBuffer(SharedFlag shared, |
1776 PretenureFlag pretenure) { | 1781 PretenureFlag pretenure) { |
1777 Handle<JSFunction> array_buffer_fun( | 1782 Handle<JSFunction> array_buffer_fun( |
1778 shared == SharedFlag::kShared | 1783 shared == SharedFlag::kShared |
1779 ? isolate()->native_context()->shared_array_buffer_fun() | 1784 ? isolate()->native_context()->shared_array_buffer_fun() |
1780 : isolate()->native_context()->array_buffer_fun()); | 1785 : isolate()->native_context()->array_buffer_fun()); |
1781 CALL_HEAP_FUNCTION(isolate(), isolate()->heap()->AllocateJSObject( | 1786 CALL_HEAP_FUNCTION(isolate(), isolate()->heap()->AllocateJSObject( |
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2603 Handle<AccessorInfo> prototype = | 2608 Handle<AccessorInfo> prototype = |
2604 Accessors::FunctionPrototypeInfo(isolate(), attribs); | 2609 Accessors::FunctionPrototypeInfo(isolate(), attribs); |
2605 AccessorConstantDescriptor d(Handle<Name>(Name::cast(prototype->name())), | 2610 AccessorConstantDescriptor d(Handle<Name>(Name::cast(prototype->name())), |
2606 prototype, attribs); | 2611 prototype, attribs); |
2607 map->AppendDescriptor(&d); | 2612 map->AppendDescriptor(&d); |
2608 } | 2613 } |
2609 } | 2614 } |
2610 | 2615 |
2611 } // namespace internal | 2616 } // namespace internal |
2612 } // namespace v8 | 2617 } // namespace v8 |
OLD | NEW |