V8 Project
v8::internal::ArgumentsAdaptorFrame Class Reference

#include <frames.h>

+ Inheritance diagram for v8::internal::ArgumentsAdaptorFrame:
+ Collaboration diagram for v8::internal::ArgumentsAdaptorFrame:

Public Member Functions

virtual Type type () const
 
virtual Codeunchecked_code () const
 
virtual void Print (StringStream *accumulator, PrintMode mode, int index) const
 
- Public Member Functions inherited from v8::internal::JavaScriptFrame
JSFunctionfunction () const
 
Objectreceiver () const
 
void set_receiver (Object *value)
 
Address GetParameterSlot (int index) const
 
ObjectGetParameter (int index) const
 
int ComputeParametersCount () const
 
Address GetOperandSlot (int index) const
 
ObjectGetOperand (int index) const
 
int ComputeOperandsCount () const
 
void SaveOperandStack (FixedArray *store, int *stack_handler_index) const
 
void RestoreOperandStack (FixedArray *store, int stack_handler_index)
 
void SetParameterValue (int index, Object *value) const
 
bool IsConstructor () const
 
bool has_adapted_arguments () const
 
int GetArgumentsLength () const
 
virtual void Iterate (ObjectVisitor *v) const
 
virtual int GetInlineCount ()
 
virtual void GetFunctions (List< JSFunction * > *functions)
 
virtual void Summarize (List< FrameSummary > *frames)
 
- Public Member Functions inherited from v8::internal::StandardFrame
virtual bool is_standard () const
 
Objectcontext () const
 
ObjectGetExpression (int index) const
 
void SetExpression (int index, Object *value)
 
int ComputeExpressionsCount () const
 
virtual void SetCallerFp (Address caller_fp)
 
- Public Member Functions inherited from v8::StackFrame
int GetLineNumber () const
 Returns the number, 1-based, of the line for the associate function call. More...
 
int GetColumn () const
 Returns the 1-based column offset on the line for the associated function call. More...
 
int GetScriptId () const
 Returns the id of the script for the function for this StackFrame. More...
 
Local< StringGetScriptName () const
 Returns the name of the resource that contains the script for the function for this StackFrame. More...
 
Local< StringGetScriptNameOrSourceURL () const
 Returns the name of the resource that contains the script for the function for this StackFrame or sourceURL value if the script name is undefined and its source ends with //# sourceURL=... More...
 
Local< StringGetFunctionName () const
 Returns the name of the function associated with this stack frame. More...
 
bool IsEval () const
 Returns whether or not the associated function is compiled via a call to eval(). More...
 
bool IsConstructor () const
 Returns whether or not the associated function is called as a constructor via "new". More...
 

Static Public Member Functions

static ArgumentsAdaptorFramecast (StackFrame *frame)
 
- Static Public Member Functions inherited from v8::internal::JavaScriptFrame
static Register fp_register ()
 
static Register context_register ()
 
static Register constant_pool_pointer_register ()
 
static JavaScriptFramecast (StackFrame *frame)
 
static void PrintFunctionAndOffset (JSFunction *function, Code *code, Address pc, FILE *file, bool print_line_number)
 
static void PrintTop (Isolate *isolate, FILE *file, bool print_args, bool print_line_number)
 
- Static Public Member Functions inherited from v8::internal::StandardFrame
static ObjectGetExpression (Address fp, int index)
 
static StandardFramecast (StackFrame *frame)
 

Protected Member Functions

 ArgumentsAdaptorFrame (StackFrameIteratorBase *iterator)
 
virtual int GetNumberOfIncomingArguments () const
 
virtual Address GetCallerStackPointer () const
 
- Protected Member Functions inherited from v8::internal::JavaScriptFrame
 JavaScriptFrame (StackFrameIteratorBase *iterator)
 
void IterateArguments (ObjectVisitor *v) const
 
- Protected Member Functions inherited from v8::internal::StandardFrame
 StandardFrame (StackFrameIteratorBase *iterator)
 
virtual void ComputeCallerState (State *state) const
 
Address caller_fp () const
 
Address caller_pc () const
 
void IterateExpressions (ObjectVisitor *v) const
 
Address GetExpressionAddress (int n) const
 
bool IsExpressionInsideHandler (int n) const
 
void IterateCompiledFrame (ObjectVisitor *v) const
 

Friends

class StackFrameIteratorBase
 

Additional Inherited Members

- Static Protected Member Functions inherited from v8::internal::StandardFrame
static Address ComputePCAddress (Address fp)
 
static Address ComputeConstantPoolAddress (Address fp)
 
static Address GetExpressionAddress (Address fp, int n)
 
static bool IsArgumentsAdaptorFrame (Address fp)
 
static bool IsConstructFrame (Address fp)
 

