1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 06:45:07 +00:00
Commit graph

2773 commits

Author SHA1 Message Date
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