1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:28:12 +00:00
serenity/Userland/Libraries/LibJS/Runtime
davidot e746360b9a LibJS: Use NaN boxing to decrease the memory size of Values
Using the fact that there are 2^52-2 NaN representations we can
"NaN-box" all the Values possible. This means that Value no longer has
an explicit "Type" but that information is now stored in the bits of a
double. This is done by "tagging" the top two bytes of the double.
For a full explanation see the large comment with asserts at the top of
Value.

We can also use the exact representation of the tags to make checking
properties like nullish, or is_cell quicker. But the largest gains are
in the fact that the size of a Value is now halved.

The SunSpider and other benchmarks have been ran to confirm that there
are no regressions in performance compared to the previous
implementation. The tests never performed worse and in some cases
performed better. But the biggest differences can be seen in memory
usage when large arrays are allocated. A simple test which allocates a
1000 arrays of size 100000 has roughly half the memory usage.

There is also space in the representations for future expansions such as
tuples and records.

To ensure that Values on the stack and registers are not lost during
garbage collection we also have to add a check to the Heap to check for
any of the cell tags and extracting the canonical form of the pointer
if it matches.
2022-08-15 17:11:25 +02:00
..
Intl LibJS: Allow out-of-order plural ranges to be formatted 2022-07-26 10:46:08 -07:00
Temporal LibJS: Correct BalanceDurationRelative algorithm 2022-08-06 13:42:37 +01:00
AbstractOperations.cpp LibJS/Bytecode: Get result from accumulator in PerformEval 2022-07-18 09:00:21 +01:00
AbstractOperations.h LibJS: Replace comparisons of "0"_bigint with SignedBigInteger::is_zero 2022-07-18 08:51:07 +01:00
Accessor.h DevTools+LibJS+LibWeb: Change class_name to use StringView 2022-03-19 00:20:46 +00:00
AggregateError.cpp LibJS: Make AggregateError inherit from Error 2021-06-23 13:59:17 +01:00
AggregateError.h LibJS: Make AggregateError inherit from Error 2021-06-23 13:59:17 +01:00
AggregateErrorConstructor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
AggregateErrorConstructor.h LibJS: Convert NativeFunction::{call,construct}() to ThrowCompletionOr 2021-10-21 09:02:23 +01:00
AggregateErrorPrototype.cpp LibJS: Add define_direct_property and remove the define_property helper 2021-07-06 14:20:30 +01:00
AggregateErrorPrototype.h LibJS: Implement AggregateError 2021-06-11 18:49:50 +01:00
ArgumentsObject.cpp LibJS: Remove bogus FIXME in ArgumentsObject::internal_get() 2022-05-03 22:51:36 +02:00
ArgumentsObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Array.cpp LibJS: Use SortIndexedProperties AO in Array.prototype.sort 2022-07-25 22:40:52 +01:00
Array.h LibJS: Use u64 for the length parameter in Array::create() 2022-07-04 10:10:11 +02:00
ArrayBuffer.cpp LibJS: Revert partial resizable ArrayBuffer implementation 2022-07-06 15:52:57 +02:00
ArrayBuffer.h LibJS: Revert partial resizable ArrayBuffer implementation 2022-07-06 15:52:57 +02:00
ArrayBufferConstructor.cpp LibJS: Revert partial resizable ArrayBuffer implementation 2022-07-06 15:52:57 +02:00
ArrayBufferConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayBufferPrototype.cpp LibJS: Revert partial resizable ArrayBuffer implementation 2022-07-06 15:52:57 +02:00
ArrayBufferPrototype.h LibJS: Revert partial resizable ArrayBuffer implementation 2022-07-06 15:52:57 +02:00
ArrayConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayIterator.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayIterator.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayIteratorPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayIteratorPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ArrayPrototype.cpp LibJS: Update Array.prototype.sort comments to align with implementation 2022-07-27 17:35:50 +01:00
ArrayPrototype.h LibJS: Use SortIndexedProperties AO in Array.prototype.sort 2022-07-25 22:40:52 +01:00
AsyncFromSyncIterator.cpp LibJS: Implement proper Iterator records 2022-01-09 22:02:43 +01:00
AsyncFromSyncIterator.h LibJS: Implement proper Iterator records 2022-01-09 22:02:43 +01:00
AsyncFromSyncIteratorPrototype.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
AsyncFromSyncIteratorPrototype.h LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
AsyncFunctionConstructor.cpp LibJS: Use FunctionConstructor as the proto of AsyncFunctionConstructor 2022-02-19 18:06:39 +00:00
AsyncFunctionConstructor.h LibJS: Add support for async functions 2021-11-10 08:48:27 +00:00
AsyncFunctionDriverWrapper.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
AsyncFunctionDriverWrapper.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
AsyncFunctionPrototype.cpp LibJS: Add support for async functions 2021-11-10 08:48:27 +00:00
AsyncFunctionPrototype.h LibJS: Add support for async functions 2021-11-10 08:48:27 +00:00
AsyncGenerator.cpp LibJS: Add AsyncGenerator / AsyncGeneratorPrototype 2022-05-05 22:40:57 +02:00
AsyncGenerator.h LibJS: Add AsyncGenerator / AsyncGeneratorPrototype 2022-05-05 22:40:57 +02:00
AsyncGeneratorFunctionConstructor.cpp LibJS: Remove duplicate definition of AsyncGeneratorFunction.prototype 2022-01-19 19:26:03 +00:00
AsyncGeneratorFunctionConstructor.h LibJS: Parse async generator functions 2021-11-21 21:46:39 +00:00
AsyncGeneratorFunctionPrototype.cpp LibJS: Add AsyncGenerator / AsyncGeneratorPrototype 2022-05-05 22:40:57 +02:00
AsyncGeneratorFunctionPrototype.h LibJS: Parse async generator functions 2021-11-21 21:46:39 +00:00
AsyncGeneratorPrototype.cpp LibJS: Add AsyncGenerator / AsyncGeneratorPrototype 2022-05-05 22:40:57 +02:00
AsyncGeneratorPrototype.h LibJS: Add AsyncGenerator / AsyncGeneratorPrototype 2022-05-05 22:40:57 +02:00
AsyncGeneratorRequest.h LibJS: Add AsyncGenerator / AsyncGeneratorPrototype 2022-05-05 22:40:57 +02:00
AsyncIteratorPrototype.cpp LibJS: Mark %{Async,}IteratorPrototype%[@@iterator] as Configurable 2022-02-19 22:16:30 +00:00
AsyncIteratorPrototype.h LibJS: Add AsyncIteratorPrototype 2021-11-29 15:20:07 +00:00
AtomicsObject.cpp AK/ByteBuffer+Everywhere: Handle errors in ByteBuffer::slice() 2022-06-13 15:38:51 +01:00
AtomicsObject.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
BigInt.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BigInt.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
BigIntConstructor.cpp LibJS: Only coerce value once in BigInt constructor 2022-08-03 20:59:59 +01:00
BigIntConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BigIntObject.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BigIntObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BigIntPrototype.cpp LibJS: Hook the Intl mathematical value into Intl.NumberFormat 2022-07-20 18:21:24 +01:00
BigIntPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BooleanConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BooleanConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BooleanObject.cpp LibJS: Add missing whitespace around namespace curly braces 2022-04-17 23:00:35 +02:00
BooleanObject.h LibJS: Add missing whitespace around namespace curly braces 2022-04-17 23:00:35 +02:00
BooleanPrototype.cpp LibJS: Add missing whitespace around namespace curly braces 2022-04-17 23:00:35 +02:00
BooleanPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
BoundFunction.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
BoundFunction.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CanonicalIndex.h LibJS: Add missing include for 'u32' to CanonicalIndex.h 2022-02-14 23:02:56 +00:00
ClassFieldDefinition.h LibJS: De-duplicate ClassFieldDefinition Records 2022-04-20 00:08:32 +02:00
CommonPropertyNames.h LibJS: Hook up the 'v' (unicodeSets) RegExp flag 2022-07-20 21:25:59 +01:00
Completion.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Completion.h LibJS: Specialize Optional<Completion> 2022-08-15 17:11:25 +02:00
ConsoleObject.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ConsoleObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
DataView.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
DataView.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
DataViewConstructor.cpp LibJS: Check for add overflow in DataViewConstructor 2022-06-27 20:51:00 +01:00
DataViewConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
DataViewPrototype.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
DataViewPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Date.cpp LibJS: Convert remaining Date AOs using JS::Value as in/output to double 2022-05-06 22:32:47 +02:00
Date.h LibJS: Replace magic nanosecond numbers with constants 2022-05-08 00:07:58 +02:00
DateConstructor.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
DateConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
DatePrototype.cpp LibJS: Fix numeric type in Date.prototype.toTemporalInstant() 2022-05-08 00:07:58 +02:00
DatePrototype.h LibJS: Convert remaining Date AOs using JS::Value as in/output to double 2022-05-06 22:32:47 +02:00
DeclarativeEnvironment.cpp LibJS: Mark concrete method calls of Environment Records with ?/! 2022-05-25 00:25:23 +01:00
DeclarativeEnvironment.h LibJS: Rename scope to environment 2022-05-01 22:47:38 +02:00
ECMAScriptFunctionObject.cpp LibJS: Set "prototype" property of async generator functions 2022-05-05 22:40:57 +02:00
ECMAScriptFunctionObject.h LibJS: Rename scope to environment 2022-05-01 22:47:38 +02:00
Environment.cpp LibJS: Remove unnecessary GlobalObject pointer from Environment 2022-01-31 16:19:23 +01:00
Environment.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
EnvironmentCoordinate.h LibJS: Add missing header in EnvironmentCoordinate.h 2021-10-20 09:20:18 +01:00
Error.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Error.h LibJS: Add a traceback to Error 2022-02-08 09:12:42 +00:00
ErrorConstructor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ErrorConstructor.h LibJS: Convert NativeFunction::{call,construct}() to ThrowCompletionOr 2021-10-21 09:02:23 +01:00
ErrorPrototype.cpp LibJS: Handle non-Error this object in Error.prototype.stack getter 2022-03-15 17:32:48 +01:00
ErrorPrototype.h LibJS: Implement the Error.prototype.stack setter 2022-03-08 22:59:09 +01:00
ErrorTypes.cpp LibJS: Emit StringViews for ErrorType instances 2022-07-12 23:11:35 +02:00
ErrorTypes.h LibJS: Allow out-of-order plural ranges to be formatted 2022-07-26 10:46:08 -07:00
ExecutionContext.h LibJS: Replace uses of MarkedValueList with MarkedVector<Value> 2022-02-09 12:25:27 +00:00
FinalizationRegistry.cpp LibJS: Implement stage 3 proposal FinalizationRegistry changes 2022-06-23 10:57:52 +03:00
FinalizationRegistry.h LibJS: Implement stage 3 proposal FinalizationRegistry changes 2022-06-23 10:57:52 +03:00
FinalizationRegistryConstructor.cpp LibJS: Move additional notes to spec comments onto their own line 2022-04-11 21:32:37 +01:00
FinalizationRegistryConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
FinalizationRegistryPrototype.cpp LibJS: Implement stage 3 proposal FinalizationRegistry changes 2022-06-23 10:57:52 +03:00
FinalizationRegistryPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
FunctionConstructor.cpp LibJS: Remove callerRealm from HostEnsureCanCompileStrings 2022-05-08 17:12:27 +02:00
FunctionConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
FunctionEnvironment.cpp LibJS: Rename scope to environment 2022-05-01 22:47:38 +02:00
FunctionEnvironment.h LibJS: Rename scope to environment 2022-05-01 22:47:38 +02:00
FunctionKind.h LibJS: Rename FunctionKind::{Regular => Normal} 2022-01-16 01:54:48 +01:00
FunctionObject.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
FunctionObject.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
FunctionPrototype.cpp LibJS: Make Function.prototype a callable function object 2022-08-14 00:44:27 +01:00
FunctionPrototype.h LibJS: Make Function.prototype a callable function object 2022-08-14 00:44:27 +01:00
GeneratorFunctionConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
GeneratorFunctionConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
GeneratorFunctionPrototype.cpp LibJS: Add missing whitespace around namespace curly braces 2022-04-17 23:00:35 +02:00
GeneratorFunctionPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
GeneratorObject.cpp LibJS: Make the BC generator.next(value) work 2022-04-18 23:59:30 +04:30
GeneratorObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
GeneratorPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
GeneratorPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
GlobalEnvironment.cpp LibJS: Mark concrete method calls of Environment Records with ?/! 2022-05-25 00:25:23 +01:00
GlobalEnvironment.h LibJS: Convert create_global_function_binding() to ThrowCompletionOr 2021-12-29 16:02:44 +01:00
GlobalObject.cpp LibJS: Let Shape store a Realm instead of a GlobalObject 2022-08-05 12:42:46 +02:00
GlobalObject.h LibJS: Let Shape store a Realm instead of a GlobalObject 2022-08-05 12:42:46 +02:00
IndexedProperties.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
IndexedProperties.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Iterator.h LibJS: Add a spec link for Iterator Records 2022-02-18 13:57:34 +00:00
IteratorOperations.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
IteratorOperations.h LibJS: Replace uses of MarkedValueList with MarkedVector<Value> 2022-02-09 12:25:27 +00:00
IteratorPrototype.cpp LibJS: Don't coerce this value in %IteratorPrototype%[@@iterator] 2022-04-18 00:24:02 +02:00
IteratorPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
JobCallback.h LibJS: Replace uses of MarkedValueList with MarkedVector<Value> 2022-02-09 12:25:27 +00:00
JSONObject.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
JSONObject.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Map.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Map.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapIterator.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapIterator.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapIteratorPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapIteratorPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MapPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
MathObject.cpp LibJS: Add extreme value tests for cos and sin 2022-08-15 17:11:25 +02:00
MathObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ModuleEnvironment.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ModuleEnvironment.h LibJS: Add ModuleEnvironment 2022-01-22 01:21:18 +00:00
ModuleNamespaceObject.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ModuleNamespaceObject.h LibJS: Replace uses of MarkedValueList with MarkedVector<Value> 2022-02-09 12:25:27 +00:00
NativeFunction.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
NativeFunction.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NumberConstructor.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NumberConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
NumberObject.cpp LibJS: Add missing whitespace around namespace curly braces 2022-04-17 23:00:35 +02:00
NumberObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
NumberPrototype.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
NumberPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Object.cpp LibJS: Let Shape store a Realm instead of a GlobalObject 2022-08-05 12:42:46 +02:00
Object.h LibJS: Let Shape store a Realm instead of a GlobalObject 2022-08-05 12:42:46 +02:00
ObjectConstructor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ObjectConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ObjectEnvironment.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ObjectEnvironment.h LibJS: Convert delete_binding() to ThrowCompletionOr 2021-10-09 21:53:47 +01:00
ObjectPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ObjectPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
PrimitiveString.cpp LibJS: Rename PrimitiveString::m_{left,right} to m_{lhs,rhs} 2022-08-06 12:02:48 +02:00
PrimitiveString.h LibJS: Rename PrimitiveString::m_{left,right} to m_{lhs,rhs} 2022-08-06 12:02:48 +02:00
PrivateEnvironment.cpp LibJS: Mark entire private environment chains during GC 2021-12-08 10:29:54 +01:00
PrivateEnvironment.h DevTools+LibJS+LibWeb: Change class_name to use StringView 2022-03-19 00:20:46 +00:00
Promise.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
Promise.h LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromiseConstructor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromiseConstructor.h LibJS: Convert PromiseConstructor functions to ThrowCompletionOr 2021-10-23 18:01:51 +02:00
PromiseJobs.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromiseJobs.h LibJS: Setup host hooks and have promise jobs work out the realm 2022-02-08 17:47:44 +00:00
PromisePrototype.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromisePrototype.h LibJS: Convert PromisePrototype functions to ThrowCompletionOr 2021-10-23 18:01:51 +02:00
PromiseReaction.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromiseReaction.h LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromiseResolvingElementFunctions.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PromiseResolvingElementFunctions.h DevTools+LibJS+LibWeb: Change class_name to use StringView 2022-03-19 00:20:46 +00:00
PromiseResolvingFunction.cpp LibJS: Convert NativeFunction::{call,construct}() to ThrowCompletionOr 2021-10-21 09:02:23 +01:00
PromiseResolvingFunction.h DevTools+LibJS+LibWeb: Change class_name to use StringView 2022-03-19 00:20:46 +00:00
PropertyAttributes.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
PropertyDescriptor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
PropertyDescriptor.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
PropertyKey.h LibJS: Use NaN boxing to decrease the memory size of Values 2022-08-15 17:11:25 +02:00
PrototypeObject.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
ProxyConstructor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ProxyConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ProxyObject.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
ProxyObject.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Realm.cpp LibJS: Support creation of global object in Realm::set_global_object() 2022-08-06 12:02:48 +02:00
Realm.h LibJS+LibWeb: Restore type safety of Realm::set_global_object() 2022-08-06 12:02:48 +02:00
Reference.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Reference.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ReflectObject.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ReflectObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
RegExpConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
RegExpConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
RegExpObject.cpp LibJS: Hook up the 'v' (unicodeSets) RegExp flag 2022-07-20 21:25:59 +01:00
RegExpObject.h LibJS: Hook up the 'v' (unicodeSets) RegExp flag 2022-07-20 21:25:59 +01:00
RegExpPrototype.cpp LibJS: Hook up the 'v' (unicodeSets) RegExp flag 2022-07-20 21:25:59 +01:00
RegExpPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
RegExpStringIterator.cpp Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
RegExpStringIterator.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
RegExpStringIteratorPrototype.cpp Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
RegExpStringIteratorPrototype.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
Set.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Set.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetIterator.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetIterator.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetIteratorPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetIteratorPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SetPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
ShadowRealm.cpp LibJS: Call HostEnsureCanCompileStrings in PerformShadowRealmEval 2022-07-31 14:39:06 +02:00
ShadowRealm.h LibJS: Remove the name prefix for wrapped functions 2022-02-12 16:06:37 +00:00
ShadowRealmConstructor.cpp LibJS+LibWeb: Restore type safety of Realm::set_global_object() 2022-08-06 12:02:48 +02:00
ShadowRealmConstructor.h LibJS: Convert NativeFunction::{call,construct}() to ThrowCompletionOr 2021-10-21 09:02:23 +01:00
ShadowRealmPrototype.cpp LibJS: Check type of ShadowRealm.prototype.importValue() 2nd argument 2022-03-29 23:48:25 +01:00
ShadowRealmPrototype.h LibJS: Convert ShadowRealmPrototype functions to ThrowCompletionOr 2021-10-29 21:29:24 +03:00
Shape.cpp LibJS: Let Shape store a Realm instead of a GlobalObject 2022-08-05 12:42:46 +02:00
Shape.h LibJS: Let Shape store a Realm instead of a GlobalObject 2022-08-05 12:42:46 +02:00
StringConstructor.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
StringConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
StringIterator.cpp LibJS: Add missing whitespace around namespace curly braces 2022-04-17 23:00:35 +02:00
StringIterator.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
StringIteratorPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
StringIteratorPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
StringObject.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
StringObject.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
StringOrSymbol.h LibJS: Make StringOrSymbol always be FlyString in the string case 2021-06-13 19:11:29 +02:00
StringPrototype.cpp LibJS: Teach String.prototype.concat() to create rope strings 2022-08-06 13:50:39 +01:00
StringPrototype.h LibJS: Stub out String.prototype.normalize 2022-06-02 23:04:27 +01:00
Symbol.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
Symbol.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SymbolConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SymbolConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SymbolObject.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SymbolObject.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SymbolPrototype.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
SymbolPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
TypedArray.cpp LibJS: Add missing spec step to CompareTypedArrayElements 2022-07-25 22:40:52 +01:00
TypedArray.h LibJS: Add %TypedArray%.prototype.toSorted 2022-06-29 13:36:54 +01:00
TypedArrayConstructor.cpp LibJS: Remove implicit wrapping/unwrapping of completion records 2022-05-03 01:09:29 +02:00
TypedArrayConstructor.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TypedArrayPrototype.cpp LibJS: Remove %TypedArray%.prototype.toSpliced 2022-07-27 17:35:50 +01:00
TypedArrayPrototype.h LibJS: Remove %TypedArray%.prototype.toSpliced 2022-07-27 17:35:50 +01:00
Utf16String.cpp Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
Utf16String.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
Value.cpp LibJS: Use NaN boxing to decrease the memory size of Values 2022-08-15 17:11:25 +02:00
Value.h LibJS: Use NaN boxing to decrease the memory size of Values 2022-08-15 17:11:25 +02:00
ValueTraits.h LibJS: Normalize NaN values in Sets and Maps 2022-04-02 14:15:43 +01:00
VM.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
VM.h LibJS: Revert partial resizable ArrayBuffer implementation 2022-07-06 15:52:57 +02:00
WeakContainer.cpp LibJS: Use IntrusiveList for keeping track of WeakContainers 2021-07-21 20:17:55 +02:00
WeakContainer.h LibJS: Add missing headers 2021-10-06 23:52:40 +01:00
WeakMap.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakMap.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakMapConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakMapConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakMapPrototype.cpp LibJS: Implement WeakMap changes from 'Symbol as WeakMap Keys Proposal' 2022-06-23 10:57:52 +03:00
WeakMapPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakRef.cpp LibJS: Implement WeakRef changes from 'Symbol as WeakMap Keys Proposal' 2022-06-23 10:57:52 +03:00
WeakRef.h LibJS: Implement WeakRef changes from 'Symbol as WeakMap Keys Proposal' 2022-06-23 10:57:52 +03:00
WeakRefConstructor.cpp LibJS: Implement WeakRef changes from 'Symbol as WeakMap Keys Proposal' 2022-06-23 10:57:52 +03:00
WeakRefConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakRefPrototype.cpp LibJS: Implement WeakRef changes from 'Symbol as WeakMap Keys Proposal' 2022-06-23 10:57:52 +03:00
WeakRefPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakSet.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakSet.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakSetConstructor.cpp Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakSetConstructor.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WeakSetPrototype.cpp LibJS: Implement WeakSet changes from 'Symbol as WeakMap Keys Proposal' 2022-06-23 10:57:52 +03:00
WeakSetPrototype.h Libraries: Use default constructors/destructors in LibJS 2022-03-16 16:19:40 +00:00
WrappedFunction.cpp LibJS: Implement & use the {Ordinary,PrepareFor}WrappedFunctionCall AOs 2022-07-31 14:39:06 +02:00
WrappedFunction.h LibJS: Implement & use the {Ordinary,PrepareFor}WrappedFunctionCall AOs 2022-07-31 14:39:06 +02:00