Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/objects.h

Issue 2252783007: Revert of Use a custom Struct for stack trace storage (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/messages.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 V(ACCESS_CHECK_INFO_TYPE) \ 381 V(ACCESS_CHECK_INFO_TYPE) \
382 V(INTERCEPTOR_INFO_TYPE) \ 382 V(INTERCEPTOR_INFO_TYPE) \
383 V(CALL_HANDLER_INFO_TYPE) \ 383 V(CALL_HANDLER_INFO_TYPE) \
384 V(FUNCTION_TEMPLATE_INFO_TYPE) \ 384 V(FUNCTION_TEMPLATE_INFO_TYPE) \
385 V(OBJECT_TEMPLATE_INFO_TYPE) \ 385 V(OBJECT_TEMPLATE_INFO_TYPE) \
386 V(SIGNATURE_INFO_TYPE) \ 386 V(SIGNATURE_INFO_TYPE) \
387 V(TYPE_SWITCH_INFO_TYPE) \ 387 V(TYPE_SWITCH_INFO_TYPE) \
388 V(ALLOCATION_MEMENTO_TYPE) \ 388 V(ALLOCATION_MEMENTO_TYPE) \
389 V(ALLOCATION_SITE_TYPE) \ 389 V(ALLOCATION_SITE_TYPE) \
390 V(SCRIPT_TYPE) \ 390 V(SCRIPT_TYPE) \
391 V(STACK_TRACE_FRAME_TYPE) \
392 V(TYPE_FEEDBACK_INFO_TYPE) \ 391 V(TYPE_FEEDBACK_INFO_TYPE) \
393 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ 392 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \
394 V(BOX_TYPE) \ 393 V(BOX_TYPE) \
395 V(PROTOTYPE_INFO_TYPE) \ 394 V(PROTOTYPE_INFO_TYPE) \
396 V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE) \ 395 V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE) \
397 \ 396 \
398 V(FIXED_ARRAY_TYPE) \ 397 V(FIXED_ARRAY_TYPE) \
399 V(FIXED_DOUBLE_ARRAY_TYPE) \ 398 V(FIXED_DOUBLE_ARRAY_TYPE) \
400 V(SHARED_FUNCTION_INFO_TYPE) \ 399 V(SHARED_FUNCTION_INFO_TYPE) \
401 V(WEAK_CELL_TYPE) \ 400 V(WEAK_CELL_TYPE) \
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 #define STRUCT_LIST(V) \ 496 #define STRUCT_LIST(V) \
498 V(BOX, Box, box) \ 497 V(BOX, Box, box) \
499 V(ACCESSOR_INFO, AccessorInfo, accessor_info) \ 498 V(ACCESSOR_INFO, AccessorInfo, accessor_info) \
500 V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \ 499 V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \
501 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ 500 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \
502 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ 501 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \
503 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ 502 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \
504 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ 503 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \
505 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ 504 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \
506 V(SCRIPT, Script, script) \ 505 V(SCRIPT, Script, script) \
507 V(STACK_TRACE_FRAME, StackTraceFrame, stack_trace_frame) \
508 V(ALLOCATION_SITE, AllocationSite, allocation_site) \ 506 V(ALLOCATION_SITE, AllocationSite, allocation_site) \
509 V(ALLOCATION_MEMENTO, AllocationMemento, allocation_memento) \ 507 V(ALLOCATION_MEMENTO, AllocationMemento, allocation_memento) \
510 V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) \ 508 V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info) \
511 V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) \ 509 V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) \
512 V(DEBUG_INFO, DebugInfo, debug_info) \ 510 V(DEBUG_INFO, DebugInfo, debug_info) \
513 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) \ 511 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) \
514 V(PROTOTYPE_INFO, PrototypeInfo, prototype_info) \ 512 V(PROTOTYPE_INFO, PrototypeInfo, prototype_info) \
515 V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION, \ 513 V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION, \
516 SloppyBlockWithEvalContextExtension, \ 514 SloppyBlockWithEvalContextExtension, \
517 sloppy_block_with_eval_context_extension) 515 sloppy_block_with_eval_context_extension)
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 ACCESS_CHECK_INFO_TYPE, 667 ACCESS_CHECK_INFO_TYPE,
670 INTERCEPTOR_INFO_TYPE, 668 INTERCEPTOR_INFO_TYPE,
671 CALL_HANDLER_INFO_TYPE, 669 CALL_HANDLER_INFO_TYPE,
672 FUNCTION_TEMPLATE_INFO_TYPE, 670 FUNCTION_TEMPLATE_INFO_TYPE,
673 OBJECT_TEMPLATE_INFO_TYPE, 671 OBJECT_TEMPLATE_INFO_TYPE,
674 SIGNATURE_INFO_TYPE, 672 SIGNATURE_INFO_TYPE,
675 TYPE_SWITCH_INFO_TYPE, 673 TYPE_SWITCH_INFO_TYPE,
676 ALLOCATION_SITE_TYPE, 674 ALLOCATION_SITE_TYPE,
677 ALLOCATION_MEMENTO_TYPE, 675 ALLOCATION_MEMENTO_TYPE,
678 SCRIPT_TYPE, 676 SCRIPT_TYPE,
679 STACK_TRACE_FRAME_TYPE,
680 TYPE_FEEDBACK_INFO_TYPE, 677 TYPE_FEEDBACK_INFO_TYPE,
681 ALIASED_ARGUMENTS_ENTRY_TYPE, 678 ALIASED_ARGUMENTS_ENTRY_TYPE,
682 BOX_TYPE, 679 BOX_TYPE,
683 DEBUG_INFO_TYPE, 680 DEBUG_INFO_TYPE,
684 BREAK_POINT_INFO_TYPE, 681 BREAK_POINT_INFO_TYPE,
685 FIXED_ARRAY_TYPE, 682 FIXED_ARRAY_TYPE,
686 SHARED_FUNCTION_INFO_TYPE, 683 SHARED_FUNCTION_INFO_TYPE,
687 CELL_TYPE, 684 CELL_TYPE,
688 WEAK_CELL_TYPE, 685 WEAK_CELL_TYPE,
689 TRANSITION_ARRAY_TYPE, 686 TRANSITION_ARRAY_TYPE,
(...skipping 5797 matching lines...) Expand 10 before | Expand all | Expand 10 after
6487 DECLARE_PRINTER(Box) 6484 DECLARE_PRINTER(Box)
6488 DECLARE_VERIFIER(Box) 6485 DECLARE_VERIFIER(Box)
6489 6486
6490 static const int kValueOffset = HeapObject::kHeaderSize; 6487 static const int kValueOffset = HeapObject::kHeaderSize;
6491 static const int kSize = kValueOffset + kPointerSize; 6488 static const int kSize = kValueOffset + kPointerSize;
6492 6489
6493 private: 6490 private:
6494 DISALLOW_IMPLICIT_CONSTRUCTORS(Box); 6491 DISALLOW_IMPLICIT_CONSTRUCTORS(Box);
6495 }; 6492 };
6496 6493
6494
6497 // Container for metadata stored on each prototype map. 6495 // Container for metadata stored on each prototype map.
6498 class PrototypeInfo : public Struct { 6496 class PrototypeInfo : public Struct {
6499 public: 6497 public:
6500 static const int UNREGISTERED = -1; 6498 static const int UNREGISTERED = -1;
6501 6499
6502 // [prototype_users]: WeakFixedArray containing maps using this prototype, 6500 // [prototype_users]: WeakFixedArray containing maps using this prototype,
6503 // or Smi(0) if uninitialized. 6501 // or Smi(0) if uninitialized.
6504 DECL_ACCESSORS(prototype_users, Object) 6502 DECL_ACCESSORS(prototype_users, Object)
6505 6503
6506 // [object_create_map]: A field caching the map for Object.create(prototype). 6504 // [object_create_map]: A field caching the map for Object.create(prototype).
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
6771 static const int kCompilationStateBit = 1; 6769 static const int kCompilationStateBit = 1;
6772 static const int kHideSourceBit = 2; 6770 static const int kHideSourceBit = 2;
6773 static const int kOriginOptionsShift = 3; 6771 static const int kOriginOptionsShift = 3;
6774 static const int kOriginOptionsSize = 3; 6772 static const int kOriginOptionsSize = 3;
6775 static const int kOriginOptionsMask = ((1 << kOriginOptionsSize) - 1) 6773 static const int kOriginOptionsMask = ((1 << kOriginOptionsSize) - 1)
6776 << kOriginOptionsShift; 6774 << kOriginOptionsShift;
6777 6775
6778 DISALLOW_IMPLICIT_CONSTRUCTORS(Script); 6776 DISALLOW_IMPLICIT_CONSTRUCTORS(Script);
6779 }; 6777 };
6780 6778
6781 class StackTraceFrame : public Struct {
6782 public:
6783 // --- Fields for JS and Wasm frames. ---
6784
6785 static const int kIsWasmFrame = 1 << 0;
6786 static const int kForceConstructor = 1 << 1;
6787 static const int kIsStrict = 1 << 2;
6788
6789 // [flags]
6790 DECL_INT_ACCESSORS(flags)
6791
6792 // [abstract_code]
6793 DECL_ACCESSORS(abstract_code, AbstractCode)
6794
6795 // [offset]
6796 DECL_INT_ACCESSORS(offset)
6797
6798 // --- Fields for JS frames. ---
6799
6800 // [receiver]
6801 DECL_ACCESSORS(receiver, Object)
6802
6803 // [function]
6804 DECL_ACCESSORS(function, JSFunction)
6805
6806 // --- Fields for Wasm frames. ---
6807
6808 // [wasm_object]
6809 DECL_ACCESSORS(wasm_object, Object)
6810
6811 // [wasm_function_index]
6812 DECL_INT_ACCESSORS(wasm_function_index)
6813
6814 inline bool IsWasmFrame() const;
6815 inline bool IsJavaScriptFrame() const;
6816 inline bool IsStrict() const;
6817 inline bool ForceConstructor() const;
6818
6819 Handle<Object> GetFileName();
6820 Handle<Object> GetFunctionName();
6821 Handle<Object> GetScriptNameOrSourceUrl();
6822 Handle<Object> GetMethodName();
6823 Handle<Object> GetTypeName();
6824 Handle<Object> GetEvalOrigin();
6825
6826 int GetPosition();
6827 // Return 1-based line number, including line offset.
6828 int GetLineNumber();
6829 // Return 1-based column number, including column offset if first line.
6830 int GetColumnNumber();
6831
6832 bool IsNative();
6833 bool IsToplevel();
6834 bool IsEval();
6835 bool IsConstructor();
6836
6837 Handle<String> ToString();
6838
6839 DECLARE_CAST(StackTraceFrame)
6840
6841 // Dispatched behavior.
6842 DECLARE_PRINTER(StackTraceFrame)
6843 DECLARE_VERIFIER(StackTraceFrame)
6844
6845 // Fields for all frame types.
6846 static const int kFlagsOffset = HeapObject::kHeaderSize;
6847 static const int kAbstractCodeOffset = kFlagsOffset + kPointerSize;
6848 static const int kOffsetOffset = kAbstractCodeOffset + kPointerSize;
6849
6850 // Fields for JS frames.
6851 static const int kReceiverOffset = kOffsetOffset + kPointerSize;
6852 static const int kFunctionOffset = kReceiverOffset + kPointerSize;
6853
6854 // Fields for Wasm frames.
6855 static const int kWasmObjectOffset = kOffsetOffset + kPointerSize;
6856 static const int kWasmFunctionIndexOffset = kWasmObjectOffset + kPointerSize;
6857
6858 static const int kSize = kFunctionOffset + kPointerSize;
6859
6860 private:
6861 DISALLOW_IMPLICIT_CONSTRUCTORS(StackTraceFrame);
6862 };
6863 6779
6864 // List of builtin functions we want to identify to improve code 6780 // List of builtin functions we want to identify to improve code
6865 // generation. 6781 // generation.
6866 // 6782 //
6867 // Each entry has a name of a global object property holding an object 6783 // Each entry has a name of a global object property holding an object
6868 // optionally followed by ".prototype", a name of a builtin function 6784 // optionally followed by ".prototype", a name of a builtin function
6869 // on the object (the one the id is set for), and a label. 6785 // on the object (the one the id is set for), and a label.
6870 // 6786 //
6871 // Installation of ids for the selected builtin functions is handled 6787 // Installation of ids for the selected builtin functions is handled
6872 // by the bootstrapper. 6788 // by the bootstrapper.
(...skipping 4292 matching lines...) Expand 10 before | Expand all | Expand 10 after
11165 } 11081 }
11166 return value; 11082 return value;
11167 } 11083 }
11168 }; 11084 };
11169 11085
11170 11086
11171 } // NOLINT, false-positive due to second-order macros. 11087 } // NOLINT, false-positive due to second-order macros.
11172 } // NOLINT, false-positive due to second-order macros. 11088 } // NOLINT, false-positive due to second-order macros.
11173 11089
11174 #endif // V8_OBJECTS_H_ 11090 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/messages.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698