#include "src/debug/debug-evaluate.h"
#include "src/builtins/accessors.h"
#include "src/codegen/assembler-inl.h"
#include "src/codegen/compiler.h"
#include "src/codegen/reloc-info.h"
#include "src/codegen/script-details.h"
#include "src/common/globals.h"
#include "src/debug/debug-frames.h"
#include "src/debug/debug-scopes.h"
#include "src/debug/debug.h"
#include "src/execution/frames-inl.h"
#include "src/execution/isolate-inl.h"
#include "src/interpreter/bytecode-array-iterator.h"
#include "src/interpreter/bytecodes.h"
#include "src/objects/code-inl.h"
#include "src/objects/contexts.h"
#include "src/objects/string-set-inl.h"
#if V8_ENABLE_WEBASSEMBLY
#include "src/debug/debug-wasm-objects.h"
#endif
namespace v8 {
namespace internal {
namespace {
static MaybeHandle<SharedFunctionInfo> GetFunctionInfo(Isolate* isolate,
Handle<String> source,
REPLMode repl_mode) { … }
}
MaybeHandle<Object> DebugEvaluate::Global(Isolate* isolate,
Handle<String> source,
debug::EvaluateGlobalMode mode,
REPLMode repl_mode) { … }
MaybeHandle<Object> DebugEvaluate::Local(Isolate* isolate,
StackFrameId frame_id,
int inlined_jsframe_index,
Handle<String> source,
bool throw_on_side_effect) { … }
MaybeHandle<Object> DebugEvaluate::WithTopmostArguments(Isolate* isolate,
Handle<String> source) { … }
MaybeHandle<Object> DebugEvaluate::Evaluate(
Isolate* isolate, Handle<SharedFunctionInfo> outer_info,
Handle<Context> context, Handle<Object> receiver, Handle<String> source,
bool throw_on_side_effect) { … }
Handle<SharedFunctionInfo> DebugEvaluate::ContextBuilder::outer_info() const { … }
DebugEvaluate::ContextBuilder::ContextBuilder(Isolate* isolate,
JavaScriptFrame* frame,
int inlined_jsframe_index)
: … { … }
void DebugEvaluate::ContextBuilder::UpdateValues() { … }
bool DebugEvaluate::IsSideEffectFreeIntrinsic(Runtime::FunctionId id) { … }
namespace {
bool BytecodeHasNoSideEffect(interpreter::Bytecode bytecode) { … }
DebugInfo::SideEffectState BuiltinGetSideEffectState(Builtin id) { … }
bool BytecodeRequiresRuntimeCheck(interpreter::Bytecode bytecode) { … }
}
DebugInfo::SideEffectState DebugEvaluate::FunctionGetSideEffectState(
Isolate* isolate, DirectHandle<SharedFunctionInfo> info) { … }
#ifdef DEBUG
static bool TransitivelyCalledBuiltinHasNoSideEffect(Builtin caller,
Builtin callee) { … }
void DebugEvaluate::VerifyTransitiveBuiltins(Isolate* isolate) { … }
#endif
void DebugEvaluate::ApplySideEffectChecks(
Handle<BytecodeArray> bytecode_array) { … }
}
}