OLD | NEW |
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 895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 // Property access. | 906 // Property access. |
907 MUST_USE_RESULT inline MaybeObject* GetProperty(String* key); | 907 MUST_USE_RESULT inline MaybeObject* GetProperty(String* key); |
908 MUST_USE_RESULT inline MaybeObject* GetProperty( | 908 MUST_USE_RESULT inline MaybeObject* GetProperty( |
909 String* key, | 909 String* key, |
910 PropertyAttributes* attributes); | 910 PropertyAttributes* attributes); |
911 MUST_USE_RESULT MaybeObject* GetPropertyWithReceiver( | 911 MUST_USE_RESULT MaybeObject* GetPropertyWithReceiver( |
912 Object* receiver, | 912 Object* receiver, |
913 String* key, | 913 String* key, |
914 PropertyAttributes* attributes); | 914 PropertyAttributes* attributes); |
915 | 915 |
916 static Handle<Object> GetProperty(Isolate* isolate, | 916 static Handle<Object> GetProperty(Handle<Object> object, |
917 Handle<Object> object, | |
918 Handle<Object> receiver, | 917 Handle<Object> receiver, |
919 LookupResult* result, | 918 LookupResult* result, |
920 Handle<String> key, | 919 Handle<String> key, |
921 PropertyAttributes* attributes); | 920 PropertyAttributes* attributes); |
922 | 921 |
923 MUST_USE_RESULT MaybeObject* GetProperty(Object* receiver, | 922 MUST_USE_RESULT MaybeObject* GetProperty(Object* receiver, |
924 LookupResult* result, | 923 LookupResult* result, |
925 String* key, | 924 String* key, |
926 PropertyAttributes* attributes); | 925 PropertyAttributes* attributes); |
927 | 926 |
928 MUST_USE_RESULT MaybeObject* GetPropertyWithDefinedGetter(Object* receiver, | 927 MUST_USE_RESULT MaybeObject* GetPropertyWithDefinedGetter(Object* receiver, |
929 JSReceiver* getter); | 928 JSReceiver* getter); |
930 | 929 |
| 930 static Handle<Object> GetElement(Handle<Object> object, uint32_t index); |
931 inline MaybeObject* GetElement(uint32_t index); | 931 inline MaybeObject* GetElement(uint32_t index); |
932 // For use when we know that no exception can be thrown. | 932 // For use when we know that no exception can be thrown. |
933 inline Object* GetElementNoExceptionThrown(uint32_t index); | 933 inline Object* GetElementNoExceptionThrown(uint32_t index); |
934 MaybeObject* GetElementWithReceiver(Object* receiver, uint32_t index); | 934 MaybeObject* GetElementWithReceiver(Object* receiver, uint32_t index); |
935 | 935 |
936 // Return the object's prototype (might be Heap::null_value()). | 936 // Return the object's prototype (might be Heap::null_value()). |
937 Object* GetPrototype(); | 937 Object* GetPrototype(); |
938 | 938 |
939 // Tries to convert an object to an array index. Returns true and sets | 939 // Tries to convert an object to an array index. Returns true and sets |
940 // the output parameter if it succeeds. | 940 // the output parameter if it succeeds. |
(...skipping 3966 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4907 #ifdef OBJECT_PRINT | 4907 #ifdef OBJECT_PRINT |
4908 inline void SharedFunctionInfoPrint() { | 4908 inline void SharedFunctionInfoPrint() { |
4909 SharedFunctionInfoPrint(stdout); | 4909 SharedFunctionInfoPrint(stdout); |
4910 } | 4910 } |
4911 void SharedFunctionInfoPrint(FILE* out); | 4911 void SharedFunctionInfoPrint(FILE* out); |
4912 #endif | 4912 #endif |
4913 #ifdef DEBUG | 4913 #ifdef DEBUG |
4914 void SharedFunctionInfoVerify(); | 4914 void SharedFunctionInfoVerify(); |
4915 #endif | 4915 #endif |
4916 | 4916 |
| 4917 // Helpers to compile the shared code. Returns true on success, false on |
| 4918 // failure (e.g., stack overflow during compilation). |
| 4919 static bool EnsureCompiled(Handle<SharedFunctionInfo> shared, |
| 4920 ClearExceptionFlag flag); |
| 4921 static bool CompileLazy(Handle<SharedFunctionInfo> shared, |
| 4922 ClearExceptionFlag flag); |
| 4923 |
4917 // Casting. | 4924 // Casting. |
4918 static inline SharedFunctionInfo* cast(Object* obj); | 4925 static inline SharedFunctionInfo* cast(Object* obj); |
4919 | 4926 |
4920 // Constants. | 4927 // Constants. |
4921 static const int kDontAdaptArgumentsSentinel = -1; | 4928 static const int kDontAdaptArgumentsSentinel = -1; |
4922 | 4929 |
4923 // Layout description. | 4930 // Layout description. |
4924 // Pointer fields. | 4931 // Pointer fields. |
4925 static const int kNameOffset = HeapObject::kHeaderSize; | 4932 static const int kNameOffset = HeapObject::kHeaderSize; |
4926 static const int kCodeOffset = kNameOffset + kPointerSize; | 4933 static const int kCodeOffset = kNameOffset + kPointerSize; |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5128 // Tells whether or not this function has been optimized. | 5135 // Tells whether or not this function has been optimized. |
5129 inline bool IsOptimized(); | 5136 inline bool IsOptimized(); |
5130 | 5137 |
5131 // Tells whether or not this function can be optimized. | 5138 // Tells whether or not this function can be optimized. |
5132 inline bool IsOptimizable(); | 5139 inline bool IsOptimizable(); |
5133 | 5140 |
5134 // Mark this function for lazy recompilation. The function will be | 5141 // Mark this function for lazy recompilation. The function will be |
5135 // recompiled the next time it is executed. | 5142 // recompiled the next time it is executed. |
5136 void MarkForLazyRecompilation(); | 5143 void MarkForLazyRecompilation(); |
5137 | 5144 |
| 5145 // Helpers to compile this function. Returns true on success, false on |
| 5146 // failure (e.g., stack overflow during compilation). |
| 5147 static bool CompileLazy(Handle<JSFunction> function, |
| 5148 ClearExceptionFlag flag); |
| 5149 static bool CompileOptimized(Handle<JSFunction> function, |
| 5150 int osr_ast_id, |
| 5151 ClearExceptionFlag flag); |
| 5152 |
5138 // Tells whether or not the function is already marked for lazy | 5153 // Tells whether or not the function is already marked for lazy |
5139 // recompilation. | 5154 // recompilation. |
5140 inline bool IsMarkedForLazyRecompilation(); | 5155 inline bool IsMarkedForLazyRecompilation(); |
5141 | 5156 |
5142 // Check whether or not this function is inlineable. | 5157 // Check whether or not this function is inlineable. |
5143 bool IsInlineable(); | 5158 bool IsInlineable(); |
5144 | 5159 |
5145 // [literals_or_bindings]: Fixed array holding either | 5160 // [literals_or_bindings]: Fixed array holding either |
5146 // the materialized literals or the bindings of a bound function. | 5161 // the materialized literals or the bindings of a bound function. |
5147 // | 5162 // |
(...skipping 2484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7632 } else { | 7647 } else { |
7633 value &= ~(1 << bit_position); | 7648 value &= ~(1 << bit_position); |
7634 } | 7649 } |
7635 return value; | 7650 return value; |
7636 } | 7651 } |
7637 }; | 7652 }; |
7638 | 7653 |
7639 } } // namespace v8::internal | 7654 } } // namespace v8::internal |
7640 | 7655 |
7641 #endif // V8_OBJECTS_H_ | 7656 #endif // V8_OBJECTS_H_ |
OLD | NEW |