1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 16:18:12 +00:00
serenity/Userland/Libraries/LibJS
Timothy Flynn 27904b1060 LibJS: Add a fast path for creating per-iteration DeclarativeEnvironment
The steps for creating a DeclarativeEnvironment for each iteration of a
for-loop can be done equivalently to the spec without following the spec
directly. For each binding creating in the loop's init expression, we:

    1. Create a new binding in the new environment.
    2. Grab the current value of the binding in the old environment.
    3. Set the value in the new environment to the old value.

This can be replaced by initializing the bindings vector in the new
environment directly with the bindings in the old environment (but only
copying the bindings of the init statement).
2022-03-14 16:33:15 +01:00
..
Bytecode LibJS: Implement bytecode generation for WithStatement 2022-03-13 17:50:21 +01:00
Heap LibJS: Remove MarkedValueList in favor of MarkedVector<Value> :^) 2022-02-09 12:25:27 +00:00
Runtime LibJS: Add a fast path for creating per-iteration DeclarativeEnvironment 2022-03-14 16:33:15 +01:00
Tests LibJS: Add some tests for TypedArray.prototype.set 2022-03-13 16:49:25 +01:00
AST.cpp LibJS: Add a fast path for creating per-iteration DeclarativeEnvironment 2022-03-14 16:33:15 +01:00
AST.h LibJS: Implement bytecode generation for WithStatement 2022-03-13 17:50:21 +01:00
CMakeLists.txt LibJS: Add an initial implementation of Collator Compare Functions 2022-02-20 22:05:59 -05:00
Console.cpp LibJS: Implement console.time/timeLog/timeEnd() methods 2021-12-27 21:44:07 +01:00
Console.h LibJS: Implement console.time/timeLog/timeEnd() methods 2021-12-27 21:44:07 +01:00
CyclicModule.cpp LibJS: Use new NativeFunction::create() in most places 2022-02-20 23:21:40 +00:00
CyclicModule.h LibJS: Implement the import assertions proposal 2022-01-30 17:40:20 +00:00
Forward.h LibJS: Describe various kinds of "Duration Records" 2022-03-10 23:20:39 +01:00
Interpreter.cpp LibJS+Everywhere: Remove VM::exception() and most related functions 2022-02-08 09:12:42 +00:00
Interpreter.h LibJS: Replace uses of MarkedValueList with MarkedVector<Value> 2022-02-09 12:25:27 +00: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+js: Pretty-print Date objects using the ToDateString AO 2022-01-15 20:13:48 +01:00
MarkupGenerator.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Module.cpp LibJS: Add support for JSON modules 2022-01-30 17:40:20 +00:00
Module.h LibWeb: Introduce the Environment Settings Object 2022-02-08 17:47:44 +00:00
Parser.cpp LibJS: Implement the object literal __proto__ property key special case 2022-03-06 01:38:25 +02:00
Parser.h LibJS: Fix mixing of logical and coalescing operators 2022-02-16 11:18:41 +00:00
Script.cpp LibWeb: Use inline script tag source line as javascript line offset 2022-03-14 00:25:33 +01:00
Script.h LibWeb: Use inline script tag source line as javascript line offset 2022-03-14 00:25:33 +01:00
SourceRange.h LibJS: Add missing headers 2021-10-06 23:52:40 +01:00
SourceTextModule.cpp LibJS+Everywhere: Remove VM::exception() and most related functions 2022-02-08 09:12:42 +00:00
SourceTextModule.h LibJS: Implement the import assertions proposal 2022-01-30 17:40:20 +00:00
SyntaxHighlighter.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
SyntaxHighlighter.h LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
SyntheticModule.cpp LibJS: Reduce header dependency graph in Realm.h 2022-02-07 19:16:46 +01:00
SyntheticModule.h LibJS: Add support for JSON modules 2022-01-30 17:40:20 +00:00
Token.cpp LibJS: Disallow '\8' and '\9' in strict mode due to being octal escapes 2021-11-30 17:05:32 +00:00
Token.h LibJS: Add Token::flystring_value() to produce FlyString directly 2022-02-13 14:44:36 +01:00