Files
sdk/runtime/vm/runtime_entry_list.h
T
Alexander Aprelev b32e5e5a91 [vm/shared] Throw AccessError when isolategroup mutator accesses static fields.
Sample snapshot size comparison before/after:

===
dart2js_aot.dart.snapshot before: 19946368
                          after:  19998800  (with flag turned on)
                          delta:     52432 0.26%
===

Bug: https://github.com/dart-lang/sdk/issues/54530
Bug: https://github.com/dart-lang/sdk/issues/56841
CoreLibraryReviewExempt: internal library change only
Change-Id: I34b1945c040bbad22cb3ec6fdb6e6776df31a82f
TEST=run_isolate_group_run_test.dart
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/422360
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2025-05-06 10:42:44 -07:00

133 lines
9.5 KiB
C++

// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef RUNTIME_VM_RUNTIME_ENTRY_LIST_H_
#define RUNTIME_VM_RUNTIME_ENTRY_LIST_H_
namespace dart {
#define RUNTIME_ENTRY_LIST(V) \
V(AllocateArray) \
V(AllocateMint) \
V(AllocateDouble) \
V(AllocateFloat32x4) \
V(AllocateFloat64x2) \
V(AllocateInt32x4) \
V(AllocateTypedData) \
V(AllocateClosure) \
V(AllocateContext) \
V(AllocateObject) \
V(AllocateRecord) \
V(AllocateSmallRecord) \
V(AllocateSuspendState) \
V(BoxDouble) \
V(BoxFloat32x4) \
V(BoxFloat64x2) \
V(BreakpointRuntimeHandler) \
V(SingleStepHandler) \
V(CloneContext) \
V(CloneSuspendState) \
V(DoubleToInteger) \
V(FixCallersTarget) \
V(FixCallersTargetMonomorphic) \
V(FixAllocationStubTarget) \
V(InlineCacheMissHandlerOneArg) \
V(InlineCacheMissHandlerTwoArgs) \
V(StaticCallMissHandlerOneArg) \
V(StaticCallMissHandlerTwoArgs) \
V(Instanceof) \
V(SubtypeCheck) \
V(TypeCheck) \
V(InstantiateType) \
V(InstantiateTypeArguments) \
V(NoSuchMethodFromCallStub) \
V(NoSuchMethodFromPrologue) \
V(OptimizeInvokedFunction) \
V(TraceICCall) \
V(PatchStaticCall) \
V(RangeError) \
V(RangeErrorUnboxedInt64) \
V(WriteError) \
V(NullError) \
V(NullErrorWithSelector) \
V(NullCastError) \
V(ArgumentNullError) \
V(DispatchTableNullError) \
V(ArgumentError) \
V(ArgumentErrorUnboxedInt64) \
V(IntegerDivisionByZeroException) \
V(ReThrow) \
V(InterruptOrStackOverflow) \
V(Throw) \
V(DeoptimizeMaterialize) \
V(RewindPostDeopt) \
V(UpdateFieldCid) \
V(InitInstanceField) \
V(InitStaticField) \
V(StaticFieldAccessedWithoutIsolateError) \
V(LateFieldAlreadyInitializedError) \
V(LateFieldAssignedDuringInitializationError) \
V(LateFieldNotInitializedError) \
V(CompileFunction) \
V(ResumeFrame) \
V(SwitchableCallMiss) \
V(NotLoaded) \
V(FfiAsyncCallbackSend) \
V(AllocateSubtypeTestCache) \
V(GetFieldForDispatch) \
V(AdjustArgumentsDesciptorForImplicitClosure) \
V(ClosureArgumentsValid) \
V(ResolveCallFunction) \
V(InterpretedInstanceCallMissHandler) \
V(InvokeNoSuchMethod) \
V(ResumeInterpreter)
// Note: Leaf runtime function have C linkage, so they cannot pass C++ struct
// values like ObjectPtr.
#define LEAF_RUNTIME_ENTRY_LIST(V) \
V(intptr_t, DeoptimizeCopyFrame, uword, uword) \
V(void, DeoptimizeFillFrame, uword) \
V(void, StoreBufferBlockProcess, Thread*) \
V(void, OldMarkingStackBlockProcess, Thread*) \
V(void, NewMarkingStackBlockProcess, Thread*) \
V(uword /*ObjectPtr*/, EnsureRememberedAndMarkingDeferred, \
uword /*ObjectPtr*/ object, Thread* thread) \
V(double, LibcPow, double, double) \
V(double, DartModulo, double, double) \
V(double, LibcFmod, double, double) \
V(double, LibcFloor, double) \
V(double, LibcCeil, double) \
V(double, LibcTrunc, double) \
V(double, LibcRound, double) \
V(double, LibcCos, double) \
V(double, LibcSin, double) \
V(double, LibcTan, double) \
V(double, LibcAcos, double) \
V(double, LibcAsin, double) \
V(double, LibcAtan, double) \
V(double, LibcAtan2, double, double) \
V(double, LibcExp, double) \
V(double, LibcLog, double) \
V(uword /*BoolPtr*/, CaseInsensitiveCompareUCS2, uword /*StringPtr*/, \
uword /*SmiPtr*/, uword /*SmiPtr*/, uword /*SmiPtr*/) \
V(uword /*BoolPtr*/, CaseInsensitiveCompareUTF16, uword /*StringPtr*/, \
uword /*SmiPtr*/, uword /*SmiPtr*/, uword /*SmiPtr*/) \
V(void, EnterSafepoint) \
V(void, ExitSafepoint) \
V(ApiLocalScope*, EnterHandleScope, Thread*) \
V(void, ExitHandleScope, Thread*) \
V(LocalHandle*, AllocateHandle, ApiLocalScope*) \
V(void, PropagateError, Dart_Handle) \
V(void, MsanUnpoison, void*, size_t) \
V(void, MsanUnpoisonParam, size_t) \
V(void, TsanLoadAcquire, void*) \
V(void, TsanStoreRelease, void*) \
V(bool, TryDoubleAsInteger, Thread*) \
V(void*, MemoryMove, void*, const void*, size_t)
} // namespace dart
#endif // RUNTIME_VM_RUNTIME_ENTRY_LIST_H_