Index: src/contexts.h |
diff --git a/src/contexts.h b/src/contexts.h |
index d41191e6ac4cc085acd8710ee49f6182e1681c17..7c4ebc0c2b39da083e4690e248e8caf5d8033a1a 100644 |
--- a/src/contexts.h |
+++ b/src/contexts.h |
@@ -90,6 +90,56 @@ enum BindingFlags { |
V(TO_PRIMITIVE_INDEX, JSFunction, to_primitive) \ |
V(TO_STRING_FUN_INDEX, JSFunction, to_string_fun) |
+ |
+#define NATIVE_CONTEXT_JS_BUILTINS(V) \ |
+ V(ADD_BUILTIN_INDEX, JSFunction, add_builtin) \ |
+ V(ADD_STRONG_BUILTIN_INDEX, JSFunction, add_strong_builtin) \ |
+ V(APPLY_PREPARE_BUILTIN_INDEX, JSFunction, apply_prepare_builtin) \ |
+ V(BIT_AND_BUILTIN_INDEX, JSFunction, bit_and_builtin) \ |
+ V(BIT_AND_STRONG_BUILTIN_INDEX, JSFunction, bit_and_strong_builtin) \ |
+ V(BIT_OR_BUILTIN_INDEX, JSFunction, bit_or_builtin) \ |
+ V(BIT_OR_STRONG_BUILTIN_INDEX, JSFunction, bit_or_strong_builtin) \ |
+ V(BIT_XOR_BUILTIN_INDEX, JSFunction, bit_xor_builtin) \ |
+ V(BIT_XOR_STRONG_BUILTIN_INDEX, JSFunction, bit_xor_strong_builtin) \ |
+ V(CALL_FUNCTION_PROXY_AS_CONSTRUCTOR_BUILTIN_INDEX, JSFunction, \ |
+ call_function_proxy_as_constructor_builtin) \ |
+ V(CALL_FUNCTION_PROXY_BUILTIN_INDEX, JSFunction, \ |
+ call_function_proxy_builtin) \ |
+ V(CALL_NON_FUNCTION_AS_CONSTRUCTOR_BUILTIN_INDEX, JSFunction, \ |
+ call_non_function_as_constructor_builtin) \ |
+ V(CALL_NON_FUNCTION_BUILTIN_INDEX, JSFunction, call_non_function_builtin) \ |
+ V(COMPARE_BUILTIN_INDEX, JSFunction, compare_builtin) \ |
+ V(COMPARE_STRONG_BUILTIN_INDEX, JSFunction, compare_strong_builtin) \ |
+ V(CONCAT_ITERABLE_TO_ARRAY_BUILTIN_INDEX, JSFunction, \ |
+ concat_iterable_to_array_builtin) \ |
+ V(DIV_BUILTIN_INDEX, JSFunction, div_builtin) \ |
+ V(DIV_STRONG_BUILTIN_INDEX, JSFunction, div_strong_builtin) \ |
+ V(EQUALS_BUILTIN_INDEX, JSFunction, equals_builtin) \ |
+ V(IN_BUILTIN_INDEX, JSFunction, in_builtin) \ |
+ V(MOD_BUILTIN_INDEX, JSFunction, mod_builtin) \ |
+ V(MOD_STRONG_BUILTIN_INDEX, JSFunction, mod_strong_builtin) \ |
+ V(MUL_BUILTIN_INDEX, JSFunction, mul_builtin) \ |
+ V(MUL_STRONG_BUILTIN_INDEX, JSFunction, mul_strong_builtin) \ |
+ V(REFLECT_APPLY_PREPARE_BUILTIN_INDEX, JSFunction, \ |
+ reflect_apply_prepare_builtin) \ |
+ V(REFLECT_CONSTRUCT_PREPARE_BUILTIN_INDEX, JSFunction, \ |
+ reflect_construct_prepare_builtin) \ |
+ V(SAR_BUILTIN_INDEX, JSFunction, sar_builtin) \ |
+ V(SAR_STRONG_BUILTIN_INDEX, JSFunction, sar_strong_builtin) \ |
+ V(SHL_BUILTIN_INDEX, JSFunction, shl_builtin) \ |
+ V(SHL_STRONG_BUILTIN_INDEX, JSFunction, shl_strong_builtin) \ |
+ V(SHR_BUILTIN_INDEX, JSFunction, shr_builtin) \ |
+ V(SHR_STRONG_BUILTIN_INDEX, JSFunction, shr_strong_builtin) \ |
+ V(STACK_OVERFLOW_BUILTIN_INDEX, JSFunction, stack_overflow_builtin) \ |
+ V(STRING_ADD_LEFT_BUILTIN_INDEX, JSFunction, string_add_left_builtin) \ |
+ V(STRING_ADD_RIGHT_BUILTIN_INDEX, JSFunction, string_add_right_builtin) \ |
+ V(SUB_BUILTIN_INDEX, JSFunction, sub_builtin) \ |
+ V(SUB_STRONG_BUILTIN_INDEX, JSFunction, sub_strong_builtin) \ |
+ V(TO_NAME_BUILTIN_INDEX, JSFunction, to_name_builtin) \ |
+ V(TO_NUMBER_BUILTIN_INDEX, JSFunction, to_number_builtin) \ |
+ V(TO_STRING_BUILTIN_INDEX, JSFunction, to_string_builtin) |
+ |
+ |
#define NATIVE_CONTEXT_IMPORTED_FIELDS(V) \ |
V(ARRAY_CONCAT_INDEX, JSFunction, array_concat) \ |
V(ARRAY_POP_INDEX, JSFunction, array_pop) \ |
@@ -152,7 +202,8 @@ enum BindingFlags { |
V(TO_DETAIL_STRING_FUN_INDEX, JSFunction, to_detail_string_fun) \ |
V(TO_INTEGER_FUN_INDEX, JSFunction, to_integer_fun) \ |
V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function) \ |
- V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function) |
+ V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function) \ |
+ NATIVE_CONTEXT_JS_BUILTINS(V) |
#define NATIVE_CONTEXT_FIELDS(V) \ |
V(GLOBAL_PROXY_INDEX, JSObject, global_proxy_object) \ |
@@ -498,6 +549,9 @@ class Context: public FixedArray { |
static int ImportedFieldIndexForName(Handle<String> name); |
static int IntrinsicIndexForName(Handle<String> name); |
+ static bool IsJSBuiltin(Handle<Context> native_context, |
+ Handle<JSFunction> function); |
+ |
#define NATIVE_CONTEXT_FIELD_ACCESSORS(index, type, name) \ |
void set_##name(type* value) { \ |
DCHECK(IsNativeContext()); \ |