Idan Horowitz
8ff152ec5c
LibJS: Convert MapConstructor functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
23ea1f1a3e
LibJS: Convert MathObject functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
b184e872e4
LibJS: Convert ReflectObject functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
4c3ea0bb91
LibJS: Convert StringIteratorPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
720bb21ee2
LibJS: Convert ArrayBufferPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
ffa58184d2
LibJS: Convert ArrayBufferConstructor functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
70cbd43718
LibJS: Convert DataViewPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
9d3348d8da
LibJS: Convert the SetViewValue AO to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
fca05f835f
LibJS: Convert the GetViewValue AO to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
7f3fa7d7e0
LibJS: Convert NumberPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
2c6955462e
LibJS: Convert NumberConstructor functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
08fb31087b
LibJS: Convert BooleanPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
2a0c51149d
LibJS: Convert FunctionPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
c0bb456fd2
LibJS: Convert the CreateDynamicFunction AO to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
47f762ab42
LibJS: Convert ErrorPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
c815519a65
LibJS: Convert WeakRefPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
719d1b48ac
LibJS: Convert ArrayIteratorPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
d1d4ee699b
LibJS: Convert ConsoleObject functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
e7a134a346
LibJS: Convert JSONObject functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
6b954b9e76
LibJS: Convert SetIteratorPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
d46d8c9016
LibJS: Convert SetPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
c2e0753d8a
LibJS: Convert SetConstructor functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
7c96ed8cf3
LibJS: Convert SymbolPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
294f244745
LibJS: Convert SymbolConstructor functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
87ff51fa67
LibJS: Convert BigIntPrototype functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Idan Horowitz
4128f95903
LibJS: Convert BigIntConstructor functions to ThrowCompletionOr
2021-10-29 21:29:24 +03:00
Linus Groh
09d1db5afd
LibJS: Clarify mathematical types in Temporal AOs and functions
...
This is an editorial change in the Temporal spec.
See: e480d40
2021-10-26 23:10:11 +02:00
Andreas Kling
72cd31d033
LibJS: Tweak Value::to_property_key() fast path for Int32
...
Move the check for Int32 *before* we call to_primitive().
2021-10-25 15:37:28 +02:00
Andreas Kling
b63d17e2f8
LibJS: Add fast paths for <, >, <=, and >= with Int32 on both sides
...
This gives us a ~5% speed-up on Kraken's ai-astar.js
2021-10-25 14:35:23 +02:00
Andreas Kling
a97d75bb63
LibJS: Add default constructor for PrivateName
...
This avoids a round-trip through FlyString("") for every Reference.
2021-10-25 13:29:44 +02:00
Andreas Kling
5a099b98cd
LibJS: Make eval() code run in the bytecode VM
...
If we have an active bytecode interpreter, let's make eval() use it.
2021-10-25 12:57:21 +02:00
Andreas Kling
b138b4c83f
LibJS: Optimize Value::to_property_key() for numeric property names
...
If the Value is a non-negative Int32, create a numeric PropertyKey
instead of making a string key.
This makes "ai-astar" test from the Kraken benchmark run in 30 seconds,
down from 42 seconds. :^)
2021-10-24 17:18:09 +02:00
Andreas Kling
65a7296b8f
LibJS: Make Value::to_property_key() return a JS::PropertyKey
...
Instead of returning JS::StringOrSymbol, which is a space-optimized type
used in Shape property tables, this now returns JS::PropertyKey which is
*not* space-optimized, but has other niceties like optimized storage of
numeric ("indexed") properties.
2021-10-24 17:18:09 +02:00
Andreas Kling
7ccb8c8609
LibJS: Provide default hash traits for JS::PropertyKey
...
Let's not require people to use PropertyNameTraits everywhere when we
can just specialize AK::Traits<JS::PropertyKey> instead. :^)
2021-10-24 17:18:09 +02:00
Andreas Kling
75f2510de9
LibJS: Make make_super_property_reference() take a PropertyKey
...
Let's get rid of StringOrSymbol usage outside of Shape.
2021-10-24 17:18:08 +02:00
Andreas Kling
398c181c79
LibJS: Rename PropertyName to PropertyKey
...
Let's use the same name as the spec. :^)
2021-10-24 17:18:07 +02:00
Andreas Kling
f75d78f56a
LibJS: Include executable name in bytecode dumps
2021-10-24 17:18:06 +02:00
davidot
9c9aaf4d4f
LibJS: Don't VERIFY that a function is Regular when executing in AST
...
By replacing this VERIFY with a thrown Error we no longer crash when
calling a generator function in the AST interpreter. This allows us to
more gracefully handle situation which have not been implemented yet.
In particular this helps the libjs-test262-runner since it can now
continue on to the next tests instead of having the entire process end.
2021-10-24 08:38:02 +01:00
Timothy Flynn
e503b60bdc
LibJS: Convert a few TRYs to MUST in RegExp.prototype
...
These are marked with ! in the spec. This also adds assertions above
a couple of these operations to be extra sure (the spec also indicates
we should make these assertions).
2021-10-23 19:22:34 +01: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
2ab089fa21
LibJS: Convert RegExpStringIteratorPrototype to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
063ce946b7
LibJS: Convert RegExpPrototype functions to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
9b3c91aa65
LibJS: Convert the RegExpExec AO to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
a89d9d2c6f
LibJS: Convert the RegExpBuiltinExec AO to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
a2fbf6a3d5
LibJS: Convert the MakeIndicesArray AO to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
e3181a7ded
LibJS: Convert RegExpConstructor functions to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
844be7a0a5
LibJS: Convert the RegExpCreate AO to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
d9f5e2d461
LibJS: Convert the RegExpInitialize AO to ThrowCompletionOr
2021-10-23 18:01:51 +02:00
Idan Horowitz
35faf50941
LibJS: Convert PromisePrototype functions to ThrowCompletionOr
2021-10-23 18:01:51 +02:00