1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:58:12 +00:00

LibJS: Expose JSON.parse as an intrinsic value of the global object

This will allow us to safely call it if we need to parse JSON within
LibJS.
This commit is contained in:
davidot 2022-01-27 14:49:55 +01:00 committed by Linus Groh
parent f568939568
commit 202de6ed25
2 changed files with 4 additions and 0 deletions

View file

@ -304,6 +304,7 @@ void GlobalObject::initialize_global_object()
m_array_prototype_values_function = &m_array_prototype->get_without_side_effects(vm.names.values).as_function();
m_date_constructor_now_function = &m_date_constructor->get_without_side_effects(vm.names.now).as_function();
m_eval_function = &get_without_side_effects(vm.names.eval).as_function();
m_json_parse_function = &get_without_side_effects(vm.names.JSON).as_object().get_without_side_effects(vm.names.parse).as_function();
}
GlobalObject::~GlobalObject()
@ -324,6 +325,7 @@ void GlobalObject::visit_edges(Visitor& visitor)
visitor.visit(m_date_constructor_now_function);
visitor.visit(m_eval_function);
visitor.visit(m_throw_type_error_function);
visitor.visit(m_json_parse_function);
#define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName, ArrayType) \
visitor.visit(m_##snake_name##_constructor); \

View file

@ -42,6 +42,7 @@ public:
FunctionObject* date_constructor_now_function() const { return m_date_constructor_now_function; }
FunctionObject* eval_function() const { return m_eval_function; }
FunctionObject* throw_type_error_function() const { return m_throw_type_error_function; }
FunctionObject* json_parse_function() const { return m_json_parse_function; }
#define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName, ArrayType) \
ConstructorName* snake_name##_constructor() { return m_##snake_name##_constructor; } \
@ -109,6 +110,7 @@ private:
FunctionObject* m_date_constructor_now_function { nullptr };
FunctionObject* m_eval_function { nullptr };
FunctionObject* m_throw_type_error_function { nullptr };
FunctionObject* m_json_parse_function { nullptr };
#define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName, ArrayType) \
ConstructorName* m_##snake_name##_constructor { nullptr }; \