Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
| 6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
| 10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 369 V(FIXED_INT8_ARRAY_TYPE) \ | 369 V(FIXED_INT8_ARRAY_TYPE) \ |
| 370 V(FIXED_UINT8_ARRAY_TYPE) \ | 370 V(FIXED_UINT8_ARRAY_TYPE) \ |
| 371 V(FIXED_INT16_ARRAY_TYPE) \ | 371 V(FIXED_INT16_ARRAY_TYPE) \ |
| 372 V(FIXED_UINT16_ARRAY_TYPE) \ | 372 V(FIXED_UINT16_ARRAY_TYPE) \ |
| 373 V(FIXED_INT32_ARRAY_TYPE) \ | 373 V(FIXED_INT32_ARRAY_TYPE) \ |
| 374 V(FIXED_UINT32_ARRAY_TYPE) \ | 374 V(FIXED_UINT32_ARRAY_TYPE) \ |
| 375 V(FIXED_FLOAT32_ARRAY_TYPE) \ | 375 V(FIXED_FLOAT32_ARRAY_TYPE) \ |
| 376 V(FIXED_FLOAT64_ARRAY_TYPE) \ | 376 V(FIXED_FLOAT64_ARRAY_TYPE) \ |
| 377 V(FIXED_UINT8_CLAMPED_ARRAY_TYPE) \ | 377 V(FIXED_UINT8_CLAMPED_ARRAY_TYPE) \ |
| 378 \ | 378 \ |
| 379 V(FIXED_DOUBLE_ARRAY_TYPE) \ | |
| 380 V(FIXED_ARRAY_TYPE) \ | |
| 381 \ | |
| 379 V(FILLER_TYPE) \ | 382 V(FILLER_TYPE) \ |
| 380 \ | 383 \ |
| 381 V(DECLARED_ACCESSOR_DESCRIPTOR_TYPE) \ | 384 V(DECLARED_ACCESSOR_DESCRIPTOR_TYPE) \ |
| 382 V(DECLARED_ACCESSOR_INFO_TYPE) \ | 385 V(DECLARED_ACCESSOR_INFO_TYPE) \ |
| 383 V(EXECUTABLE_ACCESSOR_INFO_TYPE) \ | 386 V(EXECUTABLE_ACCESSOR_INFO_TYPE) \ |
| 384 V(ACCESSOR_PAIR_TYPE) \ | 387 V(ACCESSOR_PAIR_TYPE) \ |
| 385 V(ACCESS_CHECK_INFO_TYPE) \ | 388 V(ACCESS_CHECK_INFO_TYPE) \ |
| 386 V(INTERCEPTOR_INFO_TYPE) \ | 389 V(INTERCEPTOR_INFO_TYPE) \ |
| 387 V(CALL_HANDLER_INFO_TYPE) \ | 390 V(CALL_HANDLER_INFO_TYPE) \ |
| 388 V(FUNCTION_TEMPLATE_INFO_TYPE) \ | 391 V(FUNCTION_TEMPLATE_INFO_TYPE) \ |
| 389 V(OBJECT_TEMPLATE_INFO_TYPE) \ | 392 V(OBJECT_TEMPLATE_INFO_TYPE) \ |
| 390 V(SIGNATURE_INFO_TYPE) \ | 393 V(SIGNATURE_INFO_TYPE) \ |
| 391 V(TYPE_SWITCH_INFO_TYPE) \ | 394 V(TYPE_SWITCH_INFO_TYPE) \ |
| 392 V(ALLOCATION_MEMENTO_TYPE) \ | 395 V(ALLOCATION_MEMENTO_TYPE) \ |
| 393 V(ALLOCATION_SITE_TYPE) \ | 396 V(ALLOCATION_SITE_TYPE) \ |
| 394 V(SCRIPT_TYPE) \ | 397 V(SCRIPT_TYPE) \ |
| 395 V(CODE_CACHE_TYPE) \ | 398 V(CODE_CACHE_TYPE) \ |
| 396 V(POLYMORPHIC_CODE_CACHE_TYPE) \ | 399 V(POLYMORPHIC_CODE_CACHE_TYPE) \ |
| 397 V(TYPE_FEEDBACK_INFO_TYPE) \ | 400 V(TYPE_FEEDBACK_INFO_TYPE) \ |
| 398 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ | 401 V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
| 399 V(BOX_TYPE) \ | 402 V(BOX_TYPE) \ |
| 400 \ | 403 \ |
| 401 V(FIXED_ARRAY_TYPE) \ | |
| 402 V(FIXED_DOUBLE_ARRAY_TYPE) \ | |
| 403 V(CONSTANT_POOL_ARRAY_TYPE) \ | 404 V(CONSTANT_POOL_ARRAY_TYPE) \ |
| 404 V(SHARED_FUNCTION_INFO_TYPE) \ | 405 V(SHARED_FUNCTION_INFO_TYPE) \ |
| 405 \ | 406 \ |
| 406 V(JS_MESSAGE_OBJECT_TYPE) \ | 407 V(JS_MESSAGE_OBJECT_TYPE) \ |
| 407 \ | 408 \ |
| 408 V(JS_VALUE_TYPE) \ | 409 V(JS_VALUE_TYPE) \ |
| 409 V(JS_DATE_TYPE) \ | 410 V(JS_DATE_TYPE) \ |
| 410 V(JS_OBJECT_TYPE) \ | 411 V(JS_OBJECT_TYPE) \ |
| 411 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ | 412 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
| 412 V(JS_GENERATOR_OBJECT_TYPE) \ | 413 V(JS_GENERATOR_OBJECT_TYPE) \ |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 674 ODDBALL_TYPE, | 675 ODDBALL_TYPE, |
| 675 CELL_TYPE, | 676 CELL_TYPE, |
| 676 PROPERTY_CELL_TYPE, | 677 PROPERTY_CELL_TYPE, |
| 677 | 678 |
| 678 // "Data", objects that cannot contain non-map-word pointers to heap | 679 // "Data", objects that cannot contain non-map-word pointers to heap |
| 679 // objects. | 680 // objects. |
| 680 HEAP_NUMBER_TYPE, | 681 HEAP_NUMBER_TYPE, |
| 681 FOREIGN_TYPE, | 682 FOREIGN_TYPE, |
| 682 BYTE_ARRAY_TYPE, | 683 BYTE_ARRAY_TYPE, |
| 683 FREE_SPACE_TYPE, | 684 FREE_SPACE_TYPE, |
| 685 FILLER_TYPE, | |
| 684 | 686 |
| 685 EXTERNAL_INT8_ARRAY_TYPE, // FIRST_EXTERNAL_ARRAY_TYPE | 687 EXTERNAL_INT8_ARRAY_TYPE, // FIRST_EXTERNAL_ARRAY_TYPE, |
| 688 // FIRST_FIXED_ARRAY_TYPE | |
| 686 EXTERNAL_UINT8_ARRAY_TYPE, | 689 EXTERNAL_UINT8_ARRAY_TYPE, |
| 687 EXTERNAL_INT16_ARRAY_TYPE, | 690 EXTERNAL_INT16_ARRAY_TYPE, |
| 688 EXTERNAL_UINT16_ARRAY_TYPE, | 691 EXTERNAL_UINT16_ARRAY_TYPE, |
| 689 EXTERNAL_INT32_ARRAY_TYPE, | 692 EXTERNAL_INT32_ARRAY_TYPE, |
| 690 EXTERNAL_UINT32_ARRAY_TYPE, | 693 EXTERNAL_UINT32_ARRAY_TYPE, |
| 691 EXTERNAL_FLOAT32_ARRAY_TYPE, | 694 EXTERNAL_FLOAT32_ARRAY_TYPE, |
| 692 EXTERNAL_FLOAT64_ARRAY_TYPE, | 695 EXTERNAL_FLOAT64_ARRAY_TYPE, |
| 693 EXTERNAL_UINT8_CLAMPED_ARRAY_TYPE, // LAST_EXTERNAL_ARRAY_TYPE | 696 EXTERNAL_UINT8_CLAMPED_ARRAY_TYPE, // LAST_EXTERNAL_ARRAY_TYPE |
| 694 | 697 |
| 695 FIXED_INT8_ARRAY_TYPE, // FIRST_FIXED_TYPED_ARRAY_TYPE | 698 FIXED_INT8_ARRAY_TYPE, // FIRST_FIXED_TYPED_ARRAY_TYPE |
| 696 FIXED_UINT8_ARRAY_TYPE, | 699 FIXED_UINT8_ARRAY_TYPE, |
| 697 FIXED_INT16_ARRAY_TYPE, | 700 FIXED_INT16_ARRAY_TYPE, |
| 698 FIXED_UINT16_ARRAY_TYPE, | 701 FIXED_UINT16_ARRAY_TYPE, |
| 699 FIXED_INT32_ARRAY_TYPE, | 702 FIXED_INT32_ARRAY_TYPE, |
| 700 FIXED_UINT32_ARRAY_TYPE, | 703 FIXED_UINT32_ARRAY_TYPE, |
| 701 FIXED_FLOAT32_ARRAY_TYPE, | 704 FIXED_FLOAT32_ARRAY_TYPE, |
| 702 FIXED_FLOAT64_ARRAY_TYPE, | 705 FIXED_FLOAT64_ARRAY_TYPE, |
| 703 FIXED_UINT8_CLAMPED_ARRAY_TYPE, // LAST_FIXED_TYPED_ARRAY_TYPE | 706 FIXED_UINT8_CLAMPED_ARRAY_TYPE, // LAST_FIXED_TYPED_ARRAY_TYPE |
| 704 | 707 |
| 705 FIXED_DOUBLE_ARRAY_TYPE, | 708 FIXED_DOUBLE_ARRAY_TYPE, // LAST_DATA_TYPE |
| 706 FILLER_TYPE, // LAST_DATA_TYPE | 709 FIXED_ARRAY_TYPE, // LAST_FIXED_ARRAY_TYPE |
| 707 | 710 |
| 708 // Structs. | 711 // Structs. |
| 709 DECLARED_ACCESSOR_DESCRIPTOR_TYPE, | 712 DECLARED_ACCESSOR_DESCRIPTOR_TYPE, |
| 710 DECLARED_ACCESSOR_INFO_TYPE, | 713 DECLARED_ACCESSOR_INFO_TYPE, |
| 711 EXECUTABLE_ACCESSOR_INFO_TYPE, | 714 EXECUTABLE_ACCESSOR_INFO_TYPE, |
| 712 ACCESSOR_PAIR_TYPE, | 715 ACCESSOR_PAIR_TYPE, |
| 713 ACCESS_CHECK_INFO_TYPE, | 716 ACCESS_CHECK_INFO_TYPE, |
| 714 INTERCEPTOR_INFO_TYPE, | 717 INTERCEPTOR_INFO_TYPE, |
| 715 CALL_HANDLER_INFO_TYPE, | 718 CALL_HANDLER_INFO_TYPE, |
| 716 FUNCTION_TEMPLATE_INFO_TYPE, | 719 FUNCTION_TEMPLATE_INFO_TYPE, |
| 717 OBJECT_TEMPLATE_INFO_TYPE, | 720 OBJECT_TEMPLATE_INFO_TYPE, |
| 718 SIGNATURE_INFO_TYPE, | 721 SIGNATURE_INFO_TYPE, |
| 719 TYPE_SWITCH_INFO_TYPE, | 722 TYPE_SWITCH_INFO_TYPE, |
| 720 ALLOCATION_SITE_TYPE, | 723 ALLOCATION_SITE_TYPE, |
| 721 ALLOCATION_MEMENTO_TYPE, | 724 ALLOCATION_MEMENTO_TYPE, |
| 722 SCRIPT_TYPE, | 725 SCRIPT_TYPE, |
| 723 CODE_CACHE_TYPE, | 726 CODE_CACHE_TYPE, |
| 724 POLYMORPHIC_CODE_CACHE_TYPE, | 727 POLYMORPHIC_CODE_CACHE_TYPE, |
| 725 TYPE_FEEDBACK_INFO_TYPE, | 728 TYPE_FEEDBACK_INFO_TYPE, |
| 726 ALIASED_ARGUMENTS_ENTRY_TYPE, | 729 ALIASED_ARGUMENTS_ENTRY_TYPE, |
| 727 BOX_TYPE, | 730 BOX_TYPE, |
| 728 DEBUG_INFO_TYPE, | 731 DEBUG_INFO_TYPE, |
| 729 BREAK_POINT_INFO_TYPE, | 732 BREAK_POINT_INFO_TYPE, |
| 730 | 733 |
| 731 FIXED_ARRAY_TYPE, | |
| 732 CONSTANT_POOL_ARRAY_TYPE, | 734 CONSTANT_POOL_ARRAY_TYPE, |
| 733 SHARED_FUNCTION_INFO_TYPE, | 735 SHARED_FUNCTION_INFO_TYPE, |
| 734 | 736 |
| 735 // All the following types are subtypes of JSReceiver, which corresponds to | 737 // All the following types are subtypes of JSReceiver, which corresponds to |
| 736 // objects in the JS sense. The first and the last type in this range are | 738 // objects in the JS sense. The first and the last type in this range are |
| 737 // the two forms of function. This organization enables using the same | 739 // the two forms of function. This organization enables using the same |
| 738 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the | 740 // compares for checking the JS_RECEIVER/SPEC_OBJECT range and the |
| 739 // NONCALLABLE_JS_OBJECT range. | 741 // NONCALLABLE_JS_OBJECT range. |
| 740 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE | 742 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE |
| 741 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE | 743 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 772 LAST_NAME_TYPE = SYMBOL_TYPE, | 774 LAST_NAME_TYPE = SYMBOL_TYPE, |
| 773 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, | 775 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, |
| 774 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, | 776 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, |
| 775 FIRST_NONSTRING_TYPE = SYMBOL_TYPE, | 777 FIRST_NONSTRING_TYPE = SYMBOL_TYPE, |
| 776 // Boundaries for testing for an external array. | 778 // Boundaries for testing for an external array. |
| 777 FIRST_EXTERNAL_ARRAY_TYPE = EXTERNAL_INT8_ARRAY_TYPE, | 779 FIRST_EXTERNAL_ARRAY_TYPE = EXTERNAL_INT8_ARRAY_TYPE, |
| 778 LAST_EXTERNAL_ARRAY_TYPE = EXTERNAL_UINT8_CLAMPED_ARRAY_TYPE, | 780 LAST_EXTERNAL_ARRAY_TYPE = EXTERNAL_UINT8_CLAMPED_ARRAY_TYPE, |
| 779 // Boundaries for testing for a fixed typed array. | 781 // Boundaries for testing for a fixed typed array. |
| 780 FIRST_FIXED_TYPED_ARRAY_TYPE = FIXED_INT8_ARRAY_TYPE, | 782 FIRST_FIXED_TYPED_ARRAY_TYPE = FIXED_INT8_ARRAY_TYPE, |
| 781 LAST_FIXED_TYPED_ARRAY_TYPE = FIXED_UINT8_CLAMPED_ARRAY_TYPE, | 783 LAST_FIXED_TYPED_ARRAY_TYPE = FIXED_UINT8_CLAMPED_ARRAY_TYPE, |
| 784 // Boundaries for testing (regular, typed, external) typed arrays. | |
| 785 FIRST_FIXED_ARRAY_TYPE = EXTERNAL_INT8_ARRAY_TYPE, | |
| 786 LAST_FIXED_ARRAY_TYPE = FIXED_ARRAY_TYPE, | |
| 782 // Boundary for promotion to old data space/old pointer space. | 787 // Boundary for promotion to old data space/old pointer space. |
| 783 LAST_DATA_TYPE = FILLER_TYPE, | 788 LAST_DATA_TYPE = FIXED_DOUBLE_ARRAY_TYPE, |
| 784 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). | 789 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). |
| 785 // Note that there is no range for JSObject or JSProxy, since their subtypes | 790 // Note that there is no range for JSObject or JSProxy, since their subtypes |
| 786 // are not continuous in this enum! The enum ranges instead reflect the | 791 // are not continuous in this enum! The enum ranges instead reflect the |
| 787 // external class names, where proxies are treated as either ordinary objects, | 792 // external class names, where proxies are treated as either ordinary objects, |
| 788 // or functions. | 793 // or functions. |
| 789 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, | 794 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, |
| 790 LAST_JS_RECEIVER_TYPE = LAST_TYPE, | 795 LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
| 791 // Boundaries for testing the types represented as JSObject | 796 // Boundaries for testing the types represented as JSObject |
| 792 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, | 797 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, |
| 793 LAST_JS_OBJECT_TYPE = LAST_TYPE, | 798 LAST_JS_OBJECT_TYPE = LAST_TYPE, |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1176 V(kNonSmiIndex, "Non-smi index") \ | 1181 V(kNonSmiIndex, "Non-smi index") \ |
| 1177 V(kNonSmiKeyInArrayLiteral, "Non-smi key in array literal") \ | 1182 V(kNonSmiKeyInArrayLiteral, "Non-smi key in array literal") \ |
| 1178 V(kNonSmiValue, "Non-smi value") \ | 1183 V(kNonSmiValue, "Non-smi value") \ |
| 1179 V(kNonObject, "Non-object value") \ | 1184 V(kNonObject, "Non-object value") \ |
| 1180 V(kNotEnoughVirtualRegistersForValues, \ | 1185 V(kNotEnoughVirtualRegistersForValues, \ |
| 1181 "Not enough virtual registers for values") \ | 1186 "Not enough virtual registers for values") \ |
| 1182 V(kNotEnoughSpillSlotsForOsr, \ | 1187 V(kNotEnoughSpillSlotsForOsr, \ |
| 1183 "Not enough spill slots for OSR") \ | 1188 "Not enough spill slots for OSR") \ |
| 1184 V(kNotEnoughVirtualRegistersRegalloc, \ | 1189 V(kNotEnoughVirtualRegistersRegalloc, \ |
| 1185 "Not enough virtual registers (regalloc)") \ | 1190 "Not enough virtual registers (regalloc)") \ |
| 1191 V(kObjectAccessCheckFailed, "HObjectAccess check failed") \ | |
| 1186 V(kObjectFoundInSmiOnlyArray, "Object found in smi-only array") \ | 1192 V(kObjectFoundInSmiOnlyArray, "Object found in smi-only array") \ |
| 1187 V(kObjectLiteralWithComplexProperty, \ | 1193 V(kObjectLiteralWithComplexProperty, \ |
| 1188 "Object literal with complex property") \ | 1194 "Object literal with complex property") \ |
| 1189 V(kOddballInStringTableIsNotUndefinedOrTheHole, \ | 1195 V(kOddballInStringTableIsNotUndefinedOrTheHole, \ |
| 1190 "Oddball in string table is not undefined or the hole") \ | 1196 "Oddball in string table is not undefined or the hole") \ |
| 1191 V(kOffsetOutOfRange, "Offset out of range") \ | 1197 V(kOffsetOutOfRange, "Offset out of range") \ |
| 1192 V(kOperandIsASmiAndNotAName, "Operand is a smi and not a name") \ | 1198 V(kOperandIsASmiAndNotAName, "Operand is a smi and not a name") \ |
| 1193 V(kOperandIsASmiAndNotAString, "Operand is a smi and not a string") \ | 1199 V(kOperandIsASmiAndNotAString, "Operand is a smi and not a string") \ |
| 1194 V(kOperandIsASmi, "Operand is a smi") \ | 1200 V(kOperandIsASmi, "Operand is a smi") \ |
| 1195 V(kOperandIsNotAName, "Operand is not a name") \ | 1201 V(kOperandIsNotAName, "Operand is not a name") \ |
| (...skipping 5116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6312 | 6318 |
| 6313 inline bool has_dictionary_elements() { | 6319 inline bool has_dictionary_elements() { |
| 6314 return IsDictionaryElementsKind(elements_kind()); | 6320 return IsDictionaryElementsKind(elements_kind()); |
| 6315 } | 6321 } |
| 6316 | 6322 |
| 6317 inline bool has_slow_elements_kind() { | 6323 inline bool has_slow_elements_kind() { |
| 6318 return elements_kind() == DICTIONARY_ELEMENTS | 6324 return elements_kind() == DICTIONARY_ELEMENTS |
| 6319 || elements_kind() == SLOPPY_ARGUMENTS_ELEMENTS; | 6325 || elements_kind() == SLOPPY_ARGUMENTS_ELEMENTS; |
| 6320 } | 6326 } |
| 6321 | 6327 |
| 6328 inline bool has_elements() { | |
| 6329 return static_cast<uint32_t>(instance_type()) >= FIRST_JS_OBJECT_TYPE; | |
|
Igor Sheludko
2014/06/05 09:04:30
I think you can use IsJSObjectMap() predicate here
Jakob Kummerow
2014/06/05 14:33:31
Done. Thanks for the pointer :-)
| |
| 6330 } | |
| 6331 | |
| 6322 static bool IsValidElementsTransition(ElementsKind from_kind, | 6332 static bool IsValidElementsTransition(ElementsKind from_kind, |
| 6323 ElementsKind to_kind); | 6333 ElementsKind to_kind); |
| 6324 | 6334 |
| 6325 // Returns true if the current map doesn't have DICTIONARY_ELEMENTS but if a | 6335 // Returns true if the current map doesn't have DICTIONARY_ELEMENTS but if a |
| 6326 // map with DICTIONARY_ELEMENTS was found in the prototype chain. | 6336 // map with DICTIONARY_ELEMENTS was found in the prototype chain. |
| 6327 bool DictionaryElementsInPrototypeChainOnly(); | 6337 bool DictionaryElementsInPrototypeChainOnly(); |
| 6328 | 6338 |
| 6329 inline bool HasTransitionArray(); | 6339 inline bool HasTransitionArray(); |
| 6330 inline bool HasElementsTransition(); | 6340 inline bool HasElementsTransition(); |
| 6331 inline Map* elements_transition_map(); | 6341 inline Map* elements_transition_map(); |
| (...skipping 4912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11244 } else { | 11254 } else { |
| 11245 value &= ~(1 << bit_position); | 11255 value &= ~(1 << bit_position); |
| 11246 } | 11256 } |
| 11247 return value; | 11257 return value; |
| 11248 } | 11258 } |
| 11249 }; | 11259 }; |
| 11250 | 11260 |
| 11251 } } // namespace v8::internal | 11261 } } // namespace v8::internal |
| 11252 | 11262 |
| 11253 #endif // V8_OBJECTS_H_ | 11263 #endif // V8_OBJECTS_H_ |
| OLD | NEW |