| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 class AllocationSite; | 864 class AllocationSite; |
| 865 class AllocationSiteContext; | 865 class AllocationSiteContext; |
| 866 class DictionaryElementsAccessor; | 866 class DictionaryElementsAccessor; |
| 867 class ElementsAccessor; | 867 class ElementsAccessor; |
| 868 class Failure; | 868 class Failure; |
| 869 class FixedArrayBase; | 869 class FixedArrayBase; |
| 870 class ObjectVisitor; | 870 class ObjectVisitor; |
| 871 class StringStream; | 871 class StringStream; |
| 872 class Type; | 872 class Type; |
| 873 | 873 |
| 874 struct ValueInfo : public Malloced { | |
| 875 ValueInfo() : type(FIRST_TYPE), ptr(NULL), str(NULL), number(0) { } | |
| 876 InstanceType type; | |
| 877 Object* ptr; | |
| 878 const char* str; | |
| 879 double number; | |
| 880 }; | |
| 881 | |
| 882 | 874 |
| 883 // A template-ized version of the IsXXX functions. | 875 // A template-ized version of the IsXXX functions. |
| 884 template <class C> inline bool Is(Object* obj); | 876 template <class C> inline bool Is(Object* obj); |
| 885 | 877 |
| 886 #ifdef VERIFY_HEAP | 878 #ifdef VERIFY_HEAP |
| 887 #define DECLARE_VERIFIER(Name) void Name##Verify(); | 879 #define DECLARE_VERIFIER(Name) void Name##Verify(); |
| 888 #else | 880 #else |
| 889 #define DECLARE_VERIFIER(Name) | 881 #define DECLARE_VERIFIER(Name) |
| 890 #endif | 882 #endif |
| 891 | 883 |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1336 V(kUnexpectedSmi, "Unexpected smi value") \ | 1328 V(kUnexpectedSmi, "Unexpected smi value") \ |
| 1337 V(kUnexpectedStringFunction, "Unexpected String function") \ | 1329 V(kUnexpectedStringFunction, "Unexpected String function") \ |
| 1338 V(kUnexpectedStringType, "Unexpected string type") \ | 1330 V(kUnexpectedStringType, "Unexpected string type") \ |
| 1339 V(kUnexpectedStringWrapperInstanceSize, \ | 1331 V(kUnexpectedStringWrapperInstanceSize, \ |
| 1340 "Unexpected string wrapper instance size") \ | 1332 "Unexpected string wrapper instance size") \ |
| 1341 V(kUnexpectedTypeForRegExpDataFixedArrayExpected, \ | 1333 V(kUnexpectedTypeForRegExpDataFixedArrayExpected, \ |
| 1342 "Unexpected type for RegExp data, FixedArray expected") \ | 1334 "Unexpected type for RegExp data, FixedArray expected") \ |
| 1343 V(kUnexpectedValue, "Unexpected value") \ | 1335 V(kUnexpectedValue, "Unexpected value") \ |
| 1344 V(kUnexpectedUnusedPropertiesOfStringWrapper, \ | 1336 V(kUnexpectedUnusedPropertiesOfStringWrapper, \ |
| 1345 "Unexpected unused properties of string wrapper") \ | 1337 "Unexpected unused properties of string wrapper") \ |
| 1338 V(kUnimplemented, "unimplemented") \ |
| 1346 V(kUninitializedKSmiConstantRegister, "Uninitialized kSmiConstantRegister") \ | 1339 V(kUninitializedKSmiConstantRegister, "Uninitialized kSmiConstantRegister") \ |
| 1347 V(kUnknown, "unknown") \ | 1340 V(kUnknown, "unknown") \ |
| 1348 V(kUnsupportedConstCompoundAssignment, \ | 1341 V(kUnsupportedConstCompoundAssignment, \ |
| 1349 "unsupported const compound assignment") \ | 1342 "unsupported const compound assignment") \ |
| 1350 V(kUnsupportedCountOperationWithConst, \ | 1343 V(kUnsupportedCountOperationWithConst, \ |
| 1351 "unsupported count operation with const") \ | 1344 "unsupported count operation with const") \ |
| 1352 V(kUnsupportedDoubleImmediate, "unsupported double immediate") \ | 1345 V(kUnsupportedDoubleImmediate, "unsupported double immediate") \ |
| 1353 V(kUnsupportedLetCompoundAssignment, "unsupported let compound assignment") \ | 1346 V(kUnsupportedLetCompoundAssignment, "unsupported let compound assignment") \ |
| 1354 V(kUnsupportedLookupSlotInDeclaration, \ | 1347 V(kUnsupportedLookupSlotInDeclaration, \ |
| 1355 "unsupported lookup slot in declaration") \ | 1348 "unsupported lookup slot in declaration") \ |
| (...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2409 Handle<Object> value, | 2402 Handle<Object> value, |
| 2410 StrictModeFlag strict_mode); | 2403 StrictModeFlag strict_mode); |
| 2411 | 2404 |
| 2412 // Empty handle is returned if the element cannot be set to the given value. | 2405 // Empty handle is returned if the element cannot be set to the given value. |
| 2413 static Handle<Object> SetElement( | 2406 static Handle<Object> SetElement( |
| 2414 Handle<JSObject> object, | 2407 Handle<JSObject> object, |
| 2415 uint32_t index, | 2408 uint32_t index, |
| 2416 Handle<Object> value, | 2409 Handle<Object> value, |
| 2417 PropertyAttributes attr, | 2410 PropertyAttributes attr, |
| 2418 StrictModeFlag strict_mode, | 2411 StrictModeFlag strict_mode, |
| 2412 bool check_prototype = true, |
| 2419 SetPropertyMode set_mode = SET_PROPERTY); | 2413 SetPropertyMode set_mode = SET_PROPERTY); |
| 2420 | 2414 |
| 2421 // A Failure object is returned if GC is needed. | 2415 // A Failure object is returned if GC is needed. |
| 2422 MUST_USE_RESULT MaybeObject* SetElement( | 2416 MUST_USE_RESULT MaybeObject* SetElement( |
| 2423 uint32_t index, | 2417 uint32_t index, |
| 2424 Object* value, | 2418 Object* value, |
| 2425 PropertyAttributes attributes, | 2419 PropertyAttributes attributes, |
| 2426 StrictModeFlag strict_mode, | 2420 StrictModeFlag strict_mode, |
| 2427 bool check_prototype = true, | 2421 bool check_prototype = true, |
| 2428 SetPropertyMode set_mode = SET_PROPERTY); | 2422 SetPropertyMode set_mode = SET_PROPERTY); |
| (...skipping 2979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5408 static bool IsYoungSequence(byte* sequence); | 5402 static bool IsYoungSequence(byte* sequence); |
| 5409 bool IsOld(); | 5403 bool IsOld(); |
| 5410 Age GetAge(); | 5404 Age GetAge(); |
| 5411 // Gets the raw code age, including psuedo code-age values such as | 5405 // Gets the raw code age, including psuedo code-age values such as |
| 5412 // kNotExecutedCodeAge and kExecutedOnceCodeAge. | 5406 // kNotExecutedCodeAge and kExecutedOnceCodeAge. |
| 5413 Age GetRawAge(); | 5407 Age GetRawAge(); |
| 5414 static inline Code* GetPreAgedCodeAgeStub(Isolate* isolate) { | 5408 static inline Code* GetPreAgedCodeAgeStub(Isolate* isolate) { |
| 5415 return GetCodeAgeStub(isolate, kNotExecutedCodeAge, NO_MARKING_PARITY); | 5409 return GetCodeAgeStub(isolate, kNotExecutedCodeAge, NO_MARKING_PARITY); |
| 5416 } | 5410 } |
| 5417 | 5411 |
| 5418 void PrintDeoptLocation(int bailout_id); | 5412 void PrintDeoptLocation(FILE* out, int bailout_id); |
| 5419 bool CanDeoptAt(Address pc); | 5413 bool CanDeoptAt(Address pc); |
| 5420 | 5414 |
| 5421 #ifdef VERIFY_HEAP | 5415 #ifdef VERIFY_HEAP |
| 5422 void VerifyEmbeddedObjectsDependency(); | 5416 void VerifyEmbeddedObjectsDependency(); |
| 5423 #endif | 5417 #endif |
| 5424 | 5418 |
| 5425 static bool IsWeakEmbeddedObject(Kind kind, Object* object); | 5419 static bool IsWeakEmbeddedObject(Kind kind, Object* object); |
| 5426 | 5420 |
| 5427 // Max loop nesting marker used to postpose OSR. We don't take loop | 5421 // Max loop nesting marker used to postpose OSR. We don't take loop |
| 5428 // nesting that is deeper than 5 levels into account. | 5422 // nesting that is deeper than 5 levels into account. |
| (...skipping 3222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8651 static const int kMaxLength = (1 << (32 - 2)) - 1; | 8645 static const int kMaxLength = (1 << (32 - 2)) - 1; |
| 8652 | 8646 |
| 8653 // Max length for computing hash. For strings longer than this limit the | 8647 // Max length for computing hash. For strings longer than this limit the |
| 8654 // string length is used as the hash value. | 8648 // string length is used as the hash value. |
| 8655 static const int kMaxHashCalcLength = 16383; | 8649 static const int kMaxHashCalcLength = 16383; |
| 8656 | 8650 |
| 8657 // Limit for truncation in short printing. | 8651 // Limit for truncation in short printing. |
| 8658 static const int kMaxShortPrintLength = 1024; | 8652 static const int kMaxShortPrintLength = 1024; |
| 8659 | 8653 |
| 8660 // Support for regular expressions. | 8654 // Support for regular expressions. |
| 8661 const uc16* GetTwoByteData(); | |
| 8662 const uc16* GetTwoByteData(unsigned start); | 8655 const uc16* GetTwoByteData(unsigned start); |
| 8663 | 8656 |
| 8664 // Helper function for flattening strings. | 8657 // Helper function for flattening strings. |
| 8665 template <typename sinkchar> | 8658 template <typename sinkchar> |
| 8666 static void WriteToFlat(String* source, | 8659 static void WriteToFlat(String* source, |
| 8667 sinkchar* sink, | 8660 sinkchar* sink, |
| 8668 int from, | 8661 int from, |
| 8669 int to); | 8662 int to); |
| 8670 | 8663 |
| 8671 // The return value may point to the first aligned word containing the | 8664 // The return value may point to the first aligned word containing the |
| (...skipping 1852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10524 } else { | 10517 } else { |
| 10525 value &= ~(1 << bit_position); | 10518 value &= ~(1 << bit_position); |
| 10526 } | 10519 } |
| 10527 return value; | 10520 return value; |
| 10528 } | 10521 } |
| 10529 }; | 10522 }; |
| 10530 | 10523 |
| 10531 } } // namespace v8::internal | 10524 } } // namespace v8::internal |
| 10532 | 10525 |
| 10533 #endif // V8_OBJECTS_H_ | 10526 #endif // V8_OBJECTS_H_ |
| OLD | NEW |