Linus Groh
ecd163bdf1
LibJS+LibWeb: Replace GlobalObject with Realm in object constructors
...
No functional changes - we can still very easily get to the global
object via `Realm::global_object()`. This is in preparation of moving
the intrinsics to the realm and no longer having to pass a global
object when allocating any object.
In a few (now, and many more in subsequent commits) places we get a
realm using `GlobalObject::associated_realm()`, this is intended to be
temporary. For example, create() functions will later receive the same
treatment and are passed a realm instead of a global object.
2022-08-23 13:58:30 +01:00
Matthias Zimmerman
c10d48b72c
AK/ByteBuffer+Everywhere: Handle errors in ByteBuffer::slice()
2022-06-13 15:38:51 +01:00
Linus Groh
9f3f3b0864
LibJS: Remove implicit wrapping/unwrapping of completion records
...
This is an editorial change in the ECMA-262 spec, with similar changes
in some proposals.
See:
- https://github.com/tc39/ecma262/commit/7575f74
- https://github.com/tc39/proposal-array-grouping/commit/df899eb
- https://github.com/tc39/proposal-shadowrealm/commit/9eb5a12
- https://github.com/tc39/proposal-shadowrealm/commit/c81f527
2022-05-03 01:09:29 +02:00
Timothy Flynn
39b308ba52
LibJS: Factor out TypedArrayElement{Size,Type} abstract operations
...
This is an editorial change in the ECMA-262 spec. See:
https://github.com/tc39/ecma262/commit/a90670d5
This also adds missing spec comments to the following prototypes which
were affected by this change:
Atomics.load
Atomics.store
%TypedArray%.prototype.slice
%TypedArray%.prototype.subarray
2022-04-16 16:49:52 +01:00
Idan Horowitz
c7a8902746
LibJS: Make TypedArray::element_name return FlyString instead of String
...
This ensures that comparison between TypedArray names will be
essentially free (just a pointer comparison), which will allow us to
efficiently implement specification steps like:
"24. If srcType is the same as targetType, then"
efficiently.
2022-02-08 23:08:43 +00:00
Timothy Flynn
6efbafa6e0
Everywhere: Update copyrights with my new serenityos.org e-mail :^)
2022-01-31 18:23:22 +00:00
Timothy Flynn
20f73d2abc
LibJS: Convert Atomics functions to ThrowCompletionOr
2021-10-23 19:16:03 +01:00
Timothy Flynn
3edf86462b
LibJS: Convert typed_array_from to ThrowCompletionOr
2021-10-23 19:16:03 +01:00
Idan Horowitz
40eb3a39d4
LibJS: Rename define_native_function => define_old_native_function
...
This method will eventually be removed once all native functions are
converted to ThrowCompletionOr
2021-10-20 12:27:19 +01:00
Idan Horowitz
20163c0584
LibJS: Add ThrowCompletionOr versions of the JS native function macros
...
The old versions were renamed to JS_DECLARE_OLD_NATIVE_FUNCTION and
JS_DEFINE_OLD_NATIVE_FUNCTION, and will be eventually removed once all
native functions were converted to the new format.
2021-10-20 12:27:19 +01:00
Linus Groh
be28a6142b
LibJS: Convert to_integer_or_infinity() to ThrowCompletionOr
2021-10-18 21:24:30 +01:00
Idan Horowitz
85a28a6555
LibJS: Convert to_index() to ThrowCompletionOr
2021-10-18 08:01:38 +03:00
Idan Horowitz
e87cea8248
LibJS: Convert to_bigint() to ThrowCompletionOr
2021-10-17 12:12:35 +01:00
Linus Groh
32b620c62d
LibJS: Convert atomic_compare_exchange_impl() to ThrowCompletionOr
...
Also add spec step comments to it while we're here.
2021-10-04 09:52:15 +01:00
Linus Groh
74e29fa60b
LibJS: Convert perform_atomic_operation() to ThrowCompletionOr
2021-10-04 09:52:15 +01:00
Linus Groh
f95560b21a
LibJS: Convert atomic_read_modify_write() to ThrowCompletionOr
...
Also add spec step comments to it while we're here.
2021-10-04 09:52:15 +01:00
Linus Groh
6cef1dfa6d
LibJS: Convert validate_atomic_access() to ThrowCompletionOr
...
Also add spec step comments to it while we're here.
2021-10-04 09:52:15 +01:00
Linus Groh
12ac2338aa
LibJS: Convert validate_integer_typed_array() to ThrowCompletionOr
...
Also add spec step comments to it while we're here.
2021-10-04 09:52:15 +01:00
Linus Groh
3655aee543
LibJS: Convert validate_typed_array() to ThrowCompletionOr
...
Also add spec step comments to it while we're here.
2021-10-04 09:52:15 +01:00
Timothy Flynn
1a3e1bff7b
LibJS: Implement Atomics.isLockFree
2021-07-14 22:13:15 +01:00
Timothy Flynn
33eb830929
LibJS: Implement Atomics.compareExchange
2021-07-14 22:13:15 +01:00
Timothy Flynn
655ffce64d
LibJS: Implement Atomics.exchange
2021-07-14 22:13:15 +01:00
Timothy Flynn
6211eb0f9a
LibJS: Implement Atomics.store
2021-07-14 20:44:42 +01:00
Timothy Flynn
b6364ec899
LibJS: Implement Atomics.xor
2021-07-14 20:44:42 +01:00
Timothy Flynn
d2f6255b91
LibJS: Implement Atomics.sub
2021-07-14 20:44:42 +01:00
Timothy Flynn
f9d8e234b2
LibJS: Implement Atomics.or
2021-07-14 20:44:42 +01:00
Timothy Flynn
2d3af5c1b4
LibJS: Implement Atomics.and
2021-07-14 20:44:42 +01:00
Timothy Flynn
940875c9fd
LibJS: Implement Atomics.load
2021-07-14 20:44:42 +01:00
Timothy Flynn
cc3b96743a
LibJS: Implement Atomics.add
2021-07-14 20:44:42 +01:00
Timothy Flynn
a61723ec59
LibJS: Begin implementing Atomics
...
This adds the Atomics object to the global object and sets up only its
@@toStringTag property.
2021-07-14 20:44:42 +01:00