Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 # | 3 # |
| 4 # Copyright 2012 the V8 project authors. All rights reserved. | 4 # Copyright 2012 the V8 project authors. All rights reserved. |
| 5 # Redistribution and use in source and binary forms, with or without | 5 # Redistribution and use in source and binary forms, with or without |
| 6 # modification, are permitted provided that the following conditions are | 6 # modification, are permitted provided that the following conditions are |
| 7 # met: | 7 # met: |
| 8 # | 8 # |
| 9 # * Redistributions of source code must retain the above copyright | 9 # * Redistributions of source code must retain the above copyright |
| 10 # notice, this list of conditions and the following disclaimer. | 10 # notice, this list of conditions and the following disclaimer. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 43 # v8dbg_NAME = VALUE Miscellaneous values | 43 # v8dbg_NAME = VALUE Miscellaneous values |
| 44 # | 44 # |
| 45 # These constants are declared as global integers so that they'll be present in | 45 # These constants are declared as global integers so that they'll be present in |
| 46 # the generated libv8 binary. | 46 # the generated libv8 binary. |
| 47 # | 47 # |
| 48 | 48 |
| 49 import re | 49 import re |
| 50 import sys | 50 import sys |
| 51 | 51 |
| 52 # | 52 # |
| 53 # Miscellaneous constants, tags, and masks used for object identification. | 53 # Miscellaneous constants such as tags and masks used for object identification, |
| 54 # enumeration values used as indexes in internal tables, etc.. | |
| 54 # | 55 # |
| 55 consts_misc = [ | 56 consts_misc = [ |
| 56 { 'name': 'FirstNonstringType', 'value': 'FIRST_NONSTRING_TYPE' }, | 57 { 'name': 'FirstNonstringType', 'value': 'FIRST_NONSTRING_TYPE' }, |
| 57 | 58 |
| 58 { 'name': 'IsNotStringMask', 'value': 'kIsNotStringMask' }, | 59 { 'name': 'IsNotStringMask', 'value': 'kIsNotStringMask' }, |
| 59 { 'name': 'StringTag', 'value': 'kStringTag' }, | 60 { 'name': 'StringTag', 'value': 'kStringTag' }, |
| 60 { 'name': 'NotStringTag', 'value': 'kNotStringTag' }, | 61 { 'name': 'NotStringTag', 'value': 'kNotStringTag' }, |
| 61 | 62 |
| 62 { 'name': 'StringEncodingMask', 'value': 'kStringEncodingMask' }, | 63 { 'name': 'StringEncodingMask', 'value': 'kStringEncodingMask' }, |
| 63 { 'name': 'TwoByteStringTag', 'value': 'kTwoByteStringTag' }, | 64 { 'name': 'TwoByteStringTag', 'value': 'kTwoByteStringTag' }, |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 149 'value': 'Map::DictionaryMap::kShift' }, | 150 'value': 'Map::DictionaryMap::kShift' }, |
| 150 { 'name': 'bit_field3_number_of_own_descriptors_mask', | 151 { 'name': 'bit_field3_number_of_own_descriptors_mask', |
| 151 'value': 'Map::NumberOfOwnDescriptorsBits::kMask' }, | 152 'value': 'Map::NumberOfOwnDescriptorsBits::kMask' }, |
| 152 { 'name': 'bit_field3_number_of_own_descriptors_shift', | 153 { 'name': 'bit_field3_number_of_own_descriptors_shift', |
| 153 'value': 'Map::NumberOfOwnDescriptorsBits::kShift' }, | 154 'value': 'Map::NumberOfOwnDescriptorsBits::kShift' }, |
| 154 | 155 |
| 155 { 'name': 'off_fp_context', | 156 { 'name': 'off_fp_context', |
| 156 'value': 'StandardFrameConstants::kContextOffset' }, | 157 'value': 'StandardFrameConstants::kContextOffset' }, |
| 157 { 'name': 'off_fp_constant_pool', | 158 { 'name': 'off_fp_constant_pool', |
| 158 'value': 'StandardFrameConstants::kConstantPoolOffset' }, | 159 'value': 'StandardFrameConstants::kConstantPoolOffset' }, |
| 160 { 'name': 'off_fp_marker', | |
|
julien.gilli
2016/06/09 18:19:15
This change was not supposed to be submitted, I'll
| |
| 161 'value': 'StandardFrameConstants::kMarkerOffset' }, | |
| 159 { 'name': 'off_fp_function', | 162 { 'name': 'off_fp_function', |
| 160 'value': 'JavaScriptFrameConstants::kFunctionOffset' }, | 163 'value': 'JavaScriptFrameConstants::kFunctionOffset' }, |
| 161 { 'name': 'off_fp_args', | 164 { 'name': 'off_fp_args', |
| 162 'value': 'JavaScriptFrameConstants::kLastParameterOffset' }, | 165 'value': 'JavaScriptFrameConstants::kLastParameterOffset' }, |
| 163 | 166 |
| 164 { 'name': 'scopeinfo_idx_nparams', | 167 { 'name': 'scopeinfo_idx_nparams', |
| 165 'value': 'ScopeInfo::kParameterCount' }, | 168 'value': 'ScopeInfo::kParameterCount' }, |
| 166 { 'name': 'scopeinfo_idx_nstacklocals', | 169 { 'name': 'scopeinfo_idx_nstacklocals', |
| 167 'value': 'ScopeInfo::kStackLocalCount' }, | 170 'value': 'ScopeInfo::kStackLocalCount' }, |
| 168 { 'name': 'scopeinfo_idx_ncontextlocals', | 171 { 'name': 'scopeinfo_idx_ncontextlocals', |
| 169 'value': 'ScopeInfo::kContextLocalCount' }, | 172 'value': 'ScopeInfo::kContextLocalCount' }, |
| 170 { 'name': 'scopeinfo_idx_ncontextglobals', | 173 { 'name': 'scopeinfo_idx_ncontextglobals', |
| 171 'value': 'ScopeInfo::kContextGlobalCount' }, | 174 'value': 'ScopeInfo::kContextGlobalCount' }, |
| 172 { 'name': 'scopeinfo_idx_first_vars', | 175 { 'name': 'scopeinfo_idx_first_vars', |
| 173 'value': 'ScopeInfo::kVariablePartIndex' }, | 176 'value': 'ScopeInfo::kVariablePartIndex' }, |
| 174 | 177 |
| 175 { 'name': 'sharedfunctioninfo_start_position_mask', | 178 { 'name': 'sharedfunctioninfo_start_position_mask', |
| 176 'value': 'SharedFunctionInfo::kStartPositionMask' }, | 179 'value': 'SharedFunctionInfo::kStartPositionMask' }, |
| 177 { 'name': 'sharedfunctioninfo_start_position_shift', | 180 { 'name': 'sharedfunctioninfo_start_position_shift', |
| 178 'value': 'SharedFunctionInfo::kStartPositionShift' }, | 181 'value': 'SharedFunctionInfo::kStartPositionShift' }, |
| 179 | 182 |
| 180 { 'name': 'jsarray_buffer_was_neutered_mask', | 183 { 'name': 'jsarray_buffer_was_neutered_mask', |
| 181 'value': 'JSArrayBuffer::WasNeutered::kMask' }, | 184 'value': 'JSArrayBuffer::WasNeutered::kMask' }, |
| 182 { 'name': 'jsarray_buffer_was_neutered_shift', | 185 { 'name': 'jsarray_buffer_was_neutered_shift', |
| 183 'value': 'JSArrayBuffer::WasNeutered::kShift' }, | 186 'value': 'JSArrayBuffer::WasNeutered::kShift' }, |
| 187 | |
| 188 { 'name': 'context_idx_closure', | |
| 189 'value': 'Context::CLOSURE_INDEX' }, | |
| 190 { 'name': 'context_idx_native', | |
| 191 'value': 'Context::NATIVE_CONTEXT_INDEX' }, | |
| 192 { 'name': 'context_idx_prev', | |
| 193 'value': 'Context::PREVIOUS_INDEX' }, | |
| 194 { 'name': 'context_idx_ext', | |
| 195 'value': 'Context::EXTENSION_INDEX' }, | |
| 196 { 'name': 'context_min_slots', | |
| 197 'value': 'Context::MIN_CONTEXT_SLOTS' }, | |
| 198 | |
| 199 { 'name': 'namedictionaryshape_prefix_size', | |
| 200 'value': 'NameDictionaryShape::kPrefixSize' }, | |
| 201 { 'name': 'namedictionaryshape_entry_size', | |
| 202 'value': 'NameDictionaryShape::kEntrySize' }, | |
| 203 | |
| 204 { 'name': 'namedictionary_prefix_start_index', | |
| 205 'value': 'NameDictionary::kPrefixStartIndex' }, | |
| 206 | |
| 207 { 'name': 'seedednumberdictionaryshape_prefix_size', | |
| 208 'value': 'SeededNumberDictionaryShape::kPrefixSize' }, | |
| 209 | |
| 210 { 'name': 'unseedednumberdictionaryshape_prefix_size', | |
| 211 'value': 'UnseededNumberDictionaryShape::kPrefixSize' }, | |
| 212 | |
| 213 { 'name': 'numberdictionaryshape_entry_size', | |
| 214 'value': 'NumberDictionaryShape::kEntrySize' } | |
| 184 ]; | 215 ]; |
| 185 | 216 |
| 186 # | 217 # |
| 187 # The following useful fields are missing accessors, so we define fake ones. | 218 # The following useful fields are missing accessors, so we define fake ones. |
| 219 # Please note that extra accessors should _only_ be added to expose offsets that | |
| 220 # can be used to access actual V8 objects' properties. They should not be added | |
| 221 # for exposing other values. For instance, enumeration values or class' | |
| 222 # constants should be exposed by adding an entry in the "consts_misc" table, not | |
| 223 # in this "extras_accessors" table. | |
| 188 # | 224 # |
| 189 extras_accessors = [ | 225 extras_accessors = [ |
| 190 'JSFunction, context, Context, kContextOffset', | 226 'JSFunction, context, Context, kContextOffset', |
| 191 'Context, closure_index, int, CLOSURE_INDEX', | |
| 192 'Context, native_context_index, int, NATIVE_CONTEXT_INDEX', | |
| 193 'Context, previous_index, int, PREVIOUS_INDEX', | |
| 194 'Context, min_context_slots, int, MIN_CONTEXT_SLOTS', | |
| 195 'HeapObject, map, Map, kMapOffset', | 227 'HeapObject, map, Map, kMapOffset', |
| 196 'JSObject, elements, Object, kElementsOffset', | 228 'JSObject, elements, Object, kElementsOffset', |
| 197 'FixedArray, data, uintptr_t, kHeaderSize', | 229 'FixedArray, data, uintptr_t, kHeaderSize', |
| 198 'JSArrayBuffer, backing_store, Object, kBackingStoreOffset', | 230 'JSArrayBuffer, backing_store, Object, kBackingStoreOffset', |
| 199 'JSArrayBufferView, byte_offset, Object, kByteOffsetOffset', | 231 'JSArrayBufferView, byte_offset, Object, kByteOffsetOffset', |
| 200 'JSTypedArray, length, Object, kLengthOffset', | 232 'JSTypedArray, length, Object, kLengthOffset', |
| 201 'Map, instance_attributes, int, kInstanceAttributesOffset', | 233 'Map, instance_attributes, int, kInstanceAttributesOffset', |
| 202 'Map, inobject_properties_or_constructor_function_index, int, kInObjectPrope rtiesOrConstructorFunctionIndexOffset', | 234 'Map, inobject_properties_or_constructor_function_index, int, kInObjectPrope rtiesOrConstructorFunctionIndexOffset', |
| 203 'Map, instance_size, int, kInstanceSizeOffset', | 235 'Map, instance_size, int, kInstanceSizeOffset', |
| 204 'Map, bit_field, char, kBitFieldOffset', | 236 'Map, bit_field, char, kBitFieldOffset', |
| 205 'Map, bit_field2, char, kBitField2Offset', | 237 'Map, bit_field2, char, kBitField2Offset', |
| 206 'Map, bit_field3, int, kBitField3Offset', | 238 'Map, bit_field3, int, kBitField3Offset', |
| 207 'Map, prototype, Object, kPrototypeOffset', | 239 'Map, prototype, Object, kPrototypeOffset', |
| 208 'NameDictionaryShape, prefix_size, int, kPrefixSize', | |
| 209 'NameDictionaryShape, entry_size, int, kEntrySize', | |
| 210 'NameDictionary, prefix_start_index, int, kPrefixStartIndex', | |
| 211 'SeededNumberDictionaryShape, prefix_size, int, kPrefixSize', | |
| 212 'UnseededNumberDictionaryShape, prefix_size, int, kPrefixSize', | |
| 213 'NumberDictionaryShape, entry_size, int, kEntrySize', | |
| 214 'Oddball, kind_offset, int, kKindOffset', | 240 'Oddball, kind_offset, int, kKindOffset', |
| 215 'HeapNumber, value, double, kValueOffset', | 241 'HeapNumber, value, double, kValueOffset', |
| 216 'ConsString, first, String, kFirstOffset', | 242 'ConsString, first, String, kFirstOffset', |
| 217 'ConsString, second, String, kSecondOffset', | 243 'ConsString, second, String, kSecondOffset', |
| 218 'ExternalString, resource, Object, kResourceOffset', | 244 'ExternalString, resource, Object, kResourceOffset', |
| 219 'SeqOneByteString, chars, char, kHeaderSize', | 245 'SeqOneByteString, chars, char, kHeaderSize', |
| 220 'SeqTwoByteString, chars, char, kHeaderSize', | 246 'SeqTwoByteString, chars, char, kHeaderSize', |
| 221 'SharedFunctionInfo, code, Code, kCodeOffset', | 247 'SharedFunctionInfo, code, Code, kCodeOffset', |
| 222 'SharedFunctionInfo, scope_info, ScopeInfo, kScopeInfoOffset', | 248 'SharedFunctionInfo, scope_info, ScopeInfo, kScopeInfoOffset', |
| 223 'SlicedString, parent, String, kParentOffset', | 249 'SlicedString, parent, String, kParentOffset', |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 247 fields = []; # field declarations | 273 fields = []; # field declarations |
| 248 | 274 |
| 249 header = ''' | 275 header = ''' |
| 250 /* | 276 /* |
| 251 * This file is generated by %s. Do not edit directly. | 277 * This file is generated by %s. Do not edit directly. |
| 252 */ | 278 */ |
| 253 | 279 |
| 254 #include "src/v8.h" | 280 #include "src/v8.h" |
| 255 #include "src/frames.h" | 281 #include "src/frames.h" |
| 256 #include "src/frames-inl.h" /* for architecture-specific frame constants */ | 282 #include "src/frames-inl.h" /* for architecture-specific frame constants */ |
| 283 #include "src/contexts.h" | |
| 257 | 284 |
| 258 using namespace v8::internal; | 285 using namespace v8::internal; |
| 259 | 286 |
| 260 extern "C" { | 287 extern "C" { |
| 261 | 288 |
| 262 /* stack frame constants */ | 289 /* stack frame constants */ |
| 263 #define FRAME_CONST(value, klass) \ | 290 #define FRAME_CONST(value, klass) \ |
| 264 int v8dbg_frametype_##klass = StackFrame::value; | 291 int v8dbg_frametype_##klass = StackFrame::value; |
| 265 | 292 |
| 266 STACK_FRAME_TYPE_LIST(FRAME_CONST) | 293 STACK_FRAME_TYPE_LIST(FRAME_CONST) |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 601 | 628 |
| 602 out.write(footer); | 629 out.write(footer); |
| 603 | 630 |
| 604 if (len(sys.argv) < 4): | 631 if (len(sys.argv) < 4): |
| 605 print('usage: %s output.cc objects.h objects-inl.h' % sys.argv[0]); | 632 print('usage: %s output.cc objects.h objects-inl.h' % sys.argv[0]); |
| 606 sys.exit(2); | 633 sys.exit(2); |
| 607 | 634 |
| 608 load_objects(); | 635 load_objects(); |
| 609 load_fields(); | 636 load_fields(); |
| 610 emit_config(); | 637 emit_config(); |
| OLD | NEW |