mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-15 23:09:05 +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:
parent
f568939568
commit
202de6ed25
Notes:
sideshowbarker
2024-07-17 19:59:12 +09:00
Author: https://github.com/davidot
Commit: 202de6ed25
Pull-request: https://github.com/SerenityOS/serenity/pull/12165
Reviewed-by: https://github.com/linusg ✅
2 changed files with 4 additions and 0 deletions
|
@ -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); \
|
||||
|
|
|
@ -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 }; \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue