| 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_CONTEXTS_H_ | 5 #ifndef V8_CONTEXTS_H_ |
| 6 #define V8_CONTEXTS_H_ | 6 #define V8_CONTEXTS_H_ |
| 7 | 7 |
| 8 #include "src/heap/heap.h" | 8 #include "src/heap/heap.h" |
| 9 #include "src/objects.h" | 9 #include "src/objects.h" |
| 10 | 10 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 V(OBJECT_IS_SEALED, JSFunction, object_is_sealed) \ | 89 V(OBJECT_IS_SEALED, JSFunction, object_is_sealed) \ |
| 90 V(OBJECT_KEYS, JSFunction, object_keys) \ | 90 V(OBJECT_KEYS, JSFunction, object_keys) \ |
| 91 V(REFLECT_APPLY_INDEX, JSFunction, reflect_apply) \ | 91 V(REFLECT_APPLY_INDEX, JSFunction, reflect_apply) \ |
| 92 V(REFLECT_CONSTRUCT_INDEX, JSFunction, reflect_construct) \ | 92 V(REFLECT_CONSTRUCT_INDEX, JSFunction, reflect_construct) \ |
| 93 V(REFLECT_DEFINE_PROPERTY_INDEX, JSFunction, reflect_define_property) \ | 93 V(REFLECT_DEFINE_PROPERTY_INDEX, JSFunction, reflect_define_property) \ |
| 94 V(REFLECT_DELETE_PROPERTY_INDEX, JSFunction, reflect_delete_property) \ | 94 V(REFLECT_DELETE_PROPERTY_INDEX, JSFunction, reflect_delete_property) \ |
| 95 V(SPREAD_ARGUMENTS_INDEX, JSFunction, spread_arguments) \ | 95 V(SPREAD_ARGUMENTS_INDEX, JSFunction, spread_arguments) \ |
| 96 V(SPREAD_ITERABLE_INDEX, JSFunction, spread_iterable) | 96 V(SPREAD_ITERABLE_INDEX, JSFunction, spread_iterable) |
| 97 | 97 |
| 98 | 98 |
| 99 #define NATIVE_CONTEXT_JS_BUILTINS(V) \ | |
| 100 V(CONCAT_ITERABLE_TO_ARRAY_BUILTIN_INDEX, JSFunction, \ | |
| 101 concat_iterable_to_array_builtin) | |
| 102 | |
| 103 | |
| 104 #define NATIVE_CONTEXT_IMPORTED_FIELDS(V) \ | 99 #define NATIVE_CONTEXT_IMPORTED_FIELDS(V) \ |
| 105 V(ARRAY_CONCAT_INDEX, JSFunction, array_concat) \ | 100 V(ARRAY_CONCAT_INDEX, JSFunction, array_concat) \ |
| 106 V(ARRAY_POP_INDEX, JSFunction, array_pop) \ | 101 V(ARRAY_POP_INDEX, JSFunction, array_pop) \ |
| 107 V(ARRAY_PUSH_INDEX, JSFunction, array_push) \ | 102 V(ARRAY_PUSH_INDEX, JSFunction, array_push) \ |
| 108 V(ARRAY_SHIFT_INDEX, JSFunction, array_shift) \ | 103 V(ARRAY_SHIFT_INDEX, JSFunction, array_shift) \ |
| 109 V(ARRAY_SPLICE_INDEX, JSFunction, array_splice) \ | 104 V(ARRAY_SPLICE_INDEX, JSFunction, array_splice) \ |
| 110 V(ARRAY_SLICE_INDEX, JSFunction, array_slice) \ | 105 V(ARRAY_SLICE_INDEX, JSFunction, array_slice) \ |
| 111 V(ARRAY_UNSHIFT_INDEX, JSFunction, array_unshift) \ | 106 V(ARRAY_UNSHIFT_INDEX, JSFunction, array_unshift) \ |
| 112 V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \ | 107 V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \ |
| 113 V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \ | 108 V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \ |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 V(PROMISE_THEN_INDEX, JSFunction, promise_then) \ | 142 V(PROMISE_THEN_INDEX, JSFunction, promise_then) \ |
| 148 V(PROXY_ENUMERATE_INDEX, JSFunction, proxy_enumerate) \ | 143 V(PROXY_ENUMERATE_INDEX, JSFunction, proxy_enumerate) \ |
| 149 V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function) \ | 144 V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function) \ |
| 150 V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function) \ | 145 V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function) \ |
| 151 V(SET_ADD_METHOD_INDEX, JSFunction, set_add) \ | 146 V(SET_ADD_METHOD_INDEX, JSFunction, set_add) \ |
| 152 V(SET_DELETE_METHOD_INDEX, JSFunction, set_delete) \ | 147 V(SET_DELETE_METHOD_INDEX, JSFunction, set_delete) \ |
| 153 V(SET_HAS_METHOD_INDEX, JSFunction, set_has) \ | 148 V(SET_HAS_METHOD_INDEX, JSFunction, set_has) \ |
| 154 V(STACK_OVERFLOW_BOILERPLATE_INDEX, JSObject, stack_overflow_boilerplate) \ | 149 V(STACK_OVERFLOW_BOILERPLATE_INDEX, JSObject, stack_overflow_boilerplate) \ |
| 155 V(SYNTAX_ERROR_FUNCTION_INDEX, JSFunction, syntax_error_function) \ | 150 V(SYNTAX_ERROR_FUNCTION_INDEX, JSFunction, syntax_error_function) \ |
| 156 V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function) \ | 151 V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function) \ |
| 157 V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function) \ | 152 V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function) |
| 158 NATIVE_CONTEXT_JS_BUILTINS(V) | |
| 159 | 153 |
| 160 #define NATIVE_CONTEXT_FIELDS(V) \ | 154 #define NATIVE_CONTEXT_FIELDS(V) \ |
| 161 V(GLOBAL_PROXY_INDEX, JSObject, global_proxy_object) \ | 155 V(GLOBAL_PROXY_INDEX, JSObject, global_proxy_object) \ |
| 162 V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ | 156 V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ |
| 163 /* Below is alpha-sorted */ \ | 157 /* Below is alpha-sorted */ \ |
| 164 V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ | 158 V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ |
| 165 V(ARRAY_BUFFER_FUN_INDEX, JSFunction, array_buffer_fun) \ | 159 V(ARRAY_BUFFER_FUN_INDEX, JSFunction, array_buffer_fun) \ |
| 166 V(ARRAY_BUFFER_MAP_INDEX, Map, array_buffer_map) \ | 160 V(ARRAY_BUFFER_MAP_INDEX, Map, array_buffer_map) \ |
| 167 V(ARRAY_FUNCTION_INDEX, JSFunction, array_function) \ | 161 V(ARRAY_FUNCTION_INDEX, JSFunction, array_function) \ |
| 168 V(BOOL16X8_FUNCTION_INDEX, JSFunction, bool16x8_function) \ | 162 V(BOOL16X8_FUNCTION_INDEX, JSFunction, bool16x8_function) \ |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 void SetOptimizedCodeListHead(Object* head); | 489 void SetOptimizedCodeListHead(Object* head); |
| 496 Object* OptimizedCodeListHead(); | 490 Object* OptimizedCodeListHead(); |
| 497 void SetDeoptimizedCodeListHead(Object* head); | 491 void SetDeoptimizedCodeListHead(Object* head); |
| 498 Object* DeoptimizedCodeListHead(); | 492 Object* DeoptimizedCodeListHead(); |
| 499 | 493 |
| 500 Handle<Object> ErrorMessageForCodeGenerationFromStrings(); | 494 Handle<Object> ErrorMessageForCodeGenerationFromStrings(); |
| 501 | 495 |
| 502 static int ImportedFieldIndexForName(Handle<String> name); | 496 static int ImportedFieldIndexForName(Handle<String> name); |
| 503 static int IntrinsicIndexForName(Handle<String> name); | 497 static int IntrinsicIndexForName(Handle<String> name); |
| 504 | 498 |
| 505 static bool IsJSBuiltin(Handle<Context> native_context, | |
| 506 Handle<JSFunction> function); | |
| 507 | |
| 508 #define NATIVE_CONTEXT_FIELD_ACCESSORS(index, type, name) \ | 499 #define NATIVE_CONTEXT_FIELD_ACCESSORS(index, type, name) \ |
| 509 inline void set_##name(type* value); \ | 500 inline void set_##name(type* value); \ |
| 510 inline bool is_##name(type* value); \ | 501 inline bool is_##name(type* value); \ |
| 511 inline type* name(); | 502 inline type* name(); |
| 512 NATIVE_CONTEXT_FIELDS(NATIVE_CONTEXT_FIELD_ACCESSORS) | 503 NATIVE_CONTEXT_FIELDS(NATIVE_CONTEXT_FIELD_ACCESSORS) |
| 513 #undef NATIVE_CONTEXT_FIELD_ACCESSORS | 504 #undef NATIVE_CONTEXT_FIELD_ACCESSORS |
| 514 | 505 |
| 515 // Lookup the slot called name, starting with the current context. | 506 // Lookup the slot called name, starting with the current context. |
| 516 // There are three possibilities: | 507 // There are three possibilities: |
| 517 // | 508 // |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 #endif | 583 #endif |
| 593 | 584 |
| 594 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); | 585 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); |
| 595 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); | 586 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); |
| 596 }; | 587 }; |
| 597 | 588 |
| 598 } // namespace internal | 589 } // namespace internal |
| 599 } // namespace v8 | 590 } // namespace v8 |
| 600 | 591 |
| 601 #endif // V8_CONTEXTS_H_ | 592 #endif // V8_CONTEXTS_H_ |
| OLD | NEW |