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

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

Issue 6903060: Version 3.3.2.... (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: '' Created 9 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 | Annotate | Revision Log
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 } 399 }
400 400
401 401
402 bool Object::IsExternalFloatArray() { 402 bool Object::IsExternalFloatArray() {
403 return Object::IsHeapObject() && 403 return Object::IsHeapObject() &&
404 HeapObject::cast(this)->map()->instance_type() == 404 HeapObject::cast(this)->map()->instance_type() ==
405 EXTERNAL_FLOAT_ARRAY_TYPE; 405 EXTERNAL_FLOAT_ARRAY_TYPE;
406 } 406 }
407 407
408 408
409 bool Object::IsExternalDoubleArray() {
410 return Object::IsHeapObject() &&
411 HeapObject::cast(this)->map()->instance_type() ==
412 EXTERNAL_DOUBLE_ARRAY_TYPE;
413 }
414
415
409 bool MaybeObject::IsFailure() { 416 bool MaybeObject::IsFailure() {
410 return HAS_FAILURE_TAG(this); 417 return HAS_FAILURE_TAG(this);
411 } 418 }
412 419
413 420
414 bool MaybeObject::IsRetryAfterGC() { 421 bool MaybeObject::IsRetryAfterGC() {
415 return HAS_FAILURE_TAG(this) 422 return HAS_FAILURE_TAG(this)
416 && Failure::cast(this)->type() == Failure::RETRY_AFTER_GC; 423 && Failure::cast(this)->type() == Failure::RETRY_AFTER_GC;
417 } 424 }
418 425
(...skipping 1475 matching lines...) Expand 10 before | Expand all | Expand 10 after
1894 CAST_ACCESSOR(Proxy) 1901 CAST_ACCESSOR(Proxy)
1895 CAST_ACCESSOR(ByteArray) 1902 CAST_ACCESSOR(ByteArray)
1896 CAST_ACCESSOR(ExternalArray) 1903 CAST_ACCESSOR(ExternalArray)
1897 CAST_ACCESSOR(ExternalByteArray) 1904 CAST_ACCESSOR(ExternalByteArray)
1898 CAST_ACCESSOR(ExternalUnsignedByteArray) 1905 CAST_ACCESSOR(ExternalUnsignedByteArray)
1899 CAST_ACCESSOR(ExternalShortArray) 1906 CAST_ACCESSOR(ExternalShortArray)
1900 CAST_ACCESSOR(ExternalUnsignedShortArray) 1907 CAST_ACCESSOR(ExternalUnsignedShortArray)
1901 CAST_ACCESSOR(ExternalIntArray) 1908 CAST_ACCESSOR(ExternalIntArray)
1902 CAST_ACCESSOR(ExternalUnsignedIntArray) 1909 CAST_ACCESSOR(ExternalUnsignedIntArray)
1903 CAST_ACCESSOR(ExternalFloatArray) 1910 CAST_ACCESSOR(ExternalFloatArray)
1911 CAST_ACCESSOR(ExternalDoubleArray)
1904 CAST_ACCESSOR(ExternalPixelArray) 1912 CAST_ACCESSOR(ExternalPixelArray)
1905 CAST_ACCESSOR(Struct) 1913 CAST_ACCESSOR(Struct)
1906 1914
1907 1915
1908 #define MAKE_STRUCT_CAST(NAME, Name, name) CAST_ACCESSOR(Name) 1916 #define MAKE_STRUCT_CAST(NAME, Name, name) CAST_ACCESSOR(Name)
1909 STRUCT_LIST(MAKE_STRUCT_CAST) 1917 STRUCT_LIST(MAKE_STRUCT_CAST)
1910 #undef MAKE_STRUCT_CAST 1918 #undef MAKE_STRUCT_CAST
1911 1919
1912 1920
1913 template <typename Shape, typename Key> 1921 template <typename Shape, typename Key>
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 } 2316 }
2309 2317
2310 2318
2311 void ExternalFloatArray::set(int index, float value) { 2319 void ExternalFloatArray::set(int index, float value) {
2312 ASSERT((index >= 0) && (index < this->length())); 2320 ASSERT((index >= 0) && (index < this->length()));
2313 float* ptr = static_cast<float*>(external_pointer()); 2321 float* ptr = static_cast<float*>(external_pointer());
2314 ptr[index] = value; 2322 ptr[index] = value;
2315 } 2323 }
2316 2324
2317 2325
2326 double ExternalDoubleArray::get(int index) {
2327 ASSERT((index >= 0) && (index < this->length()));
2328 double* ptr = static_cast<double*>(external_pointer());
2329 return ptr[index];
2330 }
2331
2332
2333 void ExternalDoubleArray::set(int index, double value) {
2334 ASSERT((index >= 0) && (index < this->length()));
2335 double* ptr = static_cast<double*>(external_pointer());
2336 ptr[index] = value;
2337 }
2338
2339
2318 int Map::visitor_id() { 2340 int Map::visitor_id() {
2319 return READ_BYTE_FIELD(this, kVisitorIdOffset); 2341 return READ_BYTE_FIELD(this, kVisitorIdOffset);
2320 } 2342 }
2321 2343
2322 2344
2323 void Map::set_visitor_id(int id) { 2345 void Map::set_visitor_id(int id) {
2324 ASSERT(0 <= id && id < 256); 2346 ASSERT(0 <= id && id < 256);
2325 WRITE_BYTE_FIELD(this, kVisitorIdOffset, static_cast<byte>(id)); 2347 WRITE_BYTE_FIELD(this, kVisitorIdOffset, static_cast<byte>(id));
2326 } 2348 }
2327 2349
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
2508 bool Map::is_shared() { 2530 bool Map::is_shared() {
2509 return ((1 << kIsShared) & bit_field2()) != 0; 2531 return ((1 << kIsShared) & bit_field2()) != 0;
2510 } 2532 }
2511 2533
2512 2534
2513 JSFunction* Map::unchecked_constructor() { 2535 JSFunction* Map::unchecked_constructor() {
2514 return reinterpret_cast<JSFunction*>(READ_FIELD(this, kConstructorOffset)); 2536 return reinterpret_cast<JSFunction*>(READ_FIELD(this, kConstructorOffset));
2515 } 2537 }
2516 2538
2517 2539
2540 FixedArray* Map::unchecked_prototype_transitions() {
2541 return reinterpret_cast<FixedArray*>(
2542 READ_FIELD(this, kPrototypeTransitionsOffset));
2543 }
2544
2545
2518 Code::Flags Code::flags() { 2546 Code::Flags Code::flags() {
2519 return static_cast<Flags>(READ_INT_FIELD(this, kFlagsOffset)); 2547 return static_cast<Flags>(READ_INT_FIELD(this, kFlagsOffset));
2520 } 2548 }
2521 2549
2522 2550
2523 void Code::set_flags(Code::Flags flags) { 2551 void Code::set_flags(Code::Flags flags) {
2524 STATIC_ASSERT(Code::NUMBER_OF_KINDS <= (kFlagsKindMask >> kFlagsKindShift)+1); 2552 STATIC_ASSERT(Code::NUMBER_OF_KINDS <= (kFlagsKindMask >> kFlagsKindShift)+1);
2525 // Make sure that all call stubs have an arguments count. 2553 // Make sure that all call stubs have an arguments count.
2526 ASSERT((ExtractKindFromFlags(flags) != CALL_IC && 2554 ASSERT((ExtractKindFromFlags(flags) != CALL_IC &&
2527 ExtractKindFromFlags(flags) != KEYED_CALL_IC) || 2555 ExtractKindFromFlags(flags) != KEYED_CALL_IC) ||
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
2916 Map* new_map = Map::cast(obj); 2944 Map* new_map = Map::cast(obj);
2917 new_map->set_has_fast_elements(false); 2945 new_map->set_has_fast_elements(false);
2918 isolate()->counters()->map_fast_to_slow_elements()->Increment(); 2946 isolate()->counters()->map_fast_to_slow_elements()->Increment();
2919 return new_map; 2947 return new_map;
2920 } 2948 }
2921 2949
2922 2950
2923 ACCESSORS(Map, instance_descriptors, DescriptorArray, 2951 ACCESSORS(Map, instance_descriptors, DescriptorArray,
2924 kInstanceDescriptorsOffset) 2952 kInstanceDescriptorsOffset)
2925 ACCESSORS(Map, code_cache, Object, kCodeCacheOffset) 2953 ACCESSORS(Map, code_cache, Object, kCodeCacheOffset)
2954 ACCESSORS(Map, prototype_transitions, FixedArray, kPrototypeTransitionsOffset)
2926 ACCESSORS(Map, constructor, Object, kConstructorOffset) 2955 ACCESSORS(Map, constructor, Object, kConstructorOffset)
2927 2956
2928 ACCESSORS(JSFunction, shared, SharedFunctionInfo, kSharedFunctionInfoOffset) 2957 ACCESSORS(JSFunction, shared, SharedFunctionInfo, kSharedFunctionInfoOffset)
2929 ACCESSORS(JSFunction, literals, FixedArray, kLiteralsOffset) 2958 ACCESSORS(JSFunction, literals, FixedArray, kLiteralsOffset)
2930 ACCESSORS_GCSAFE(JSFunction, next_function_link, Object, 2959 ACCESSORS_GCSAFE(JSFunction, next_function_link, Object,
2931 kNextFunctionLinkOffset) 2960 kNextFunctionLinkOffset)
2932 2961
2933 ACCESSORS(GlobalObject, builtins, JSBuiltinsObject, kBuiltinsOffset) 2962 ACCESSORS(GlobalObject, builtins, JSBuiltinsObject, kBuiltinsOffset)
2934 ACCESSORS(GlobalObject, global_context, Context, kGlobalContextOffset) 2963 ACCESSORS(GlobalObject, global_context, Context, kGlobalContextOffset)
2935 ACCESSORS(GlobalObject, global_receiver, JSObject, kGlobalReceiverOffset) 2964 ACCESSORS(GlobalObject, global_receiver, JSObject, kGlobalReceiverOffset)
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after
3631 case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE: 3660 case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
3632 return EXTERNAL_UNSIGNED_BYTE_ELEMENTS; 3661 return EXTERNAL_UNSIGNED_BYTE_ELEMENTS;
3633 case EXTERNAL_SHORT_ARRAY_TYPE: 3662 case EXTERNAL_SHORT_ARRAY_TYPE:
3634 return EXTERNAL_SHORT_ELEMENTS; 3663 return EXTERNAL_SHORT_ELEMENTS;
3635 case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE: 3664 case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
3636 return EXTERNAL_UNSIGNED_SHORT_ELEMENTS; 3665 return EXTERNAL_UNSIGNED_SHORT_ELEMENTS;
3637 case EXTERNAL_INT_ARRAY_TYPE: 3666 case EXTERNAL_INT_ARRAY_TYPE:
3638 return EXTERNAL_INT_ELEMENTS; 3667 return EXTERNAL_INT_ELEMENTS;
3639 case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE: 3668 case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
3640 return EXTERNAL_UNSIGNED_INT_ELEMENTS; 3669 return EXTERNAL_UNSIGNED_INT_ELEMENTS;
3670 case EXTERNAL_FLOAT_ARRAY_TYPE:
3671 return EXTERNAL_FLOAT_ELEMENTS;
3672 case EXTERNAL_DOUBLE_ARRAY_TYPE:
3673 return EXTERNAL_DOUBLE_ELEMENTS;
3641 case EXTERNAL_PIXEL_ARRAY_TYPE: 3674 case EXTERNAL_PIXEL_ARRAY_TYPE:
3642 return EXTERNAL_PIXEL_ELEMENTS; 3675 return EXTERNAL_PIXEL_ELEMENTS;
3643 default: 3676 default:
3644 break; 3677 break;
3645 } 3678 }
3646 } 3679 }
3647 ASSERT(array->map()->instance_type() == EXTERNAL_FLOAT_ARRAY_TYPE); 3680 UNREACHABLE();
3648 return EXTERNAL_FLOAT_ELEMENTS; 3681 return DICTIONARY_ELEMENTS;
3649 } 3682 }
3650 3683
3651 3684
3652 bool JSObject::HasFastElements() { 3685 bool JSObject::HasFastElements() {
3653 return GetElementsKind() == FAST_ELEMENTS; 3686 return GetElementsKind() == FAST_ELEMENTS;
3654 } 3687 }
3655 3688
3656 3689
3657 bool JSObject::HasDictionaryElements() { 3690 bool JSObject::HasDictionaryElements() {
3658 return GetElementsKind() == DICTIONARY_ELEMENTS; 3691 return GetElementsKind() == DICTIONARY_ELEMENTS;
(...skipping 20 matching lines...) Expand all
3679 EXTERNAL_ELEMENTS_CHECK(Byte, EXTERNAL_BYTE_ARRAY_TYPE) 3712 EXTERNAL_ELEMENTS_CHECK(Byte, EXTERNAL_BYTE_ARRAY_TYPE)
3680 EXTERNAL_ELEMENTS_CHECK(UnsignedByte, EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE) 3713 EXTERNAL_ELEMENTS_CHECK(UnsignedByte, EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE)
3681 EXTERNAL_ELEMENTS_CHECK(Short, EXTERNAL_SHORT_ARRAY_TYPE) 3714 EXTERNAL_ELEMENTS_CHECK(Short, EXTERNAL_SHORT_ARRAY_TYPE)
3682 EXTERNAL_ELEMENTS_CHECK(UnsignedShort, 3715 EXTERNAL_ELEMENTS_CHECK(UnsignedShort,
3683 EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE) 3716 EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE)
3684 EXTERNAL_ELEMENTS_CHECK(Int, EXTERNAL_INT_ARRAY_TYPE) 3717 EXTERNAL_ELEMENTS_CHECK(Int, EXTERNAL_INT_ARRAY_TYPE)
3685 EXTERNAL_ELEMENTS_CHECK(UnsignedInt, 3718 EXTERNAL_ELEMENTS_CHECK(UnsignedInt,
3686 EXTERNAL_UNSIGNED_INT_ARRAY_TYPE) 3719 EXTERNAL_UNSIGNED_INT_ARRAY_TYPE)
3687 EXTERNAL_ELEMENTS_CHECK(Float, 3720 EXTERNAL_ELEMENTS_CHECK(Float,
3688 EXTERNAL_FLOAT_ARRAY_TYPE) 3721 EXTERNAL_FLOAT_ARRAY_TYPE)
3722 EXTERNAL_ELEMENTS_CHECK(Double,
3723 EXTERNAL_DOUBLE_ARRAY_TYPE)
3689 EXTERNAL_ELEMENTS_CHECK(Pixel, EXTERNAL_PIXEL_ARRAY_TYPE) 3724 EXTERNAL_ELEMENTS_CHECK(Pixel, EXTERNAL_PIXEL_ARRAY_TYPE)
3690 3725
3691 3726
3692 bool JSObject::HasNamedInterceptor() { 3727 bool JSObject::HasNamedInterceptor() {
3693 return map()->has_named_interceptor(); 3728 return map()->has_named_interceptor();
3694 } 3729 }
3695 3730
3696 3731
3697 bool JSObject::HasIndexedInterceptor() { 3732 bool JSObject::HasIndexedInterceptor() {
3698 return map()->has_indexed_interceptor(); 3733 return map()->has_indexed_interceptor();
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
4157 #undef WRITE_INT_FIELD 4192 #undef WRITE_INT_FIELD
4158 #undef READ_SHORT_FIELD 4193 #undef READ_SHORT_FIELD
4159 #undef WRITE_SHORT_FIELD 4194 #undef WRITE_SHORT_FIELD
4160 #undef READ_BYTE_FIELD 4195 #undef READ_BYTE_FIELD
4161 #undef WRITE_BYTE_FIELD 4196 #undef WRITE_BYTE_FIELD
4162 4197
4163 4198
4164 } } // namespace v8::internal 4199 } } // namespace v8::internal
4165 4200
4166 #endif // V8_OBJECTS_INL_H_ 4201 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698