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 2612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2623 static Handle<Object> PreventExtensions(Handle<JSObject> object); | 2623 static Handle<Object> PreventExtensions(Handle<JSObject> object); |
2624 MUST_USE_RESULT MaybeObject* PreventExtensions(); | 2624 MUST_USE_RESULT MaybeObject* PreventExtensions(); |
2625 | 2625 |
2626 // ES5 Object.freeze | 2626 // ES5 Object.freeze |
2627 MUST_USE_RESULT MaybeObject* Freeze(Isolate* isolate); | 2627 MUST_USE_RESULT MaybeObject* Freeze(Isolate* isolate); |
2628 | 2628 |
2629 | 2629 |
2630 // Called the first time an object is observed with ES7 Object.observe. | 2630 // Called the first time an object is observed with ES7 Object.observe. |
2631 MUST_USE_RESULT MaybeObject* SetObserved(Isolate* isolate); | 2631 MUST_USE_RESULT MaybeObject* SetObserved(Isolate* isolate); |
2632 | 2632 |
2633 // Copy object. | 2633 // Copy object |
2634 static Handle<JSObject> Copy(Handle<JSObject> object); | 2634 MUST_USE_RESULT MaybeObject* DeepCopy(Isolate* isolate); |
2635 static Handle<JSObject> DeepCopy(Handle<JSObject> object); | |
2636 | 2635 |
2637 // Dispatched behavior. | 2636 // Dispatched behavior. |
2638 void JSObjectShortPrint(StringStream* accumulator); | 2637 void JSObjectShortPrint(StringStream* accumulator); |
2639 DECLARE_PRINTER(JSObject) | 2638 DECLARE_PRINTER(JSObject) |
2640 DECLARE_VERIFIER(JSObject) | 2639 DECLARE_VERIFIER(JSObject) |
2641 #ifdef OBJECT_PRINT | 2640 #ifdef OBJECT_PRINT |
2642 void PrintProperties(FILE* out = stdout); | 2641 void PrintProperties(FILE* out = stdout); |
2643 void PrintElements(FILE* out = stdout); | 2642 void PrintElements(FILE* out = stdout); |
2644 void PrintTransitions(FILE* out = stdout); | 2643 void PrintTransitions(FILE* out = stdout); |
2645 #endif | 2644 #endif |
(...skipping 2502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5148 kAfterLastCodeAge, | 5147 kAfterLastCodeAge, |
5149 kLastCodeAge = kAfterLastCodeAge - 1, | 5148 kLastCodeAge = kAfterLastCodeAge - 1, |
5150 kCodeAgeCount = kAfterLastCodeAge - 1 | 5149 kCodeAgeCount = kAfterLastCodeAge - 1 |
5151 }; | 5150 }; |
5152 #undef DECLARE_CODE_AGE_ENUM | 5151 #undef DECLARE_CODE_AGE_ENUM |
5153 | 5152 |
5154 // Code aging. Indicates how many full GCs this code has survived without | 5153 // Code aging. Indicates how many full GCs this code has survived without |
5155 // being entered through the prologue. Used to determine when it is | 5154 // being entered through the prologue. Used to determine when it is |
5156 // relatively safe to flush this code object and replace it with the lazy | 5155 // relatively safe to flush this code object and replace it with the lazy |
5157 // compilation stub. | 5156 // compilation stub. |
5158 static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); | 5157 static void MakeCodeAgeSequenceYoung(byte* sequence); |
5159 void MakeOlder(MarkingParity); | 5158 void MakeOlder(MarkingParity); |
5160 static bool IsYoungSequence(byte* sequence); | 5159 static bool IsYoungSequence(byte* sequence); |
5161 bool IsOld(); | 5160 bool IsOld(); |
5162 int GetAge(); | 5161 int GetAge(); |
5163 | 5162 |
5164 void PrintDeoptLocation(int bailout_id); | 5163 void PrintDeoptLocation(int bailout_id); |
5165 bool CanDeoptAt(Address pc); | 5164 bool CanDeoptAt(Address pc); |
5166 | 5165 |
5167 #ifdef VERIFY_HEAP | 5166 #ifdef VERIFY_HEAP |
5168 void VerifyEmbeddedMapsDependency(); | 5167 void VerifyEmbeddedMapsDependency(); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5294 | 5293 |
5295 private: | 5294 private: |
5296 friend class RelocIterator; | 5295 friend class RelocIterator; |
5297 | 5296 |
5298 // Code aging | 5297 // Code aging |
5299 byte* FindCodeAgeSequence(); | 5298 byte* FindCodeAgeSequence(); |
5300 static void GetCodeAgeAndParity(Code* code, Age* age, | 5299 static void GetCodeAgeAndParity(Code* code, Age* age, |
5301 MarkingParity* parity); | 5300 MarkingParity* parity); |
5302 static void GetCodeAgeAndParity(byte* sequence, Age* age, | 5301 static void GetCodeAgeAndParity(byte* sequence, Age* age, |
5303 MarkingParity* parity); | 5302 MarkingParity* parity); |
5304 static Code* GetCodeAgeStub(Isolate* isolate, Age age, MarkingParity parity); | 5303 static Code* GetCodeAgeStub(Age age, MarkingParity parity); |
5305 | 5304 |
5306 // Code aging -- platform-specific | 5305 // Code aging -- platform-specific |
5307 static void PatchPlatformCodeAge(Isolate* isolate, | 5306 static void PatchPlatformCodeAge(byte* sequence, Age age, |
5308 byte* sequence, Age age, | |
5309 MarkingParity parity); | 5307 MarkingParity parity); |
5310 | 5308 |
5311 DISALLOW_IMPLICIT_CONSTRUCTORS(Code); | 5309 DISALLOW_IMPLICIT_CONSTRUCTORS(Code); |
5312 }; | 5310 }; |
5313 | 5311 |
5314 | 5312 |
5315 class CompilationInfo; | 5313 class CompilationInfo; |
5316 | 5314 |
5317 // This class describes the layout of dependent codes array of a map. The | 5315 // This class describes the layout of dependent codes array of a map. The |
5318 // array is partitioned into several groups of dependent codes. Each group | 5316 // array is partitioned into several groups of dependent codes. Each group |
(...skipping 4926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10245 } else { | 10243 } else { |
10246 value &= ~(1 << bit_position); | 10244 value &= ~(1 << bit_position); |
10247 } | 10245 } |
10248 return value; | 10246 return value; |
10249 } | 10247 } |
10250 }; | 10248 }; |
10251 | 10249 |
10252 } } // namespace v8::internal | 10250 } } // namespace v8::internal |
10253 | 10251 |
10254 #endif // V8_OBJECTS_H_ | 10252 #endif // V8_OBJECTS_H_ |
OLD | NEW |