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/allocation-site-scopes.h" | 7 #include "src/allocation-site-scopes.h" |
8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/conversions.h" | 10 #include "src/conversions.h" |
(...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
866 | 866 |
867 Handle<ByteArray> Factory::NewByteArray(int length, PretenureFlag pretenure) { | 867 Handle<ByteArray> Factory::NewByteArray(int length, PretenureFlag pretenure) { |
868 DCHECK(0 <= length); | 868 DCHECK(0 <= length); |
869 CALL_HEAP_FUNCTION( | 869 CALL_HEAP_FUNCTION( |
870 isolate(), | 870 isolate(), |
871 isolate()->heap()->AllocateByteArray(length, pretenure), | 871 isolate()->heap()->AllocateByteArray(length, pretenure), |
872 ByteArray); | 872 ByteArray); |
873 } | 873 } |
874 | 874 |
875 | 875 |
| 876 Handle<BytecodeArray> Factory::NewBytecodeArray(int length, |
| 877 const byte* raw_bytecodes) { |
| 878 DCHECK(0 <= length); |
| 879 CALL_HEAP_FUNCTION(isolate(), isolate()->heap()->AllocateBytecodeArray( |
| 880 length, raw_bytecodes, TENURED), |
| 881 BytecodeArray); |
| 882 } |
| 883 |
| 884 |
876 Handle<ExternalArray> Factory::NewExternalArray(int length, | 885 Handle<ExternalArray> Factory::NewExternalArray(int length, |
877 ExternalArrayType array_type, | 886 ExternalArrayType array_type, |
878 void* external_pointer, | 887 void* external_pointer, |
879 PretenureFlag pretenure) { | 888 PretenureFlag pretenure) { |
880 DCHECK(0 <= length && length <= Smi::kMaxValue); | 889 DCHECK(0 <= length && length <= Smi::kMaxValue); |
881 CALL_HEAP_FUNCTION( | 890 CALL_HEAP_FUNCTION( |
882 isolate(), | 891 isolate(), |
883 isolate()->heap()->AllocateExternalArray(length, | 892 isolate()->heap()->AllocateExternalArray(length, |
884 array_type, | 893 array_type, |
885 external_pointer, | 894 external_pointer, |
(...skipping 1283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2169 share->set_construct_stub(construct_stub); | 2178 share->set_construct_stub(construct_stub); |
2170 share->set_instance_class_name(*Object_string()); | 2179 share->set_instance_class_name(*Object_string()); |
2171 share->set_function_data(*undefined_value(), SKIP_WRITE_BARRIER); | 2180 share->set_function_data(*undefined_value(), SKIP_WRITE_BARRIER); |
2172 share->set_script(*undefined_value(), SKIP_WRITE_BARRIER); | 2181 share->set_script(*undefined_value(), SKIP_WRITE_BARRIER); |
2173 share->set_debug_info(*undefined_value(), SKIP_WRITE_BARRIER); | 2182 share->set_debug_info(*undefined_value(), SKIP_WRITE_BARRIER); |
2174 share->set_inferred_name(*empty_string(), SKIP_WRITE_BARRIER); | 2183 share->set_inferred_name(*empty_string(), SKIP_WRITE_BARRIER); |
2175 FeedbackVectorSpec empty_spec(0); | 2184 FeedbackVectorSpec empty_spec(0); |
2176 Handle<TypeFeedbackVector> feedback_vector = | 2185 Handle<TypeFeedbackVector> feedback_vector = |
2177 NewTypeFeedbackVector(&empty_spec); | 2186 NewTypeFeedbackVector(&empty_spec); |
2178 share->set_feedback_vector(*feedback_vector, SKIP_WRITE_BARRIER); | 2187 share->set_feedback_vector(*feedback_vector, SKIP_WRITE_BARRIER); |
| 2188 share->set_bytecode_array(*empty_bytecode_array(), SKIP_WRITE_BARRIER); |
2179 #if TRACE_MAPS | 2189 #if TRACE_MAPS |
2180 share->set_unique_id(isolate()->GetNextUniqueSharedFunctionInfoId()); | 2190 share->set_unique_id(isolate()->GetNextUniqueSharedFunctionInfoId()); |
2181 #endif | 2191 #endif |
2182 share->set_profiler_ticks(0); | 2192 share->set_profiler_ticks(0); |
2183 share->set_ast_node_count(0); | 2193 share->set_ast_node_count(0); |
2184 share->set_counters(0); | 2194 share->set_counters(0); |
2185 | 2195 |
2186 // Set integer fields (smi or int, depending on the architecture). | 2196 // Set integer fields (smi or int, depending on the architecture). |
2187 share->set_length(0); | 2197 share->set_length(0); |
2188 share->set_internal_formal_parameter_count(0); | 2198 share->set_internal_formal_parameter_count(0); |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2427 } | 2437 } |
2428 | 2438 |
2429 | 2439 |
2430 Handle<Object> Factory::ToBoolean(bool value) { | 2440 Handle<Object> Factory::ToBoolean(bool value) { |
2431 return value ? true_value() : false_value(); | 2441 return value ? true_value() : false_value(); |
2432 } | 2442 } |
2433 | 2443 |
2434 | 2444 |
2435 } // namespace internal | 2445 } // namespace internal |
2436 } // namespace v8 | 2446 } // namespace v8 |
OLD | NEW |