summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-03LibJS: Add an EliminateLoads pass to BytecodeHendiadyoin1
This pass tries to eliminate repeated lookups of variables by name, by remembering where these where last loaded to. For now the lookup cache needs to be fully cleared with each call or property access, because we do not have a way to check if these have any side effects on the currently visible scopes. Note that property accesses can cause getters/setters to be called, so these are treated as calls in all cases.
2022-12-03LibJS: Expose some internals of InstructionsHendiadyoin1
These will be needed in the future to allow optimization passes to check against these
2022-12-03LibJS: Add a way to replace references to registers in BytecodeHendiadyoin1
2022-12-03LibJS: Make Register comparableHendiadyoin1
2022-12-03Ports: Add qt5compat portClemens Wasser
2022-12-03Base: Add some `repeating-radial-gradient()` HTML examplesMacDue
2022-12-03LibWeb: Support `repeating-radial-gradient()`sMacDue
2022-12-03Meta+CI: Add CI job specifically for bundling serenity-js artifactsAndrew Kaster
These are used by esvu, and it is sad that we don't have macOS binaries availble for consumption by esvu users. Add a matrix job to handle this separately from the test262 results.
2022-12-03LibJS: Don't try to merge blocks not ending in JumpsHendiadyoin1
2022-12-03LibJS: Remeber which instruction terminated a blockHendiadyoin1
2022-12-03LibJS: Add a debug_position helper to the Bytecode InterpreterHendiadyoin1
This also changes argument_list_evaluation's dbgln to use it.
2022-12-03LibJS: Restore cached current_block on return in BytecodeHendiadyoin1
Otherwise debug prints will show the wrong block until we preform a jump
2022-12-03LibJS: Handle FinishUnwind in GenerateCFGHendiadyoin1
2022-12-03LibJS: Mark FinishUnwind as a terminatorHendiadyoin1
2022-12-03LibJS: Use a switch statement in GenerateCFGHendiadyoin1
2022-12-03LibJS: Don't mark blocks for unification multiple timesHendiadyoin1
This would cause a UAF otherwise
2022-12-03js: Force optimizations when setting the -p flagHendiadyoin1
2022-12-03LibCore: Mark connections to InspectorServer as MSG_NOSIGNALSam Atkins
If InspectorServer closes for some reason at the wrong time, there is no need for the inspected application to terminate.
2022-12-03LibCore: Mark LocalServer client sockets as MSG_NOSIGNALSam Atkins
Make LocalServer connections not terminate their process from SIGPIPE, which fixes the issue where closing DisplaySettings with the[OK] button would often crash WindowServer.
2022-12-03LibCore: Optionally pass MSG_NOSIGNAL to socket read/writesSam Atkins
When creating a `Core::Stream::Socket`, you can now choose to prevent SIGPIPE signals from firing and terminating your process. This is done by passing MSG_NOSIGNAL to the `System::recv()` or `System::send()` calls when you `read()` or `write()` to that Socket.
2022-12-03Kernel+SystemServer: Don't hardcode coredump directory pathLiav A
Instead, allow userspace to decide on the coredump directory path. By default, SystemServer sets it to the /tmp/coredump directory, but users can now change this by writing a new path to the sysfs node at /sys/kernel/variables/coredump_directory, and also to read this node to check where coredumps are currently generated at.
2022-12-03Kernel: Rename SysFSSystemBoolean => SysFSSystemBooleanVariableLiav A
2022-12-03Base: Add a description about Jails to the Mitigations(7) documentLiav A
We add a new document entry to mention jailed processes' restrictions, so it is clear which restrictions apply when using Jails.
2022-12-03Kernel: Allow read access sparingly to some /sys/kernel directory nodesLiav A
Those nodes are not exposing any sensitive information so there's no harm in exposing them.
2022-12-03Kernel: Disallow jailed processes to read files in /sys/kernel directoryLiav A
By default, disallow reading of values in that directory. Later on, we will enable sparingly read access to specific files. The idea that led to this mechanism was suggested by Jean-Baptiste Boric (also known as boricj in GitHub), to prevent access to sensitive information in the SysFS if someone adds a new file in the /sys/kernel directory.
2022-12-03Kernel: Forbid access to /sys/kernel/power_state for Jailed processesLiav A
There's simply no benefit in allowing sandboxed programs to change the power state of the machine, so disallow writes to the mentioned node to prevent malicious programs to request that.
2022-12-02AK: Implement FloatExtractor<f128>Steffen Rusitschka
This patch adds support for 128-bit floating points in FloatExtractor. This is required to build SerenityOS on MacOS/aarch64. It might break building for Raspberry Pi.
2022-12-02LibJS: Implement Set.prototype.isDisjointFromIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.isSupersetOfIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.isSubsetOfIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.symmetricDifferenceIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.differenceIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.intersectionIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.unionIdan Horowitz
2022-12-02LibJS: Implement the Set Methods proposal abstract operationsIdan Horowitz
2022-12-02LibWeb: Log failures to decode image resources inside ImageResourceMarco Cutecchia
2022-12-02LibWeb: Add null checks before derefencing Bitmaps in ImageStyleValueMarco Cutecchia
2022-12-02LibJS: Throw on conversion from TimeZone to Calendar and vice versaLinus Groh
This is a normative change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/2084e77
2022-12-02LibJS: Align Temporal.{Calendar,TimeZone} id getters with toStringLinus Groh
This is a normative change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/0bb391a
2022-12-01LibWeb: Support displaying HTMLInputElement placeholder valuesTimothy Flynn
This adds support for parsing the ::placeholder pseudo-element and injecting an anonymous layout node with that element when the input element's data is empty.
2022-12-01LibWeb: Ensure the number of pseudo elements stays up-to-dateTimothy Flynn
The ::placeholder pseudo element was added in commit 1fbad9c, but the total number of pseudo elements was not updated. Instead of this manual bookkeeping, add a dummy value at the end of the enumeration for the count.
2022-12-01LibJS: Add missing spec link on String.prototype.toWellFormedTimothy Flynn
Missed in commit 3ee5217adc32ed438215bc0f6938396318024b24.
2022-12-01LibJS: Implement String.prototype.toWellFormedTimothy Flynn
2022-12-01LibJS: Implement String.prototype.isWellFormedTimothy Flynn
2022-12-01LibJS: Add FIXME to removed SplitMatch AOLinus Groh
2022-12-01LibJS: Sort String.prototype methods in spec orderLinus Groh
This is similar to these previous changes in LibJS: - 999ad734ecedb124cfaa520813ad029b21d61c4a - f19c4ab693527ddefa2f19af6f85e953bd68c445 - 5f5bcd549e2690e9cd040a1194faa77ed34a4403
2022-11-30LibJS: Replace CreateDataPropertyOrThrow with Set in TypedArray toSortedTimothy Flynn
This was an errant transcription in 4dbb2c2d44d.
2022-11-30LibJS: Allow TypedArrays to become detached while sortingTimothy Flynn
This is a normative change in the Change Array by Copy proposal. See: https://github.com/tc39/proposal-change-array-by-copy/commit/17d8b54
2022-11-30LibWeb: Handle <relative-size> values in the `font-size` CSS propertyMateusz Górzyński
2022-11-30LibWeb: Handle <absolute-size> values in the `font-size` CSS propertyMateusz Górzyński