ladybird/Userland/Libraries/LibJS
Luke Wilde da25ac0d48 AK: Treat empty string as invalid JSON
Previously we would treat the empty string as `null`. This caused
JavaScript like this to fail:
```js
var object = {};
try {
    object = JSON.parse("");
} catch {}
var array = object.array || [];
```
Since `JSON.parse("")` returned null instead of throwing, it would set
`object` to null and then try and use it instead of using the default
backup value.
2022-07-10 23:31:48 +02:00
..
Bytecode LibJS/Bytecode: End the for variable scope at the start of its end block 2022-06-30 15:59:55 +01:00
Contrib/Test262 LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Heap LibJS: Make Handle<Value>::is_null() also consider the contained value 2022-04-05 11:46:48 +02:00
Runtime LibJS: Fix typos in Temporal spec comments 2022-07-10 01:29:28 +02:00
Tests AK: Treat empty string as invalid JSON 2022-07-10 23:31:48 +02:00
AST.cpp LibJS: Make AST.cpp compile with -O0 2022-07-06 14:12:51 +02:00
AST.h LibJS/Bytecode: Implement break/continue labels 2022-06-13 07:13:03 +04:30
CMakeLists.txt LibJS: Start implementing the stage 3 Intl.DurationFormat proposal 2022-07-01 01:00:05 +03:00
Console.cpp LibJS: Convert Console to use MarkedVector<Value> 2022-05-07 01:22:09 +02:00
Console.h LibJS: Convert Console to use MarkedVector<Value> 2022-05-07 01:22:09 +02:00
CyclicModule.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
CyclicModule.h LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Forward.h LibJS: Start implementing the stage 3 Intl.DurationFormat proposal 2022-07-01 01:00:05 +03:00
Interpreter.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Interpreter.h LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Lexer.cpp LibJS: Always inline Lexer::current_code_point() 2022-02-13 14:44:36 +01:00
Lexer.h LibJS: Detect invalid unicode and stop lexing at that point 2021-12-29 16:57:23 +01:00
MarkupGenerator.cpp LibJS: Remove a bunch of gratuitous JS namespace qualifiers 2022-04-03 15:19:33 +01:00
MarkupGenerator.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Module.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Module.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Parser.cpp LibJS: Explicitly instantiate Parser::parse_function_node 2022-07-04 21:46:02 +02:00
Parser.h LibJS: Properly compute the line for source location hints 2022-07-06 11:12:45 +02:00
Script.cpp LibJS: Rename some variables from "script body" to "script" 2022-05-01 22:47:38 +02:00
Script.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SourceRange.h LibJS: Add missing headers 2021-10-06 23:52:40 +01:00
SourceTextModule.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
SourceTextModule.h LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
SyntaxHighlighter.cpp LibJS: Remove a bunch of gratuitous JS namespace qualifiers 2022-04-03 15:19:33 +01:00
SyntaxHighlighter.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SyntheticModule.cpp LibJS: Mark concrete method calls of Environment Records with ?/! 2022-05-25 00:25:23 +01:00
SyntheticModule.h LibJS: Add support for JSON modules 2022-01-30 17:40:20 +00:00
Token.cpp AK: Use an enum instead of a bool for String::replace(all_occurences) 2022-07-06 11:12:45 +02:00
Token.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00