#include "src/ast/ast.h"
#include "src/common/globals.h"
#include "src/execution/arguments-inl.h"
#include "src/execution/isolate-inl.h"
#include "src/objects/allocation-site-scopes-inl.h"
#include "src/objects/hash-table-inl.h"
#include "src/objects/heap-number-inl.h"
#include "src/objects/js-regexp-inl.h"
#include "src/objects/literal-objects-inl.h"
#include "src/runtime/runtime.h"
namespace v8 {
namespace internal {
namespace {
bool IsUninitializedLiteralSite(Tagged<Object> literal_site) { … }
bool HasBoilerplate(DirectHandle<Object> literal_site) { … }
void PreInitializeLiteralSite(DirectHandle<FeedbackVector> vector,
FeedbackSlot slot) { … }
template <class ContextObject>
class JSObjectWalkVisitor { … };
template <class ContextObject>
MaybeHandle<JSObject> JSObjectWalkVisitor<ContextObject>::StructureWalk(
Handle<JSObject> object) { … }
class DeprecationUpdateContext { … };
class AllocationSiteCreationContext : public AllocationSiteContext { … };
MaybeHandle<JSObject> DeepWalk(Handle<JSObject> object,
DeprecationUpdateContext* site_context) { … }
MaybeHandle<JSObject> DeepWalk(Handle<JSObject> object,
AllocationSiteCreationContext* site_context) { … }
MaybeHandle<JSObject> DeepCopy(Handle<JSObject> object,
AllocationSiteUsageContext* site_context) { … }
Handle<JSObject> CreateObjectLiteral(
Isolate* isolate,
DirectHandle<ObjectBoilerplateDescription> object_boilerplate_description,
int flags, AllocationType allocation);
Handle<JSObject> CreateArrayLiteral(
Isolate* isolate,
DirectHandle<ArrayBoilerplateDescription> array_boilerplate_description,
AllocationType allocation);
struct ObjectLiteralHelper { … };
struct ArrayLiteralHelper { … };
Handle<JSObject> CreateObjectLiteral(
Isolate* isolate,
DirectHandle<ObjectBoilerplateDescription> object_boilerplate_description,
int flags, AllocationType allocation) { … }
Handle<JSObject> CreateArrayLiteral(
Isolate* isolate,
DirectHandle<ArrayBoilerplateDescription> array_boilerplate_description,
AllocationType allocation) { … }
template <typename LiteralHelper>
MaybeHandle<JSObject> CreateLiteralWithoutAllocationSite(
Isolate* isolate, Handle<HeapObject> description, int flags) { … }
template <typename LiteralHelper>
MaybeHandle<JSObject> CreateLiteral(Isolate* isolate,
Handle<HeapObject> maybe_vector,
int literals_index,
Handle<HeapObject> description, int flags) { … }
}
RUNTIME_FUNCTION(Runtime_CreateObjectLiteral) { … }
RUNTIME_FUNCTION(Runtime_CreateArrayLiteral) { … }
RUNTIME_FUNCTION(Runtime_CreateRegExpLiteral) { … }
}
}