1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-22 17:15:08 +00:00
Commit graph

365 commits

Author SHA1 Message Date
Timothy Flynn
2dfa87814e LibJS: Update spec comments for replacing digits in Intl.NumberFormat
This is an editorial change in the ECMA-402 spec. See:
06d95ed

Note the new spec steps basically match our implementation in LibLocale.
2022-12-15 16:24:29 +00:00
Timothy Flynn
01fc025e9d LibJS: Fix a typo in an Intl.DateTimeFormat spec comment
This is an editorial change in the ECMA-402 spec. See:
078bea0
2022-12-15 16:24:29 +00:00
Linus Groh
bd40464195 LibJS: Convert standalone construct() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Linus Groh
6ae79a84df LibJS: Convert Object::construct() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Linus Groh
1c24b82dd7 LibJS: Convert ordinary_create_from_constructor() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Linus Groh
22089436ed LibJS: Convert Heap::allocate{,_without_realm}() to NonnullGCPtr 2022-12-15 06:56:37 -05:00
Timothy Flynn
a2cf026b30 LibJS: Throw a RangeError when when formatting strings in DurationFormat
This is a normative change in the Intl.DurationFormat proposal. See:
2546080
2022-12-15 09:40:09 +00:00
Timothy Flynn
010888acec LibJS: Access DurationRecord properties in alphabetical order
This is a normative change in the Intl.DurationFormat proposal. See:
42e99b8
2022-12-15 09:40:09 +00:00
Timothy Flynn
85f079dc6b LibJS: Move IsValidDurationRecord check to ToDurationRecord
This is an editorial change in the Intl.DurationFormat proposal. See:
fb21723
2022-12-15 09:40:09 +00:00
Timothy Flynn
0086a3acdb LibJS: Remove infallibility markers from some Intl.DurationFormat AOs
This is an editorial change in the Intl.DurationFormat proposal. See:
fa2b3d0
2022-12-15 09:40:09 +00:00
Timothy Flynn
897c7f7cc2 LibJS: Set DateTimeFormat's time zone when the CLDR download is disabled
We return early from the DateTimeFormat constructor to avoid crashing on
assertions when the CLDR is disabled. However, after commit 019211b, the
spec now mandates we assert the time zone identifier is valid. The early
return resulted in this identifier being an empty string.
2022-12-14 15:24:48 +00:00
Andreas Kling
4abdb68655 LibJS: Remove Object(Object& prototype) footgun
This constructor was easily confused with a copy constructor, and it was
possible to accidentally copy-construct Objects in at least one way that
we dicovered (via generic ThrowCompletionOr construction).

This patch adds a mandatory ConstructWithPrototypeTag parameter to the
constructor to disambiguate it.
2022-12-14 15:11:57 +01:00
Linus Groh
ddc6e139a6 LibJS: Convert Object::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
237402aea9 LibJS: Convert Intl::Segments::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
df589bb05b LibJS: Convert Intl::SegmentIterator::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
658bd2f342 LibJS: Convert Intl::NumberFormatFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
b2034c59dc LibJS: Convert Intl::Locale::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
81d5bbcb04 LibJS: Convert Intl::DateTimeFormatFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
46acce5142 LibJS: Convert Intl::CollatorCompareFunction::create() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
91b0123eaf LibJS: Convert Array::create{,_from}() to NonnullGCPtr 2022-12-14 09:59:45 +00:00
Linus Groh
525f22d018 LibJS: Replace standalone js_string() with PrimitiveString::create()
Note that js_rope_string() has been folded into this, the old name was
misleading - it would not always create a rope string, only if both
sides are not empty strings. Use a three-argument create() overload
instead.
2022-12-07 16:43:06 +00:00
Linus Groh
5db38d7ba1 LibJS: Replace standalone js_bigint() with BigInt::create()
Three standalone Cell creation functions remain in the JS namespace:

- js_bigint()
- js_string()
- js_symbol()

All of them are leftovers from early iterations when LibJS still took
inspiration from JSC, which itself has jsString(). Nowadays, we pretty
much exclusively use static create() functions to construct types
allocated on the JS heap, and there's no reason to not do the same for
these.
Also change the return type from BigInt* to NonnullGCPtr<BigInt> while
we're here.

This is patch 1/3, replacement of js_string() and js_symbol() follow.
2022-12-07 16:43:06 +00:00
Linus Groh
57dc179b1f Everywhere: Rename to_{string => deprecated_string}() where applicable
This will make it easier to support both string types at the same time
while we convert code, and tracking down remaining uses.

One big exception is Value::to_string() in LibJS, where the name is
dictated by the ToString AO.
2022-12-06 08:54:33 +01:00
Linus Groh
6e19ab2bbc AK+Everywhere: Rename String to DeprecatedString
We have a new, improved string type coming up in AK (OOM aware, no null
state), and while it's going to use UTF-8, the name UTF8String is a
mouthful - so let's free up the String name by renaming the existing
class.
Making the old one have an annoying name will hopefully also help with
quick adoption :^)
2022-12-06 08:54:33 +01:00
Timothy Flynn
675e5bfdce LibJS: Allow specifying only roundingIncrement in NumberFormat options
This is a normative change in the Intl.NumberFormat v3 spec. See:
a260aa3
2022-11-29 10:24:44 +01:00
Timothy Flynn
e86e59699d LibJS: Use Object's new deferred instrinsic storage for GlobalObject 2022-11-26 09:36:22 +01:00
Andreas Kling
71067cbc6c LibJS+LibWeb: Make Runtime/AbstractOperations.h not include AST.h
This led to considerable fallout and many files had to be patched with
now-missing include statements.
2022-11-23 16:05:59 +00:00
Jonah
381b36b83f LibJS/Temporal: Rename ToIntegerWithRounding to ToIntegerIfIntegral
This is an editorial change to the Temporal spec.
See: 1dceb57
2022-11-20 11:56:56 +00:00
Timothy Flynn
421ebc2e29 LibJS: Remove workaround for Clang misalignment in MathematicalValue
As noted in 269a931, this has been fixed in Clang 15.
2022-11-15 12:30:16 +00:00
Timothy Flynn
f211028252 LibJS: Change ToLocalTime to use epoch nanoseconds
This is an editorial change to the ECMA-402 spec. See:
b3f9a1b
2022-11-06 01:47:37 +00:00
Timothy Flynn
9a9025dea0 LibJS: Remove infallibility marker from DefaultTimeZone invocation
This is an editorial change to the ECMA-402 spec. See:
46aa5cc

Also add an ECMA-402 spec link to the DefaultTimeZone implementation, as
that definition supersedes ECMA-262.
2022-11-06 01:47:37 +00:00
Timothy Flynn
d56205f991 LibJS: Use more accurate number-to-string method in Intl.NumberFormat
Intl.NumberFormat only ever wants literal number-to-digits here, without
extra exponential formatting.
2022-11-04 21:12:10 +00:00
Timothy Flynn
99fc94e138 LibJS: Delegate to NumberFormat for DurationFormat unit formatting
This is a normative change in the Intl.DurationFormat proposal. See:
12ba9df
2022-11-03 18:37:48 +00:00
Timothy Flynn
a5bf32018f LibJS+LibUnicode: Add "microsecond" and "nanosecond" as sanctioned units
This is a normative change in the ECMA-402 spec. See:
f627573
2022-11-03 18:37:48 +00:00
Timothy Flynn
8ff0d35386 LibJS: Format sanctioned units such that there is one unit per line
Much easier to manage and view diffs this way, rather than one large
single line. This will soon be the only method in this file, so there's
no concern over taking up too much vertical space here.
2022-11-03 18:37:48 +00:00
Nico Weber
daeaefad17 Everywhere: Clean up "the the" comment typos 2022-11-03 17:38:32 +00:00
Timothy Flynn
92f4f40198 LibJS: Rename the Intl Enumeration Available* AOs to AvailableCanonical*
This is an editorial change to the Intl Enumeration API proposal. See:
807b444

Note that this was followed by a normative change to actually ensure the
returned values are canonical:
075a6dc

But the values we return are already canonical.
2022-11-03 16:36:11 +00:00
Timothy Flynn
4686989582 LibJS: Map DurationFormat's list style to "short" when it is "digital"
This is a normative change in the Intl.DurationFormat proposal. See:
7495e32
2022-11-01 14:33:07 +00:00
Timothy Flynn
84e6833203 LibJS: Alphabetically sort the collations returned by CollationsOfLocale
This is a normative change in the Intl Locale Info proposal. See:
171d3ad

Note this doesn't affect us because we don't have collation info from
the CLDR; we just return ["default"] here.
2022-11-01 14:33:07 +00:00
davidot
d66bfcc3f4 LibJS: Make PluralRules use the new double parser 2022-10-23 15:48:45 +02:00
Linus Groh
57162ad510 LibJS: Rename IsValidTimeZoneName to IsAvailableTimeZoneName
This is an editorial change in the Temporal spec.

See: 873313b
2022-10-17 12:56:05 +02:00
Timothy Flynn
d992cba014 LibJS: Remove Temporal::DefaultTimeZone
This is an editorial change in the Temporal spec. See:
e232580
2022-10-15 18:05:02 +02:00
Timothy Flynn
82e730eba1 LibJS: Change default time display options to "always" for digital style
This is a normative change in the Intl.DurationFormat proposal. See:
d28076b
2022-09-22 14:39:24 +01:00
Timothy Flynn
60a6bae53d LibJS: Change digital default style from "narrow" to "short"
This is a normative change in the Intl.DurationFormat proposal. See:
4c24876
2022-09-21 16:09:38 +01:00
Timothy Flynn
887dac0929 LibJS: Handle NumberFormat's [[UseGrouping]] option for "true" / "false"
This is a normative change to the Intl NumberFormat V3 spec. See:
4751da5
2022-09-18 09:45:40 -04:00
Timothy Flynn
85e313077a LibJS: Do not invoke Cell::vm in constructors before Cell is constructed
In a subclass of Cell, we cannot use Cell::vm() before the base Cell
object itself is constructed. Use the Realm's VM instead.

This was caught by UBSAN with vptr sanitation enabled.
2022-09-15 09:45:13 +02:00
Timothy Flynn
43a3471298 LibLocale: Move locale source files to the LibLocale folder
These are still included in LibUnicode, but this updates their location
and the include paths of other files which include them.
2022-09-05 14:37:16 -04:00
Timothy Flynn
ff48220dca Userland: Move files destined for LibLocale to the Locale namespace 2022-09-05 14:37:16 -04:00
Timothy Flynn
6c7b05a0ff LibUnicode+LibJS: Move Unicode::get_available_currencies() to Locale.h
This is generated by GenerateLocaleData, which will soon be in the
Locale namespace. Move it out of CurrencyCode.h, as that will continue
to live in the Unicode namespace.
2022-09-05 14:37:16 -04:00
Timothy Flynn
c477425b9b LibJS: Create DurationFormat's ListFormat object with type and style
This is a normative change in the Intl.DurationFormat spec. See:
1304e4b
2022-08-30 14:26:11 -04:00