ladybird/Userland/Libraries/LibJS
Andreas Kling ffe304e88b LibJS: Don't create arguments object due to o.arguments access
When deciding whether we need to create a full-blown `arguments` object,
we look at various things, starting as early as in the parser.

Until now, if the parser saw the identifier `arguments`, we'd decide
that it's enough of a clue that we should create the `arguments` object
since somebody is obviously accessing it.

However, that missed the case where someone is just accessing a property
named `arguments` on some object. In such cases (`o.arguments`), we now
hold off on creating an `arguments` object.

~11% speed-up on Octane/typescript.js :^)
2023-11-16 13:26:21 +01:00
..
Bytecode LibJS: Expose various offsets for GetGlobal JIT fast path 2023-11-13 13:33:43 +01:00
Contrib/Test262 LibJS: Make Heap::allocate<T>() infallible 2023-08-13 15:38:42 +02:00
Heap AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
JIT LibJS/JIT: Add a fast path for floating point comparisons 2023-11-16 11:43:44 +01:00
Runtime LibJS/JIT: Use the x86_64 setcc instruction to remove a branch 2023-11-14 09:54:48 +01:00
Tests LibJS: Change Intl.Locale info APIs from property getters to methods 2023-11-13 20:10:58 +01:00
AST.cpp LibJS: Inline fast case for Value::to_{boolean,number,numeric,primitive} 2023-10-07 07:13:52 +02:00
AST.h LibJS: Mark classes and virtual functions final where possible 2023-08-13 18:05:09 +02:00
CMakeLists.txt LibJS: Link with libatomic on i*86 2023-11-08 09:29:59 +01:00
Console.cpp LibJS: Inline fast case for Value::to_{boolean,number,numeric,primitive} 2023-10-07 07:13:52 +02:00
Console.h LibJS: Begin implementing console.dir 2023-06-22 06:46:27 +02:00
CyclicModule.cpp LibJS+LibWeb: Bring script fetching closer to the spec 2023-10-31 18:09:14 +01:00
CyclicModule.h LibJS+LibWeb: Bring script fetching closer to the spec 2023-10-31 18:09:14 +01:00
Forward.h LibJS: Add ModuleWithSpecifier for LoadedModules 2023-10-31 18:09:14 +01:00
Lexer.cpp AK: Make "foo"_string infallible 2023-08-07 16:03:27 +02:00
Lexer.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
MarkupGenerator.cpp LibJS: Use OrderedHashMap for the Shape property table 2023-09-17 21:00:11 +02:00
MarkupGenerator.h LibJS: Fix redundancy-detection when printing raw values 2023-06-15 08:09:16 +02:00
Module.cpp LibJS+LibWeb: Bring script fetching closer to the spec 2023-10-31 18:09:14 +01:00
Module.h LibJS+LibWeb: Bring script fetching closer to the spec 2023-10-31 18:09:14 +01:00
Parser.cpp LibJS: Don't create arguments object due to o.arguments access 2023-11-16 13:26:21 +01:00
Parser.h LibJS: Don't create arguments object due to o.arguments access 2023-11-16 13:26:21 +01:00
ParserError.cpp LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
ParserError.h LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
Position.h LibJS: Make line-and-column resolution fast for large minified JS 2023-09-12 17:21:42 +02:00
Print.cpp LibJS: Make Value::to_string_without_side_effects() infallible 2023-08-09 17:09:16 +02:00
Print.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
SafeFunction.h LibJS: Add GC graph dumper 2023-08-17 18:27:02 +02:00
Script.cpp LibJS: Add LoadedModules to Script and CyclicModule 2023-10-31 18:09:14 +01:00
Script.h LibJS: Add LoadedModules to Script and CyclicModule 2023-10-31 18:09:14 +01:00
SourceCode.cpp LibJS: Make line-and-column resolution fast for large minified JS 2023-09-12 17:21:42 +02:00
SourceCode.h LibJS: Make line-and-column resolution fast for large minified JS 2023-09-12 17:21:42 +02:00
SourceRange.h LibJS: Make line-and-column resolution fast for large minified JS 2023-09-12 17:21:42 +02:00
SourceTextModule.cpp LibJS: Remove unused realm parameter from run_and_return_frame() 2023-09-21 16:19:13 +02:00
SourceTextModule.h LibJS: Implement import.meta for bytecode 2023-07-14 06:06:04 +02:00
SyntaxHighlighter.cpp LibSyntax+Userland: Make LibSyntax not depend on LibGUI 2023-08-29 07:57:39 -04:00
SyntaxHighlighter.h LibSyntax: Teach each highlighter about it's comment syntax 2022-11-27 18:28:43 -07:00
SyntheticModule.cpp LibJS: Make PrimitiveString::create() infallible 2023-08-09 17:09:16 +02:00
SyntheticModule.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Token.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
Token.h LibJS: Remove DeprecatedString usage from Token 2023-01-26 20:25:25 +00:00