67 auto closure = Parameter<JSFunction>(Descriptor::kClosure);
68 auto receiver = Parameter<Object>(Descriptor::kReceiver);
69 auto context = Parameter<Context>(Descriptor::kContext);
73 closure, JSFunction::kSharedFunctionInfoOffset);
75 LoadSharedFunctionInfoFormalParameterCountWithoutReceiver(shared));
77 LoadSharedFunctionInfoBytecodeArray(shared);
78 TNode<IntPtrT> frame_size = ChangeInt32ToIntPtr(LoadObjectField<Uint32T>(
79 bytecode_array, BytecodeArray::kFrameSizeOffset));
82 formal_parameter_count));
86 AllocateFixedArray(
HOLEY_ELEMENTS, parameters_and_register_length);
88 IntPtrConstant(0), parameters_and_register_length,
89 RootIndex::kUndefinedValue);
100 AllocateInNewSpace(JSAsyncFunctionObject::kHeaderSize));
101 StoreMapNoWriteBarrier(async_function_object, async_function_object_map);
102 StoreObjectFieldRoot(async_function_object,
103 JSAsyncFunctionObject::kPropertiesOrHashOffset,
104 RootIndex::kEmptyFixedArray);
105 StoreObjectFieldRoot(async_function_object,
106 JSAsyncFunctionObject::kElementsOffset,
107 RootIndex::kEmptyFixedArray);
108 StoreObjectFieldNoWriteBarrier(
109 async_function_object, JSAsyncFunctionObject::kFunctionOffset, closure);
110 StoreObjectFieldNoWriteBarrier(
111 async_function_object, JSAsyncFunctionObject::kContextOffset, context);
112 StoreObjectFieldNoWriteBarrier(
113 async_function_object, JSAsyncFunctionObject::kReceiverOffset,
receiver);
114 StoreObjectFieldNoWriteBarrier(async_function_object,
115 JSAsyncFunctionObject::kInputOrDebugPosOffset,
117 StoreObjectFieldNoWriteBarrier(async_function_object,
118 JSAsyncFunctionObject::kResumeModeOffset,
119 SmiConstant(JSAsyncFunctionObject::kNext));
120 StoreObjectFieldNoWriteBarrier(
121 async_function_object, JSAsyncFunctionObject::kContinuationOffset,
122 SmiConstant(JSAsyncFunctionObject::kGeneratorExecuting));
123 StoreObjectFieldNoWriteBarrier(
124 async_function_object,
125 JSAsyncFunctionObject::kParametersAndRegistersOffset,
126 parameters_and_registers);
127 StoreObjectFieldNoWriteBarrier(
128 async_function_object, JSAsyncFunctionObject::kPromiseOffset, promise);
130 Return(async_function_object);