1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:38:11 +00:00
serenity/Userland/Libraries/LibJS
Aliaksandr Kalenik 3661d674ae LibJS: Add optimized GetGlobal instruction to access global variables
Using a special instruction to access global variables allows skipping
the environment chain traversal for them and going directly to the
module/global environment. Currently, this instruction only caches the
offset for bindings that belong to the global object environment.
However, there is also an opportunity to cache the offset in the global
declarative record.

This change results in a 57% increase in speed for
imaging-gaussian-blur.js in Kraken.
2023-07-12 16:03:16 +02:00
..
Bytecode LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
Contrib/Test262 LibJS: Make $262.evalScript() work in bytecode mode 2023-06-25 13:13:19 +02:00
Heap LibWeb+LibJS: Move some code around to make CSS/Parser parse faster 2023-07-11 09:38:37 +03:30
Runtime LibJS: Add modification counter in DeclarativeEnvironment 2023-07-12 16:03:16 +02:00
Tests LibJS: Re-implement the Array Grouping proposal as static methods 2023-07-12 00:03:54 +02:00
AST.cpp LibJS: Identify global variables during parsing 2023-07-12 16:03:16 +02:00
AST.h LibJS: Identify global variables during parsing 2023-07-12 16:03:16 +02:00
CMakeLists.txt LibWeb+LibJS: Move some code around to make CSS/Parser parse faster 2023-07-11 09:38:37 +03:30
Console.cpp LibJS: Begin implementing console.dir 2023-06-22 06:46:27 +02:00
Console.h LibJS: Begin implementing console.dir 2023-06-22 06:46:27 +02:00
CyclicModule.cpp LibJS+LibWeb: Add missing visit calls in visit_edges implementations 2023-04-30 06:04:33 +02:00
CyclicModule.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Forward.h LibJS: Forward declare the MemberExpression AST node 2023-07-07 18:11:51 +02:00
Interpreter.cpp LibJS/Bytecode: Leave GlobalDeclarationInstantiation in C++ 2023-06-16 08:40:45 +02:00
Interpreter.h Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
Lexer.cpp LibJS: Parse slashes after reserved identifiers correctly 2023-06-10 07:20:33 +02:00
Lexer.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
MarkupGenerator.cpp LibJS: Fix redundancy-detection when printing raw values 2023-06-15 08:09:16 +02:00
MarkupGenerator.h LibJS: Fix redundancy-detection when printing raw values 2023-06-15 08:09:16 +02:00
Module.cpp LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate 2023-01-29 00:02:45 +00:00
Module.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Parser.cpp LibJS: Identify global variables during parsing 2023-07-12 16:03:16 +02:00
Parser.h LibJS: Identify global variables during parsing 2023-07-12 16:03:16 +02: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
Print.cpp LibJS: Show when an ArrayBuffer is detached when printing 2023-06-30 23:23:15 +02:00
Print.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
SafeFunction.h LibJS: Fix compilation of operator= for JS::SafeFunction 2023-03-07 11:51:12 +00:00
Script.cpp LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Script.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
SourceCode.cpp LibJS: Make RefPtr and NonnullRefPtr usage const-correct 2023-02-21 00:54:04 +01:00
SourceCode.h LibJS: Make RefPtr and NonnullRefPtr usage const-correct 2023-02-21 00:54:04 +01:00
SourceRange.h LibJS+LibWeb: Add a bunch of missing includes 2023-03-06 13:05:43 +00:00
SourceTextModule.cpp LibJS+LibWeb: Plumb local variables names to ECMAScriptFunctionObject 2023-07-05 21:03:01 +02:00
SourceTextModule.h LibJS: Make RefPtr and NonnullRefPtr usage const-correct 2023-02-21 00:54:04 +01:00
SyntaxHighlighter.cpp LibSyntax+Libraries: Replace TextStyle with Gfx::TextAttributes 2023-03-15 14:55:49 +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 intrinsics getters return NonnullGCPtr 2023-04-13 14:29:42 +02:00
SyntheticModule.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Token.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
Token.h LibJS: Remove DeprecatedString usage from Token 2023-01-26 20:25:25 +00:00