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

Side by Side Diff: src/objects-inl.h

Issue 2788413004: [inspector] cache stack frame for call sites (Closed)
Patch Set: reverted v8-debugger change Created 3 years, 8 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/objects.cc ('k') | src/perf-jit.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE) 171 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE)
172 TYPE_CHECKER(JSTypedArray, JS_TYPED_ARRAY_TYPE) 172 TYPE_CHECKER(JSTypedArray, JS_TYPED_ARRAY_TYPE)
173 TYPE_CHECKER(JSValue, JS_VALUE_TYPE) 173 TYPE_CHECKER(JSValue, JS_VALUE_TYPE)
174 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) 174 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE)
175 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) 175 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE)
176 TYPE_CHECKER(Map, MAP_TYPE) 176 TYPE_CHECKER(Map, MAP_TYPE)
177 TYPE_CHECKER(MutableHeapNumber, MUTABLE_HEAP_NUMBER_TYPE) 177 TYPE_CHECKER(MutableHeapNumber, MUTABLE_HEAP_NUMBER_TYPE)
178 TYPE_CHECKER(Oddball, ODDBALL_TYPE) 178 TYPE_CHECKER(Oddball, ODDBALL_TYPE)
179 TYPE_CHECKER(PropertyCell, PROPERTY_CELL_TYPE) 179 TYPE_CHECKER(PropertyCell, PROPERTY_CELL_TYPE)
180 TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE) 180 TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE)
181 TYPE_CHECKER(SourcePositionTableWithFrameCache, TUPLE2_TYPE)
181 TYPE_CHECKER(Symbol, SYMBOL_TYPE) 182 TYPE_CHECKER(Symbol, SYMBOL_TYPE)
182 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE) 183 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE)
183 TYPE_CHECKER(WeakCell, WEAK_CELL_TYPE) 184 TYPE_CHECKER(WeakCell, WEAK_CELL_TYPE)
184 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) 185 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE)
185 186
186 #define TYPED_ARRAY_TYPE_CHECKER(Type, type, TYPE, ctype, size) \ 187 #define TYPED_ARRAY_TYPE_CHECKER(Type, type, TYPE, ctype, size) \
187 TYPE_CHECKER(Fixed##Type##Array, FIXED_##TYPE##_ARRAY_TYPE) 188 TYPE_CHECKER(Fixed##Type##Array, FIXED_##TYPE##_ARRAY_TYPE)
188 TYPED_ARRAYS(TYPED_ARRAY_TYPE_CHECKER) 189 TYPED_ARRAYS(TYPED_ARRAY_TYPE_CHECKER)
189 #undef TYPED_ARRAY_TYPE_CHECKER 190 #undef TYPED_ARRAY_TYPE_CHECKER
190 191
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 CAST_ACCESSOR(OrderedHashSet) 678 CAST_ACCESSOR(OrderedHashSet)
678 CAST_ACCESSOR(PropertyCell) 679 CAST_ACCESSOR(PropertyCell)
679 CAST_ACCESSOR(TemplateList) 680 CAST_ACCESSOR(TemplateList)
680 CAST_ACCESSOR(RegExpMatchInfo) 681 CAST_ACCESSOR(RegExpMatchInfo)
681 CAST_ACCESSOR(ScopeInfo) 682 CAST_ACCESSOR(ScopeInfo)
682 CAST_ACCESSOR(SeededNumberDictionary) 683 CAST_ACCESSOR(SeededNumberDictionary)
683 CAST_ACCESSOR(SeqOneByteString) 684 CAST_ACCESSOR(SeqOneByteString)
684 CAST_ACCESSOR(SeqString) 685 CAST_ACCESSOR(SeqString)
685 CAST_ACCESSOR(SeqTwoByteString) 686 CAST_ACCESSOR(SeqTwoByteString)
686 CAST_ACCESSOR(SharedFunctionInfo) 687 CAST_ACCESSOR(SharedFunctionInfo)
688 CAST_ACCESSOR(SourcePositionTableWithFrameCache)
687 CAST_ACCESSOR(SlicedString) 689 CAST_ACCESSOR(SlicedString)
688 CAST_ACCESSOR(Smi) 690 CAST_ACCESSOR(Smi)
689 CAST_ACCESSOR(String) 691 CAST_ACCESSOR(String)
690 CAST_ACCESSOR(StringSet) 692 CAST_ACCESSOR(StringSet)
691 CAST_ACCESSOR(StringTable) 693 CAST_ACCESSOR(StringTable)
692 CAST_ACCESSOR(Struct) 694 CAST_ACCESSOR(Struct)
693 CAST_ACCESSOR(Symbol) 695 CAST_ACCESSOR(Symbol)
694 CAST_ACCESSOR(TemplateInfo) 696 CAST_ACCESSOR(TemplateInfo)
695 CAST_ACCESSOR(ThinString) 697 CAST_ACCESSOR(ThinString)
696 CAST_ACCESSOR(UnseededNumberDictionary) 698 CAST_ACCESSOR(UnseededNumberDictionary)
(...skipping 3321 matching lines...) Expand 10 before | Expand all | Expand 10 after
4018 } 4020 }
4019 4021
4020 int BytecodeArray::parameter_count() const { 4022 int BytecodeArray::parameter_count() const {
4021 // Parameter count is stored as the size on stack of the parameters to allow 4023 // Parameter count is stored as the size on stack of the parameters to allow
4022 // it to be used directly by generated code. 4024 // it to be used directly by generated code.
4023 return READ_INT_FIELD(this, kParameterSizeOffset) >> kPointerSizeLog2; 4025 return READ_INT_FIELD(this, kParameterSizeOffset) >> kPointerSizeLog2;
4024 } 4026 }
4025 4027
4026 ACCESSORS(BytecodeArray, constant_pool, FixedArray, kConstantPoolOffset) 4028 ACCESSORS(BytecodeArray, constant_pool, FixedArray, kConstantPoolOffset)
4027 ACCESSORS(BytecodeArray, handler_table, FixedArray, kHandlerTableOffset) 4029 ACCESSORS(BytecodeArray, handler_table, FixedArray, kHandlerTableOffset)
4028 ACCESSORS(BytecodeArray, source_position_table, ByteArray, 4030 ACCESSORS(BytecodeArray, source_position_table, Object,
4029 kSourcePositionTableOffset) 4031 kSourcePositionTableOffset)
4030 4032
4031 Address BytecodeArray::GetFirstBytecodeAddress() { 4033 Address BytecodeArray::GetFirstBytecodeAddress() {
4032 return reinterpret_cast<Address>(this) - kHeapObjectTag + kHeaderSize; 4034 return reinterpret_cast<Address>(this) - kHeapObjectTag + kHeaderSize;
4033 } 4035 }
4034 4036
4037 ByteArray* BytecodeArray::SourcePositionTable() {
4038 Object* maybe_table = source_position_table();
4039 if (maybe_table->IsByteArray()) return ByteArray::cast(maybe_table);
4040 DCHECK(maybe_table->IsSourcePositionTableWithFrameCache());
4041 return SourcePositionTableWithFrameCache::cast(maybe_table)
4042 ->source_position_table();
4043 }
4035 4044
4036 int BytecodeArray::BytecodeArraySize() { return SizeFor(this->length()); } 4045 int BytecodeArray::BytecodeArraySize() { return SizeFor(this->length()); }
4037 4046
4038 int BytecodeArray::SizeIncludingMetadata() { 4047 int BytecodeArray::SizeIncludingMetadata() {
4039 int size = BytecodeArraySize(); 4048 int size = BytecodeArraySize();
4040 size += constant_pool()->Size(); 4049 size += constant_pool()->Size();
4041 size += handler_table()->Size(); 4050 size += handler_table()->Size();
4042 size += source_position_table()->Size(); 4051 size += SourcePositionTable()->Size();
4043 return size; 4052 return size;
4044 } 4053 }
4045 4054
4046 ACCESSORS(FixedTypedArrayBase, base_pointer, Object, kBasePointerOffset) 4055 ACCESSORS(FixedTypedArrayBase, base_pointer, Object, kBasePointerOffset)
4047 4056
4048 4057
4049 void* FixedTypedArrayBase::external_pointer() const { 4058 void* FixedTypedArrayBase::external_pointer() const {
4050 intptr_t ptr = READ_INTPTR_FIELD(this, kExternalPointerOffset); 4059 intptr_t ptr = READ_INTPTR_FIELD(this, kExternalPointerOffset);
4051 return reinterpret_cast<void*>(ptr); 4060 return reinterpret_cast<void*>(ptr);
4052 } 4061 }
(...skipping 1179 matching lines...) Expand 10 before | Expand all | Expand 10 after
5232 int AbstractCode::instruction_size() { 5241 int AbstractCode::instruction_size() {
5233 if (IsCode()) { 5242 if (IsCode()) {
5234 return GetCode()->instruction_size(); 5243 return GetCode()->instruction_size();
5235 } else { 5244 } else {
5236 return GetBytecodeArray()->length(); 5245 return GetBytecodeArray()->length();
5237 } 5246 }
5238 } 5247 }
5239 5248
5240 ByteArray* AbstractCode::source_position_table() { 5249 ByteArray* AbstractCode::source_position_table() {
5241 if (IsCode()) { 5250 if (IsCode()) {
5242 return GetCode()->source_position_table(); 5251 return GetCode()->SourcePositionTable();
5243 } else { 5252 } else {
5244 return GetBytecodeArray()->source_position_table(); 5253 return GetBytecodeArray()->SourcePositionTable();
5245 } 5254 }
5246 } 5255 }
5247 5256
5248 void AbstractCode::set_source_position_table(ByteArray* source_position_table) { 5257 void AbstractCode::set_source_position_table(ByteArray* source_position_table) {
5249 if (IsCode()) { 5258 if (IsCode()) {
5250 GetCode()->set_source_position_table(source_position_table); 5259 GetCode()->set_source_position_table(source_position_table);
5251 } else { 5260 } else {
5252 GetBytecodeArray()->set_source_position_table(source_position_table); 5261 GetBytecodeArray()->set_source_position_table(source_position_table);
5253 } 5262 }
5254 } 5263 }
5255 5264
5265 Object* AbstractCode::stack_frame_cache() {
5266 Object* maybe_table;
5267 if (IsCode()) {
5268 maybe_table = GetCode()->source_position_table();
5269 } else {
5270 maybe_table = GetBytecodeArray()->source_position_table();
5271 }
5272 if (maybe_table->IsSourcePositionTableWithFrameCache()) {
5273 return SourcePositionTableWithFrameCache::cast(maybe_table)
5274 ->stack_frame_cache();
5275 }
5276 return Smi::kZero;
5277 }
5278
5256 int AbstractCode::SizeIncludingMetadata() { 5279 int AbstractCode::SizeIncludingMetadata() {
5257 if (IsCode()) { 5280 if (IsCode()) {
5258 return GetCode()->SizeIncludingMetadata(); 5281 return GetCode()->SizeIncludingMetadata();
5259 } else { 5282 } else {
5260 return GetBytecodeArray()->SizeIncludingMetadata(); 5283 return GetBytecodeArray()->SizeIncludingMetadata();
5261 } 5284 }
5262 } 5285 }
5263 int AbstractCode::ExecutableSize() { 5286 int AbstractCode::ExecutableSize() {
5264 if (IsCode()) { 5287 if (IsCode()) {
5265 return GetCode()->ExecutableSize(); 5288 return GetCode()->ExecutableSize();
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
5818 SMI_ACCESSORS(StackFrameInfo, script_id, kScriptIdIndex) 5841 SMI_ACCESSORS(StackFrameInfo, script_id, kScriptIdIndex)
5819 ACCESSORS(StackFrameInfo, script_name, Object, kScriptNameIndex) 5842 ACCESSORS(StackFrameInfo, script_name, Object, kScriptNameIndex)
5820 ACCESSORS(StackFrameInfo, script_name_or_source_url, Object, 5843 ACCESSORS(StackFrameInfo, script_name_or_source_url, Object,
5821 kScriptNameOrSourceUrlIndex) 5844 kScriptNameOrSourceUrlIndex)
5822 ACCESSORS(StackFrameInfo, function_name, Object, kFunctionNameIndex) 5845 ACCESSORS(StackFrameInfo, function_name, Object, kFunctionNameIndex)
5823 SMI_ACCESSORS(StackFrameInfo, flag, kFlagIndex) 5846 SMI_ACCESSORS(StackFrameInfo, flag, kFlagIndex)
5824 BOOL_ACCESSORS(StackFrameInfo, flag, is_eval, kIsEvalBit) 5847 BOOL_ACCESSORS(StackFrameInfo, flag, is_eval, kIsEvalBit)
5825 BOOL_ACCESSORS(StackFrameInfo, flag, is_constructor, kIsConstructorBit) 5848 BOOL_ACCESSORS(StackFrameInfo, flag, is_constructor, kIsConstructorBit)
5826 BOOL_ACCESSORS(StackFrameInfo, flag, is_wasm, kIsWasmBit) 5849 BOOL_ACCESSORS(StackFrameInfo, flag, is_wasm, kIsWasmBit)
5827 5850
5851 ACCESSORS(SourcePositionTableWithFrameCache, source_position_table, ByteArray,
5852 kSourcePositionTableIndex)
5853 ACCESSORS(SourcePositionTableWithFrameCache, stack_frame_cache,
5854 UnseededNumberDictionary, kStackFrameCacheIndex)
5855
5828 ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset) 5856 ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset)
5829 ACCESSORS(SharedFunctionInfo, optimized_code_map, FixedArray, 5857 ACCESSORS(SharedFunctionInfo, optimized_code_map, FixedArray,
5830 kOptimizedCodeMapOffset) 5858 kOptimizedCodeMapOffset)
5831 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset) 5859 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset)
5832 ACCESSORS(SharedFunctionInfo, feedback_metadata, FeedbackMetadata, 5860 ACCESSORS(SharedFunctionInfo, feedback_metadata, FeedbackMetadata,
5833 kFeedbackMetadataOffset) 5861 kFeedbackMetadataOffset)
5834 SMI_ACCESSORS(SharedFunctionInfo, function_literal_id, kFunctionLiteralIdOffset) 5862 SMI_ACCESSORS(SharedFunctionInfo, function_literal_id, kFunctionLiteralIdOffset)
5835 #if TRACE_MAPS 5863 #if TRACE_MAPS
5836 SMI_ACCESSORS(SharedFunctionInfo, unique_id, kUniqueIdOffset) 5864 SMI_ACCESSORS(SharedFunctionInfo, unique_id, kUniqueIdOffset)
5837 #endif 5865 #endif
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
6644 6672
6645 INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset) 6673 INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset)
6646 INT_ACCESSORS(Code, prologue_offset, kPrologueOffset) 6674 INT_ACCESSORS(Code, prologue_offset, kPrologueOffset)
6647 INT_ACCESSORS(Code, constant_pool_offset, kConstantPoolOffset) 6675 INT_ACCESSORS(Code, constant_pool_offset, kConstantPoolOffset)
6648 #define CODE_ACCESSORS(name, type, offset) \ 6676 #define CODE_ACCESSORS(name, type, offset) \
6649 ACCESSORS_CHECKED2(Code, name, type, offset, true, \ 6677 ACCESSORS_CHECKED2(Code, name, type, offset, true, \
6650 !GetHeap()->InNewSpace(value)) 6678 !GetHeap()->InNewSpace(value))
6651 CODE_ACCESSORS(relocation_info, ByteArray, kRelocationInfoOffset) 6679 CODE_ACCESSORS(relocation_info, ByteArray, kRelocationInfoOffset)
6652 CODE_ACCESSORS(handler_table, FixedArray, kHandlerTableOffset) 6680 CODE_ACCESSORS(handler_table, FixedArray, kHandlerTableOffset)
6653 CODE_ACCESSORS(deoptimization_data, FixedArray, kDeoptimizationDataOffset) 6681 CODE_ACCESSORS(deoptimization_data, FixedArray, kDeoptimizationDataOffset)
6654 CODE_ACCESSORS(source_position_table, ByteArray, kSourcePositionTableOffset) 6682 CODE_ACCESSORS(source_position_table, Object, kSourcePositionTableOffset)
6655 CODE_ACCESSORS(trap_handler_index, Smi, kTrapHandlerIndex) 6683 CODE_ACCESSORS(trap_handler_index, Smi, kTrapHandlerIndex)
6656 CODE_ACCESSORS(raw_type_feedback_info, Object, kTypeFeedbackInfoOffset) 6684 CODE_ACCESSORS(raw_type_feedback_info, Object, kTypeFeedbackInfoOffset)
6657 CODE_ACCESSORS(next_code_link, Object, kNextCodeLinkOffset) 6685 CODE_ACCESSORS(next_code_link, Object, kNextCodeLinkOffset)
6658 #undef CODE_ACCESSORS 6686 #undef CODE_ACCESSORS
6659 6687
6660 void Code::WipeOutHeader() { 6688 void Code::WipeOutHeader() {
6661 WRITE_FIELD(this, kRelocationInfoOffset, NULL); 6689 WRITE_FIELD(this, kRelocationInfoOffset, NULL);
6662 WRITE_FIELD(this, kHandlerTableOffset, NULL); 6690 WRITE_FIELD(this, kHandlerTableOffset, NULL);
6663 WRITE_FIELD(this, kDeoptimizationDataOffset, NULL); 6691 WRITE_FIELD(this, kDeoptimizationDataOffset, NULL);
6664 WRITE_FIELD(this, kSourcePositionTableOffset, NULL); 6692 WRITE_FIELD(this, kSourcePositionTableOffset, NULL);
(...skipping 12 matching lines...) Expand all
6677 } 6705 }
6678 6706
6679 6707
6680 void Code::set_type_feedback_info(Object* value, WriteBarrierMode mode) { 6708 void Code::set_type_feedback_info(Object* value, WriteBarrierMode mode) {
6681 DCHECK(kind() == FUNCTION); 6709 DCHECK(kind() == FUNCTION);
6682 set_raw_type_feedback_info(value, mode); 6710 set_raw_type_feedback_info(value, mode);
6683 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, kTypeFeedbackInfoOffset, 6711 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, kTypeFeedbackInfoOffset,
6684 value, mode); 6712 value, mode);
6685 } 6713 }
6686 6714
6715 ByteArray* Code::SourcePositionTable() {
6716 Object* maybe_table = source_position_table();
6717 if (maybe_table->IsByteArray()) return ByteArray::cast(maybe_table);
6718 DCHECK(maybe_table->IsSourcePositionTableWithFrameCache());
6719 return SourcePositionTableWithFrameCache::cast(maybe_table)
6720 ->source_position_table();
6721 }
6687 6722
6688 uint32_t Code::stub_key() { 6723 uint32_t Code::stub_key() {
6689 DCHECK(IsCodeStubOrIC()); 6724 DCHECK(IsCodeStubOrIC());
6690 Smi* smi_key = Smi::cast(raw_type_feedback_info()); 6725 Smi* smi_key = Smi::cast(raw_type_feedback_info());
6691 return static_cast<uint32_t>(smi_key->value()); 6726 return static_cast<uint32_t>(smi_key->value());
6692 } 6727 }
6693 6728
6694 6729
6695 void Code::set_stub_key(uint32_t key) { 6730 void Code::set_stub_key(uint32_t key) {
6696 DCHECK(IsCodeStubOrIC()); 6731 DCHECK(IsCodeStubOrIC());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
6743 ? static_cast<int>(unwinding_info_end() - instruction_start()) 6778 ? static_cast<int>(unwinding_info_end() - instruction_start())
6744 : instruction_size(); 6779 : instruction_size();
6745 return RoundUp(unpadded_body_size, kObjectAlignment); 6780 return RoundUp(unpadded_body_size, kObjectAlignment);
6746 } 6781 }
6747 6782
6748 int Code::SizeIncludingMetadata() { 6783 int Code::SizeIncludingMetadata() {
6749 int size = CodeSize(); 6784 int size = CodeSize();
6750 size += relocation_info()->Size(); 6785 size += relocation_info()->Size();
6751 size += deoptimization_data()->Size(); 6786 size += deoptimization_data()->Size();
6752 size += handler_table()->Size(); 6787 size += handler_table()->Size();
6753 if (kind() == FUNCTION) size += source_position_table()->Size(); 6788 if (kind() == FUNCTION) {
6789 size += SourcePositionTable()->Size();
6790 }
6754 return size; 6791 return size;
6755 } 6792 }
6756 6793
6757 ByteArray* Code::unchecked_relocation_info() { 6794 ByteArray* Code::unchecked_relocation_info() {
6758 return reinterpret_cast<ByteArray*>(READ_FIELD(this, kRelocationInfoOffset)); 6795 return reinterpret_cast<ByteArray*>(READ_FIELD(this, kRelocationInfoOffset));
6759 } 6796 }
6760 6797
6761 6798
6762 byte* Code::relocation_start() { 6799 byte* Code::relocation_start() {
6763 return unchecked_relocation_info()->GetDataStartAddress(); 6800 return unchecked_relocation_info()->GetDataStartAddress();
(...skipping 1510 matching lines...) Expand 10 before | Expand all | Expand 10 after
8274 #undef WRITE_BYTE_FIELD 8311 #undef WRITE_BYTE_FIELD
8275 #undef NOBARRIER_READ_BYTE_FIELD 8312 #undef NOBARRIER_READ_BYTE_FIELD
8276 #undef NOBARRIER_WRITE_BYTE_FIELD 8313 #undef NOBARRIER_WRITE_BYTE_FIELD
8277 8314
8278 } // namespace internal 8315 } // namespace internal
8279 } // namespace v8 8316 } // namespace v8
8280 8317
8281 #include "src/objects/object-macros-undef.h" 8318 #include "src/objects/object-macros-undef.h"
8282 8319
8283 #endif // V8_OBJECTS_INL_H_ 8320 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/perf-jit.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698