1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 00:07:34 +00:00
serenity/Userland/Libraries/LibJS
Hendiadyoin1 eb50969781 LibJS: Add an EliminateLoads pass to Bytecode
This pass tries to eliminate repeated lookups of variables by name, by
remembering where these where last loaded to.

For now the lookup cache needs to be fully cleared with each call or
property access, because we do not have a way to check if these have any
side effects on the currently visible scopes.

Note that property accesses can cause getters/setters to be called, so
these are treated as calls in all cases.
2022-12-03 15:25:05 +00:00
..
Bytecode LibJS: Add an EliminateLoads pass to Bytecode 2022-12-03 15:25:05 +00:00
Contrib/Test262 LibJS: Add missing <AK/TypeCasts.h> include in $262Object.cpp 2022-11-23 16:05:59 +00:00
Heap LibJS+LibWeb: Return non-const types from Ptr class operators 2022-11-19 14:37:31 +00:00
Runtime LibJS: Implement Set.prototype.isDisjointFrom 2022-12-02 13:09:15 +01:00
Tests LibJS: Implement Set.prototype.isDisjointFrom 2022-12-02 13:09:15 +01:00
AST.cpp LibJS: Fix that constant declaration in for loop was mutable in body 2022-11-30 08:05:37 +01:00
AST.h LibJS: Remove m_first_invalid_property_range from ObjectExpression 2022-11-27 12:31:37 +01:00
CMakeLists.txt LibJS: Add an EliminateLoads pass to Bytecode 2022-12-03 15:25:05 +00:00
Console.cpp LibJS+js: Disable console debug messages outside Serenity only for js 2022-10-16 02:06:02 +03:30
Console.h LibJS+js: Disable console debug messages outside Serenity only for js 2022-10-16 02:06:02 +03:30
CyclicModule.cpp LibJS: No longer assume there is a cycle root when module failed before 2022-11-27 00:51:36 +00:00
CyclicModule.h LibJS+LibWeb: Make CyclicModule.h not include AST.h 2022-11-23 16:05:59 +00:00
Forward.h LibJS+LibWeb: Move JS::ModuleRequest to its own header file 2022-11-23 16:05:59 +00:00
Interpreter.cpp LibJS: Make Script and Module GC-allocated 2022-09-06 00:27:09 +02:00
Interpreter.h LibJS: Make Interpreter.h not include AST.h 2022-11-23 16:05:59 +00:00
Lexer.cpp LibJS: Treat '\\' as an escaped character in template literals 2022-11-15 12:00:36 +00:00
Lexer.h LibJS: Reduce AST memory usage by shrink-wrapping source range info 2022-11-22 21:13:35 +01:00
MarkupGenerator.cpp LibJS: Reduce AST memory usage by shrink-wrapping source range info 2022-11-22 21:13:35 +01:00
MarkupGenerator.h WebContent+LibWeb+LibJS: Report exceptions to the JS console 2022-10-15 01:25:12 +02:00
Module.cpp LibJS: Make CyclicModule.h not include PromiseCapability.h 2022-11-23 16:05:59 +00:00
Module.h LibJS: Add [[HostDefined]] field to Modules 2022-10-06 16:41:36 +02:00
Parser.cpp LibJS: Allow CallExpressions as lhs of assignments in most cases 2022-11-30 08:05:37 +01:00
Parser.h LibJS: Remove m_first_invalid_property_range from ObjectExpression 2022-11-27 12:31:37 +01:00
ParserError.cpp LibJS: Make Parser::Error a standalone ParserError class 2022-11-23 16:05:59 +00:00
ParserError.h LibJS: Make Parser::Error a standalone ParserError class 2022-11-23 16:05:59 +00:00
Print.cpp LibJS+js: Move the value print implementation to LibJS 2022-11-26 02:23:15 +03:30
Print.h LibJS+js: Move the value print implementation to LibJS 2022-11-26 02:23:15 +03:30
SafeFunction.h LibJS: Don't register SafeFunction-to-function-pointer with JS::Heap 2022-10-20 15:16:23 +02:00
Script.cpp LibJS: Make Parser::Error a standalone ParserError class 2022-11-23 16:05:59 +00:00
Script.h LibJS: Make Script.h not include AST.h 2022-11-23 16:05:59 +00:00
SourceCode.cpp LibJS: Unbreak test262-parser-tests after source range caching changes 2022-11-24 18:01:52 +01:00
SourceCode.h LibJS: Make Error stack trace generation faster with a line break cache 2022-11-24 16:06:20 +00:00
SourceRange.h LibJS: Reduce AST memory usage by shrink-wrapping source range info 2022-11-22 21:13:35 +01:00
SourceTextModule.cpp LibJS: Use the source offset to sort imports in module 2022-11-27 00:51:36 +00:00
SourceTextModule.h LibJS: Make SourceTextModule.h not include AST.h or Parser.h 2022-11-23 16:05:59 +00:00
SyntaxHighlighter.cpp LibJS: Remove a bunch of gratuitous JS namespace qualifiers 2022-04-03 15:19:33 +01:00
SyntaxHighlighter.h LibSyntax: Teach each highlighter about it's comment syntax 2022-11-27 18:28:43 -07:00
SyntheticModule.cpp LibJS: Make Script and Module GC-allocated 2022-09-06 00:27:09 +02:00
SyntheticModule.h LibJS: Make Script and Module GC-allocated 2022-09-06 00:27:09 +02:00
Token.cpp LibJS: Make Token use the new double parser 2022-10-23 15:48:45 +02:00
Token.h Everywhere: Explicitly specify the size in StringView constructors 2022-07-12 23:11:35 +02:00