Detailed Description

Definition at line 694 of file frames.h.

Constructor & Destructor Documentation

◆ ArgumentsAdaptorFrame()

v8::internal::ArgumentsAdaptorFrame::ArgumentsAdaptorFrame ( StackFrameIteratorBase iterator)
inlineexplicitprotected

Definition at line 280 of file frames-inl.h.

281  : JavaScriptFrame(iterator) {
282 }
JavaScriptFrame(StackFrameIteratorBase *iterator)
Definition: frames-inl.h:204

Member Function Documentation

◆ cast()

static ArgumentsAdaptorFrame* v8::internal::ArgumentsAdaptorFrame::cast ( StackFrame frame)
inlinestatic

Definition at line 701 of file frames.h.

701  {
702  DCHECK(frame->is_arguments_adaptor());
703  return static_cast<ArgumentsAdaptorFrame*>(frame);
704  }
ArgumentsAdaptorFrame(StackFrameIteratorBase *iterator)
Definition: frames-inl.h:280
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK.

◆ GetCallerStackPointer()

Address v8::internal::ArgumentsAdaptorFrame::GetCallerStackPointer ( ) const
protectedvirtual

Reimplemented from v8::internal::JavaScriptFrame.

Definition at line 1126 of file frames.cc.

1126  {
1128 }
static const int kCallerSPOffset
Definition: frames.h:167
const Register fp

References v8::internal::fp, and v8::internal::StandardFrameConstants::kCallerSPOffset.

◆ GetNumberOfIncomingArguments()

int v8::internal::ArgumentsAdaptorFrame::GetNumberOfIncomingArguments ( ) const
protectedvirtual

Reimplemented from v8::internal::JavaScriptFrame.

Definition at line 1121 of file frames.cc.

1121  {
1122  return Smi::cast(GetExpression(0))->value();
1123 }
Object * GetExpression(int index) const
Definition: frames-inl.h:154

References v8::internal::StandardFrame::GetExpression().

+ Here is the call graph for this function:

◆ Print()

void v8::internal::ArgumentsAdaptorFrame::Print ( StringStream *  accumulator,
PrintMode  mode,
int  index 
) const
virtual

Reimplemented from v8::internal::JavaScriptFrame.

Definition at line 1303 of file frames.cc.

1305  {
1306  int actual = ComputeParametersCount();
1307  int expected = -1;
1308  JSFunction* function = this->function();
1309  expected = function->shared()->formal_parameter_count();
1310 
1311  PrintIndex(accumulator, mode, index);
1312  accumulator->Add("arguments adaptor frame: %d->%d", actual, expected);
1313  if (mode == OVERVIEW) {
1314  accumulator->Add("\n");
1315  return;
1316  }
1317  accumulator->Add(" {\n");
1318 
1319  // Print actual arguments.
1320  if (actual > 0) accumulator->Add(" // actual arguments\n");
1321  for (int i = 0; i < actual; i++) {
1322  accumulator->Add(" [%02d] : %o", i, GetParameter(i));
1323  if (expected != -1 && i >= expected) {
1324  accumulator->Add(" // not passed to callee");
1325  }
1326  accumulator->Add("\n");
1327  }
1328 
1329  accumulator->Add("}\n\n");
1330 }
Object * GetParameter(int index) const
Definition: frames-inl.h:217
int ComputeParametersCount() const
Definition: frames.h:562
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long mode(MIPS only)") DEFINE_BOOL(enable_always_align_csp

References v8::internal::JavaScriptFrame::ComputeParametersCount(), v8::internal::JavaScriptFrame::GetParameter(), and mode().

+ Here is the call graph for this function:

◆ type()

virtual Type v8::internal::ArgumentsAdaptorFrame::type ( ) const
inlinevirtual

Reimplemented from v8::internal::JavaScriptFrame.

Definition at line 696 of file frames.h.

696 { return ARGUMENTS_ADAPTOR; }
@ ARGUMENTS_ADAPTOR
Definition: hydrogen.h:546

References v8::internal::ARGUMENTS_ADAPTOR.

◆ unchecked_code()

Code * v8::internal::ArgumentsAdaptorFrame::unchecked_code ( ) const
virtual

Reimplemented from v8::internal::JavaScriptFrame.

Definition at line 1138 of file frames.cc.

1138  {
1139  return isolate()->builtins()->builtin(
1140  Builtins::kArgumentsAdaptorTrampoline);
1141 }

References v8::internal::Builtins::builtin(), and v8::internal::Isolate::builtins().

+ Here is the call graph for this function:

Friends And Related Function Documentation

◆ StackFrameIteratorBase

friend class StackFrameIteratorBase
friend

Definition at line 719 of file frames.h.


The documentation for this class was generated from the following files: