Andreas Kling
c845c90e98
LibJS: Avoid GC::RootVector allocations in {Super,}CallWithArgumentArray
...
We can use the Interpreter::allocate_argument_values() mechanism for
this and avoid creating a temporary RootVector for every such call.
2025-04-08 18:52:35 +02:00
Andreas Kling
5cdbb8b140
LibJS: Remove unused this
value from CallConstruct instruction
...
There's no `this` value prior in the caller context, and this was never
actually used by CallConstruct.
2025-04-08 18:52:35 +02:00
Ali Mohammad Pur
6b883c5ccb
Meta: Disable -Warray-bounds and -Wstringop-overflow on GCC
...
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
These generate what seems to be nonsense warnings on Function and
ByteBuffer; they *should* be investigated at some point, but they don't
provide anything useful at this point.
2025-04-08 14:01:28 +02:00
Ali Mohammad Pur
0a958c8e16
Meta: Add an option to disable LTO for Release builds
2025-04-08 14:01:28 +02:00
Ali Mohammad Pur
fac2ee4452
Meta: Add a link job pool with a configurable size
...
Parallel linking (esp. with bfd) uses a huge chunk of memory, make it
possible for users to limit the number of link jobs to at least
limit the pain.
2025-04-08 14:01:28 +02:00
Timothy Flynn
ccf03316fa
LibJS: Convert FilterLocales and CoerceOptionsToObject to GC::Ref
...
These never return nullptr.
2025-04-08 06:50:40 -04:00
Timothy Flynn
2729c88154
LibJS: Migrate remaining Intl objects to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
75e67db
2025-04-08 06:50:40 -04:00
Timothy Flynn
3f55240a8e
LibJS: Migrate Intl.DisplayNames to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
5eafacd
2025-04-08 06:50:40 -04:00
Timothy Flynn
636e214326
LibJS: Migrate Intl.Collator to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
f822dc1
2025-04-08 06:50:40 -04:00
Timothy Flynn
e40881ebb8
LibJS: Migrate Intl.DateTimeFormat to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
9e4c922
2025-04-08 06:50:40 -04:00
Timothy Flynn
d3332d51b5
LibJS: Add an AO to implement Intl constructor locale resolution
...
This is an editorial change in the ECMA-402 spec. See:
9e4c922
2025-04-08 06:50:40 -04:00
Timothy Flynn
62793b1bd8
LibJS: Define constructor slots for describing how to read options
...
This is an editorial change in the ECMA-402 spec. See:
a2beb66
We implement this change by introducing a virtual interface that all
Intl "service" objects must implement. A future patch will make use of
the virtualized RelevantExtensionKeys and ResolutionOptionDescriptors
accessors, and we will need to be able to use those slots from a generic
instance type.
2025-04-08 06:50:40 -04:00
Timothy Flynn
19ce186f97
LibJS: Define Intl.Locale's LocaleExtensionKeys more declaratively
...
This is an editorial change in the ECMA-402 spec. See:
3898acf
2025-04-08 06:50:40 -04:00
Timothy Flynn
75fce14f09
LibJS: Rename Intl.Locale's RelevantExtensionKeys to LocaleExtensionKeys
...
This is an editorial change in the ECMA-402 spec. See:
e2a5747
2025-04-08 06:50:40 -04:00
Timothy Flynn
680f028bb8
LibJS: Simplify Intl.Collator sensitivity / ignorePunctuation defaults
...
This is an editorial change in the ECMA-402 spec. See:
23e2e92
2025-04-08 06:50:40 -04:00
Timothy Flynn
b81d0d3261
LibJS: Ensure Intl.Collator instances have [[Numeric]] and [[CaseFirst]]
...
This is an editorial change in the ECMA-402 spec. See:
243ec38
2025-04-08 06:50:40 -04:00
Timothy Flynn
0f1fa38442
LibJS: Update spec link for FormatNumericToString AO
...
This is an editorial change in the ECMA-402 spec. See:
e3f7260
Note the other changes in this commit do not apply to our implementation
as we defer to ICU for the affected steps.
2025-04-08 06:50:40 -04:00
Andreas Kling
be70f8d345
LibGC: Avoid excessive bitfield use in GC::Cell
...
We didn't actually save any space by making the Cell flags bitfields.
In fact, it just forced us to do bit twiddling when accessing them.
2025-04-08 12:09:42 +02:00
Sam Atkins
a80408fea6
LibWeb/CSS: Store @property
initial value as a style value
...
For now, it's the "raw" UnresolvedStyleValue. Later, we'll need to try
to parse it into a "real" style value using the property's syntax.
2025-04-08 09:59:41 +01:00
Sam Atkins
9292b769ef
LibWeb/CSS: Use descriptor parsing for @property
2025-04-08 09:59:41 +01:00
rmg-x
514233008b
Meta+LibCore: Stop linking against LibCrypt
...
This was only be used by "Account.cpp" which was removed in:
d8c36ed458
2025-04-08 09:13:33 +02:00
rmg-x
92f5183ced
AK+Meta: Remove unused class RecursionDecision
2025-04-08 09:13:33 +02:00
rmg-x
fcf3abd19c
AK: Remove unused class DOSPackedTime
2025-04-08 09:13:33 +02:00
rmg-x
f39d14fa8a
RequestServer: Remove check for square brackets in websocket_connect
...
This is no longer necessary since commit:
6480e1a3fe
2025-04-08 09:13:33 +02:00
Luke Wilde
948349974c
LibWeb/WebGL: Implement EXT_blend_minmax extension
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
2025-04-07 23:21:11 +02:00
Aliaksandr Kalenik
ac643aa392
LibIPC: Break from message parsing if whole message payload is not ready
...
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Fixes the bug when we try to read message payload without checking if we
received enough bytes or file descriptors.
2025-04-07 20:26:01 +02:00
Timothy Flynn
1d9e226206
AK: Remove unused UTF-8 / other factory methods from ByteString
2025-04-07 17:44:38 +02:00
Timothy Flynn
3f439efe21
AK: Rename StringImpl to ByteStringImpl
...
StringImpl is very specific to ByteString. Let's rename it to match, to
avoid confusion with the StringBase and StringData classes.
2025-04-07 17:44:38 +02:00
Timothy Flynn
0a256b0a9a
AK+Everywhere: Change StringView case conversions to return String
...
There's a bit of a UTF-8 assumption with this change. But nearly every
caller of these methods were immediately creating a String from the
resulting ByteString anyways.
2025-04-07 17:44:38 +02:00
Timothy Flynn
05627b6f45
AK: Remove unused ByteString titlecase/invert case conversions
2025-04-07 17:44:38 +02:00
Timothy Flynn
c8bb3030fd
AK: Return NonnullRefPtr from StringImpl::create methods
...
None of these return a nullptr.
2025-04-07 17:44:38 +02:00
Timothy Flynn
f029ba6a29
AK: Improve performance of ASCII case conversions
...
Don't use a Vector to form the transformed string. We can construct the
string immediately and store the result in its buffer, and thus avoid a
double allocation.
In a synthetic benchmark, lowercasing a 500 character ASCII string
1 million times reduced from 550ms to 65ms on my machine.
2025-04-07 17:44:38 +02:00
Timothy Flynn
13d7d3a60d
AK: Simplify ASCII case conversion implementations a bit
...
* Use `any_of` instead of manual loops
* Don't check if a code point is upper/lowercase twice. The check we
are using is already present inside the case converter.
* Move StringImpl's implementation into ByteString. ByteString is its
only user, so let's avoid some jumping around. The other ASCII case
methods on StringImpl will soon also be removed.
2025-04-07 17:44:38 +02:00
Aliaksandr Kalenik
a371f849e3
LibIPC: Make TransportSocket responsible for reading entire messages
...
With this change, the responsibility for prepending messages with their
size and ensuring the entire message is received before returning it to
the caller is moved to TransportSocket. This removes the need to
duplicate this logic in both LibIPC and MessagePort.
Another advantage of reducing message granularity at IPC::Transport
layer is that it will make it easier to support alternative transport
implementations (like Mach ports, which unlike Unix domain sockets are
not stream oriented).
2025-04-07 16:59:49 +02:00
Shannon Booth
0a58497ab9
LibURL/Pattern: Fix PatternParser logic for prefix codepoint comparison
...
We were not properly handling the case that prefix code point was the
empty string (which we represent as an OptionalNone). While this
still resulted in the correct pattern string being generated, an
incorrect regular expression was being generated causing matching
to fail.
2025-04-07 10:29:09 -04:00
Shannon Booth
4b6f0ee24a
LibURL: Do not trim whitespace parsing port in URL parser
...
This has no functional difference as far as I can tell, but for
clarity explicitly do not attempt to do this, which has the nice
side effect of not checking for whitespace known to not exist.
2025-04-07 10:29:09 -04:00
Shannon Booth
565ccc04a9
LibURL/Pattern: Do not trim whitespace interpreting port
...
It turns out that the problem here was simply that we were trimming
trailing whitespace when we did not need to, which was meaning that
the port number of '80 ' was being converted to the empty string
per URLPattern elision as the port matches the http scheme.
2025-04-07 10:29:09 -04:00
Luke Wilde
25e343464d
LibJS: Cache length identifier for GetLengthWithThis
...
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
We cached the length identifier for GetLength, but not
GetLengthWithThis. This caused an `has_value()` verification failure
when accessing super.length. Found by Fuzzilli.
2025-04-07 14:40:48 +02:00
Tim Ledbetter
408f9f3dde
LibWeb: Disallow "default" as a <family-name>
identifier
...
This commit disallows "default" as a font-family name, when the name is
not quoted because unquoted names are treated as custom-idents, for
which the name "default" is not allowed.
2025-04-07 12:14:29 +01:00
Tim Ledbetter
263cb3f8ca
LibWeb/CSS: Remove unnecessary shorthand serialization special cases
...
The serialization of these properties is improved by using the new
default behavior.
2025-04-07 11:38:56 +01:00
Tim Ledbetter
63228477a4
LibWeb/CSS: Specify list-style
subproperties in canonical order
2025-04-07 11:38:56 +01:00
Tim Ledbetter
3186adeaa1
LibWeb/CSS: Don't serialize longhands which match their initial values
...
Shorthand subproperties that match their initial values are now
excluded from serialization, by default.
Properties where this behavior is not desired, like `gap`, are
special-cased.
2025-04-07 11:38:56 +01:00
Viktor Szépe
b4b8d85251
LibWeb+LibJS+Tests: Fix typos - act I
2025-04-07 11:22:13 +01:00
Sam Atkins
e8213bb86b
LibWeb/CSS: Remove unnecessary note about unicode-range parsing
...
I wrote this before implementing the parsing, and it ended-up not being
true.
2025-04-07 10:00:21 +01:00
Sam Atkins
5609649098
Documentation: Document Descriptors.json
2025-04-07 10:00:21 +01:00
Sam Atkins
5aeaeb3097
LibWeb/CSS: Remove redundant font-face src parsing code
...
We now always parse this as a descriptor.
2025-04-07 10:00:21 +01:00
Sam Atkins
5f6972fc31
LibWeb/CSS: Parse FontFace parameters as descriptors
...
This also rearranges the code to follow the spec better: We create an
empty FontFace first and then fill it in, instead of creating it
fully-formed at the end.
2025-04-07 10:00:21 +01:00
Sam Atkins
0121e7028f
LibWeb/CSS: Make "CSSStyleValue -> list of font sources" code accessible
...
We'll want this in FontFace.
2025-04-07 10:00:21 +01:00
Sam Atkins
3288c71953
LibGfx: Serialize unicode-ranges in uppercase
...
This matches the behavior of other browsers.
2025-04-07 10:00:21 +01:00
Sam Atkins
1e132d9f87
LibWeb/CSS: Use descriptor parsing in FontFace setters
2025-04-07 10:00:21 +01:00