#include "src/builtins/builtins-constructor-gen.h"
#include <optional>
#include "src/ast/ast.h"
#include "src/builtins/builtins-call-gen.h"
#include "src/builtins/builtins-constructor.h"
#include "src/builtins/builtins-inl.h"
#include "src/builtins/builtins-utils-gen.h"
#include "src/codegen/code-stub-assembler-inl.h"
#include "src/codegen/interface-descriptors.h"
#include "src/codegen/macro-assembler.h"
#include "src/common/globals.h"
#include "src/logging/counters.h"
#include "src/objects/objects-inl.h"
namespace v8 {
namespace internal {
#include "src/codegen/define-code-stub-assembler-macros.inc"
void Builtins::Generate_ConstructVarargs(MacroAssembler* masm) { … }
void Builtins::Generate_ConstructForwardVarargs(MacroAssembler* masm) { … }
void Builtins::Generate_ConstructFunctionForwardVarargs(MacroAssembler* masm) { … }
void Builtins::Generate_InterpreterForwardAllArgsThenConstruct(
MacroAssembler* masm) { … }
void Builtins::Generate_ConstructForwardAllArgs(MacroAssembler* masm) { … }
TF_BUILTIN(Construct_Baseline, CallOrConstructBuiltinsAssembler) { … }
TF_BUILTIN(Construct_WithFeedback, CallOrConstructBuiltinsAssembler) { … }
void CallOrConstructBuiltinsAssembler::BuildConstruct(
TNode<Object> target, TNode<Object> new_target, TNode<Int32T> argc,
const LazyNode<Context>& context,
const LazyNode<HeapObject>& feedback_vector, TNode<UintPtrT> slot,
UpdateFeedbackMode mode) { … }
TF_BUILTIN(ConstructWithArrayLike, CallOrConstructBuiltinsAssembler) { … }
TF_BUILTIN(ConstructWithSpread, CallOrConstructBuiltinsAssembler) { … }
TF_BUILTIN(ConstructWithSpread_Baseline, CallOrConstructBuiltinsAssembler) { … }
TF_BUILTIN(ConstructWithSpread_WithFeedback, CallOrConstructBuiltinsAssembler) { … }
void CallOrConstructBuiltinsAssembler::BuildConstructWithSpread(
TNode<Object> target, TNode<Object> new_target, TNode<Object> spread,
TNode<Int32T> argc, const LazyNode<Context>& context,
const LazyNode<HeapObject>& feedback_vector, TNode<TaggedIndex> slot,
UpdateFeedbackMode mode) { … }
TF_BUILTIN(ConstructForwardAllArgs_Baseline, CallOrConstructBuiltinsAssembler) { … }
TF_BUILTIN(ConstructForwardAllArgs_WithFeedback,
CallOrConstructBuiltinsAssembler) { … }
void CallOrConstructBuiltinsAssembler::BuildConstructForwardAllArgs(
TNode<Object> target, TNode<Object> new_target,
const LazyNode<Context>& context,
const LazyNode<HeapObject>& feedback_vector, TNode<TaggedIndex> slot) { … }
TF_BUILTIN(FastNewClosure, ConstructorBuiltinsAssembler) { … }
TF_BUILTIN(FastNewObject, ConstructorBuiltinsAssembler) { … }
TNode<JSObject> ConstructorBuiltinsAssembler::FastNewObject(
TNode<Context> context, TNode<JSFunction> target,
TNode<JSReceiver> new_target) { … }
TNode<JSObject> ConstructorBuiltinsAssembler::FastNewObject(
TNode<Context> context, TNode<JSFunction> target,
TNode<JSReceiver> new_target, Label* call_runtime) { … }
TNode<Context> ConstructorBuiltinsAssembler::FastNewFunctionContext(
TNode<ScopeInfo> scope_info, TNode<Uint32T> slots, TNode<Context> context,
ScopeType scope_type) { … }
TNode<JSRegExp> ConstructorBuiltinsAssembler::CreateRegExpLiteral(
TNode<HeapObject> maybe_feedback_vector, TNode<TaggedIndex> slot,
TNode<Object> pattern, TNode<Smi> flags, TNode<Context> context) { … }
TNode<JSArray> ConstructorBuiltinsAssembler::CreateShallowArrayLiteral(
TNode<FeedbackVector> feedback_vector, TNode<TaggedIndex> slot,
TNode<Context> context, AllocationSiteMode allocation_site_mode,
Label* call_runtime) { … }
TNode<JSArray> ConstructorBuiltinsAssembler::CreateEmptyArrayLiteral(
TNode<FeedbackVector> feedback_vector, TNode<TaggedIndex> slot,
TNode<Context> context) { … }
TNode<HeapObject> ConstructorBuiltinsAssembler::CreateShallowObjectLiteral(
TNode<FeedbackVector> feedback_vector, TNode<TaggedIndex> slot,
Label* call_runtime) { … }
TNode<HeapObject> ConstructorBuiltinsAssembler::CreateShallowObjectLiteral(
TNode<AllocationSite> allocation_site, TNode<JSObject> boilerplate,
Label* call_runtime, bool bailout_if_dictionary_properties) { … }
TNode<JSObject> ConstructorBuiltinsAssembler::CreateEmptyObjectLiteral(
TNode<Context> context) { … }
void ConstructorBuiltinsAssembler::CopyMutableHeapNumbersInObject(
TNode<HeapObject> copy, TNode<IntPtrT> start_offset,
TNode<IntPtrT> end_offset) { … }
#include "src/codegen/undef-code-stub-assembler-macros.inc"
}
}