mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibJS: eval(x) should return x without evaluation if x is not a string
This commit is contained in:
parent
d792200a55
commit
60e630d5a0
Notes:
sideshowbarker
2024-07-18 21:16:35 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/60e630d5a0f
2 changed files with 9 additions and 4 deletions
|
@ -316,10 +316,10 @@ Value GlobalObject::get_this_binding(GlobalObject&) const
|
|||
|
||||
JS_DEFINE_NATIVE_FUNCTION(GlobalObject::eval)
|
||||
{
|
||||
auto code = vm.argument(0).to_string(global_object);
|
||||
if (code.is_null())
|
||||
return {};
|
||||
JS::Parser parser { JS::Lexer { code } };
|
||||
if (!vm.argument(0).is_string())
|
||||
return vm.argument(0);
|
||||
auto& code_string = vm.argument(0).as_string();
|
||||
JS::Parser parser { JS::Lexer { code_string.string() } };
|
||||
auto program = parser.parse_program();
|
||||
|
||||
if (parser.has_errors()) {
|
||||
|
|
|
@ -24,3 +24,8 @@ test("syntax error", () => {
|
|||
"Unexpected token Eof. Expected CurlyClose (line: 1, column: 2)"
|
||||
);
|
||||
});
|
||||
|
||||
test("returns 1st argument unless 1st argument is a string", () => {
|
||||
var string_object = new String("1 + 2");
|
||||
expect(string_object).toBe(string_object);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue