diff options
Diffstat (limited to 'deps/v8/src/factory.h')
-rw-r--r-- | deps/v8/src/factory.h | 101 |
1 files changed, 45 insertions, 56 deletions
diff --git a/deps/v8/src/factory.h b/deps/v8/src/factory.h index 2c3d687786..b7602e023b 100644 --- a/deps/v8/src/factory.h +++ b/deps/v8/src/factory.h @@ -11,7 +11,7 @@ namespace v8 { namespace internal { -class FeedbackVectorSpec; +class StaticFeedbackVectorSpec; // Interface for handle based allocation. class Factory final { @@ -54,6 +54,11 @@ class Factory final { // Create a new PrototypeInfo struct. Handle<PrototypeInfo> NewPrototypeInfo(); + // Create a new SloppyBlockWithEvalContextExtension struct. + Handle<SloppyBlockWithEvalContextExtension> + NewSloppyBlockWithEvalContextExtension(Handle<ScopeInfo> scope_info, + Handle<JSObject> extension); + // Create a pre-tenured empty AccessorPair. Handle<AccessorPair> NewAccessorPair(); @@ -151,24 +156,21 @@ class Factory final { // Allocates an internalized string in old space based on the character // stream. - MUST_USE_RESULT Handle<String> NewInternalizedStringFromUtf8( - Vector<const char> str, - int chars, - uint32_t hash_field); + Handle<String> NewInternalizedStringFromUtf8(Vector<const char> str, + int chars, uint32_t hash_field); - MUST_USE_RESULT Handle<String> NewOneByteInternalizedString( - Vector<const uint8_t> str, uint32_t hash_field); + Handle<String> NewOneByteInternalizedString(Vector<const uint8_t> str, + uint32_t hash_field); - MUST_USE_RESULT Handle<String> NewOneByteInternalizedSubString( + Handle<String> NewOneByteInternalizedSubString( Handle<SeqOneByteString> string, int offset, int length, uint32_t hash_field); - MUST_USE_RESULT Handle<String> NewTwoByteInternalizedString( - Vector<const uc16> str, - uint32_t hash_field); + Handle<String> NewTwoByteInternalizedString(Vector<const uc16> str, + uint32_t hash_field); - MUST_USE_RESULT Handle<String> NewInternalizedStringImpl( - Handle<String> string, int chars, uint32_t hash_field); + Handle<String> NewInternalizedStringImpl(Handle<String> string, int chars, + uint32_t hash_field); // Compute the matching internalized string map for a string if possible. // Empty handle is returned if string is in new space or not flattened. @@ -192,14 +194,6 @@ class Factory final { // Create a new cons string object which consists of a pair of strings. MUST_USE_RESULT MaybeHandle<String> NewConsString(Handle<String> left, Handle<String> right); - MUST_USE_RESULT MaybeHandle<String> NewOneByteConsString( - int length, Handle<String> left, Handle<String> right); - MUST_USE_RESULT MaybeHandle<String> NewTwoByteConsString( - int length, Handle<String> left, Handle<String> right); - MUST_USE_RESULT MaybeHandle<String> NewRawConsString(Handle<Map> map, - int length, - Handle<String> left, - Handle<String> right); // Create a new string object which holds a proper substring of a string. Handle<String> NewProperSubString(Handle<String> str, @@ -283,7 +277,8 @@ class Factory final { PretenureFlag pretenure = NOT_TENURED); Handle<BytecodeArray> NewBytecodeArray(int length, const byte* raw_bytecodes, - int frame_size); + int frame_size, int parameter_count, + Handle<FixedArray> constant_pool); Handle<FixedTypedArrayBase> NewFixedTypedArrayWithExternalPointer( int length, ExternalArrayType array_type, void* external_pointer, @@ -443,20 +438,25 @@ class Factory final { Handle<JSGeneratorObject> NewJSGeneratorObject(Handle<JSFunction> function); Handle<JSArrayBuffer> NewJSArrayBuffer( - SharedFlag shared = SharedFlag::kNotShared); + SharedFlag shared = SharedFlag::kNotShared, + PretenureFlag pretenure = NOT_TENURED); - Handle<JSTypedArray> NewJSTypedArray(ExternalArrayType type); + Handle<JSTypedArray> NewJSTypedArray(ExternalArrayType type, + PretenureFlag pretenure = NOT_TENURED); - Handle<JSTypedArray> NewJSTypedArray(ElementsKind elements_kind); + Handle<JSTypedArray> NewJSTypedArray(ElementsKind elements_kind, + PretenureFlag pretenure = NOT_TENURED); // Creates a new JSTypedArray with the specified buffer. Handle<JSTypedArray> NewJSTypedArray(ExternalArrayType type, Handle<JSArrayBuffer> buffer, - size_t byte_offset, size_t length); + size_t byte_offset, size_t length, + PretenureFlag pretenure = NOT_TENURED); // Creates a new on-heap JSTypedArray. Handle<JSTypedArray> NewJSTypedArray(ElementsKind elements_kind, - size_t number_of_elements); + size_t number_of_elements, + PretenureFlag pretenure = NOT_TENURED); Handle<JSDataView> NewJSDataView(); Handle<JSDataView> NewJSDataView(Handle<JSArrayBuffer> buffer, @@ -469,12 +469,17 @@ class Factory final { Handle<JSMapIterator> NewJSMapIterator(); Handle<JSSetIterator> NewJSSetIterator(); + // Creates a new JSIteratorResult object with the arguments {value} and + // {done}. Implemented according to ES6 section 7.4.7 CreateIterResultObject. + Handle<JSIteratorResult> NewJSIteratorResult(Handle<Object> value, + Handle<Object> done); + // Allocates a Harmony proxy. Handle<JSProxy> NewJSProxy(Handle<Object> handler, Handle<Object> prototype); // Allocates a Harmony function proxy. Handle<JSProxy> NewJSFunctionProxy(Handle<Object> handler, - Handle<Object> call_trap, + Handle<JSReceiver> call_trap, Handle<Object> construct_trap, Handle<Object> prototype); @@ -551,21 +556,17 @@ class Factory final { Handle<Object> arg1 = Handle<Object>(), Handle<Object> arg2 = Handle<Object>()); -#define DEFINE_ERROR(NAME, name) \ - Handle<Object> New##NAME(MessageTemplate::Template template_index, \ - Handle<Object> arg0 = Handle<Object>(), \ - Handle<Object> arg1 = Handle<Object>(), \ - Handle<Object> arg2 = Handle<Object>()) { \ - return NewError(isolate()->name##_function(), template_index, arg0, arg1, \ - arg2); \ - } - - DEFINE_ERROR(Error, error) - DEFINE_ERROR(EvalError, eval_error) - DEFINE_ERROR(RangeError, range_error) - DEFINE_ERROR(ReferenceError, reference_error) - DEFINE_ERROR(SyntaxError, syntax_error) - DEFINE_ERROR(TypeError, type_error) +#define DECLARE_ERROR(NAME) \ + Handle<Object> New##NAME(MessageTemplate::Template template_index, \ + Handle<Object> arg0 = Handle<Object>(), \ + Handle<Object> arg1 = Handle<Object>(), \ + Handle<Object> arg2 = Handle<Object>()); + DECLARE_ERROR(Error) + DECLARE_ERROR(EvalError) + DECLARE_ERROR(RangeError) + DECLARE_ERROR(ReferenceError) + DECLARE_ERROR(SyntaxError) + DECLARE_ERROR(TypeError) #undef DEFINE_ERROR Handle<String> NumberToString(Handle<Object> number, @@ -609,7 +610,7 @@ class Factory final { PRIVATE_SYMBOL_LIST(SYMBOL_ACCESSOR) #undef SYMBOL_ACCESSOR -#define SYMBOL_ACCESSOR(name, varname, description) \ +#define SYMBOL_ACCESSOR(name, description) \ inline Handle<Symbol> name() { \ return Handle<Symbol>(bit_cast<Symbol**>( \ &isolate()->heap()->roots_[Heap::k##name##RootIndex])); \ @@ -617,18 +618,6 @@ class Factory final { PUBLIC_SYMBOL_LIST(SYMBOL_ACCESSOR) #undef SYMBOL_ACCESSOR - inline void set_string_table(Handle<StringTable> table) { - isolate()->heap()->set_string_table(*table); - } - - inline void set_weak_stack_trace_list(Handle<WeakFixedArray> list) { - isolate()->heap()->set_weak_stack_trace_list(*list); - } - - Handle<String> hidden_string() { - return Handle<String>(&isolate()->heap()->hidden_string_); - } - // Allocates a new SharedFunctionInfo object. Handle<SharedFunctionInfo> NewSharedFunctionInfo( Handle<String> name, int number_of_literals, FunctionKind kind, |