1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:58:11 +00:00
serenity/Userland/Libraries/LibJS
Timothy Flynn 12f9f3d9ef LibJS: Support instrinsic Object properties with deferred evaluation
For performance, it is desirable to defer evaluation of intrinsics that
are stored on the GlobalObject for every created Realm. To support this,
Object now maintains a global storage map to store lambdas that will
return the associated intrinsic when evaluated. Once accessed, the
instrinsic is moved from this global map to normal Object storage.

To prevent this flow from becoming observable, when a deferred intrinsic
is stored, we still place an empty object in the normal Object storage.
This is so we still create the metadata for the object, and in doing so,
can preserve insertion order of the Object storage. Otherwise, this will
be observable by way of Object.getOwnPropertyDescriptors.
2022-11-26 09:36:22 +01:00
..
Bytecode LibJS+LibWeb: Make Runtime/AbstractOperations.h not include AST.h 2022-11-23 16:05:59 +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: Support instrinsic Object properties with deferred evaluation 2022-11-26 09:36:22 +01:00
Tests LibJS: Fix UTF-16 corruption in String.prototype.replace() 2022-11-19 11:30:06 -07:00
AST.cpp LibJS: Shrink Identifier's environment coordinate cache 2022-11-22 21:13:35 +01:00
AST.h LibJS: Avoid unnecessary SourceRange construction in parse_program() 2022-11-24 16:06:20 +00:00
CMakeLists.txt LibJS+js: Move the value print implementation to LibJS 2022-11-26 02:23:15 +03:30
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+LibWeb: Move JS::ModuleRequest to its own header file 2022-11-23 16:05:59 +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: Avoid unnecessary SourceRange construction in parse_program() 2022-11-24 16:06:20 +00:00
Parser.h LibJS: Make FunctionNode::Parameter be a standalone FunctionParameter 2022-11-23 16:05:59 +00: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+LibWeb: Make CyclicModule.h not include AST.h 2022-11-23 16:05:59 +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 Everywhere: Run clang-format 2022-04-01 21:24:45 +01: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