summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-11Ports/ccache: Update ccache to version 4.6EWouters
2022-04-11Ports/ca-certificates: Update ca-certificates to version 2022-03-29EWouters
2022-04-11Ports/c-ray: Update c-ray to git commit 8f30eb9EWouters
Part of the fix-linkage patch is removed as the changes are no longer required.
2022-04-11Ports/byacc: Update byacc to version 20220128EWouters
2022-04-11Ports/brogue: Update brogue to version 1.10.1EWouters
Also preserve the `-j$(nproc)` flag.
2022-04-11Ports/bc: Update bc to version 5.2.3EWouters
Also added the recommended CFLAGS.
2022-04-11LibSoftGPU: Optimize clipping codeJelle Raaijmakers
Three optimizations are applied: 1. If the list of vertices to clip is empty, return immediately after clearing the output list. 2. Remember the previous vertex instead of recalculating whether it is within the clip plane. 3. Instead of copying and swapping lists around, operate on the input and output lists directly. This prevents a lot of `malloc`/`free` traffic as a result of vector assignments. This takes the clipping code CPU load from 3.9% down to 1.8% for Quake 3 on my machine.
2022-04-11LibSoftGPU: Remove superfluous braces in `Clipper`Jelle Raaijmakers
2022-04-12Kernel: Skip setting region name if none is given to mmapTim Schumacher
This keeps us from accidentally overwriting an already set region name, for example when we are mapping a file (as, in this case, the file name is already stored in the region).
2022-04-12LibJS: Pass this value to fallback func in Array.prototype.toString()Linus Groh
The existing code looks innocently correct, implementing the following step: 3. If IsCallable(func) is false, set func to the intrinsic function %Object.prototype.toString%. as return ObjectPrototype::to_string(vm, global_object); However, this misses the fact that the next step calls the function with the previously ToObject()'d this value (`array`): 4. Return ? Call(func, array). This doesn't happen in the current implementation, which will use the unaltered this value from the Array.prototype.toString() call, and make another, unequal object in %Object.prototype.toString%. Since both that and Array.prototype.toString() do a Get() call on said object, this behavior is observable (see newly added test). Fix this by actually doing what the spec says and calling the fallback function the regular way.
2022-04-12Base: Add new dark theme alternativedjwisdom
2022-04-11LibJS: Update ZonedDateTime AO spec comments for structured headersLuke Wilde
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/01714a5
2022-04-12LibWeb: Make Layout::Box::set_needs_display() work for all boxesAndreas Kling
For inline-blocks and inline replaced elements, we previously fell into a code path that tried to find a corresponding line box fragment to invalidate. However, we don't need to do any of that, all we need to do is get the absolute rect from our paintable, and invalidate that. This makes CRC2D invalidations happen immediately instead of as a side effect of some other invalidation.
2022-04-11LibJS: Remove unused include from AbstractOperations.cppLinus Groh
2022-04-11LibJS: Move additional notes to spec comments onto their own lineLinus Groh
Having all spec comments verbatim on their own line with no additions made by us will make it easier to automate comparing said comments to their current spec counterparts.
2022-04-11LibJS: Call HostEnsureCanCompileStrings in CreateDynamicFunctionLuke Wilde
I noticed we were missing this when I added to PerformEval :^)
2022-04-11LibJS: Add tests for the new steps added to PerformEvalLuke Wilde
2022-04-11LibJS: Add missing steps and spec comments to PerformEvalLuke Wilde
While adding spec comments to PerformEval, I noticed we were missing multiple steps. Namely, these were: - Checking if the host will allow us to compile the string (allowing LibWeb to perform CSP for eval) - The parser's initial state depending on the environment around us on direct eval: - Allowing new.target via eval in functions - Allowing super calls and super properties via eval in classes - Disallowing the use of the arguments object in class field initializers at eval's parse time - Setting ScriptOrModule of eval's execution context The spec allows us to apply the additional parsing steps in any order. The method I have gone with is passing in a struct to the parser's constructor, which overrides the parser's initial state to (dis)allow the things stated above from the get-go.
2022-04-11LibWeb: Support CSSRule.typeAndreas Kling
We already had the CSSRule::Type enum, but the values were not aligned with the CSSOM spec. This patch takes care of that, and then exposes the type of a CSSRule to JavaScript via the "type" attribute.
2022-04-11LibWeb: Support CSSStyleDeclaration.getPropertyPriority()Andreas Kling
2022-04-11LibWeb: Implement CSS declaration block's "updating flag"Andreas Kling
This flag is used to prevent reparsing the style attribute after it is automatically updated after using the CSSOM API to mutate style.
2022-04-11LibWeb: Implement CSSStyleDeclaration.{set,remove}Property close to specAndreas Kling
We already had setProperty() but it was full of ad-hoc idiosyncracies. This patch aligns setProperty() with the CSSOM spec and also implements removeProperty() since that's actually needed by setProperty() now. Some things fixed by this: - We now support the "priority" parameter to setProperty() - Element "style" attributes now update to reflect CSSOM mutations
2022-04-11LibGfx: Draw complex emojis correctlySimon Danner
Previously draw_text_run only passed a single code point to draw_glyph_or_emoji. This lead e.g. to broken unicode flag support. Improve this by passing along the code_point iterator, so the emoji code can detect the correct emojis and advance it as needed.
2022-04-11env: Use Core::System::exec()Sam Atkins
2022-04-11Utilities: Read positional arguments as Strings not char*sSam Atkins
This is a pretty trivial change so they're all batched together.
2022-04-11Shell: Read script arguments as Strings instead of char*sSam Atkins
This saves work in places that previously had to create a `Vector<String>` anyway, or repeatedly cast the char* to a String. Plus, Strings are nicer than char*. :^)
2022-04-11strace: Use Core::System::exec()Sam Atkins
2022-04-11LibCore: Add `ArgsParser::add_positional_argument(Vector<String>&, ...)`Sam Atkins
2022-04-11profile: Use Core::System::exec()Sam Atkins
2022-04-11HackStudio: Use Core::System::exec()Sam Atkins
2022-04-11FileManager: Use Core::System::exec()Sam Atkins
2022-04-11pls: Use Core::System::exec()Sam Atkins
2022-04-11Terminal: Use Core::System::exec()Sam Atkins
2022-04-11paste: Use Core::System::{exec,setenv}Sam Atkins
2022-04-11LibCore: Add a wrapper for execvpe() and friendsSam Atkins
This is a single function, which behaves like the various LibC exec() functions depending on the passed parameters. No direct equivalent is made for execl() - you have to wrap your arguments in a Span of some kind. On Serenity, this calls the syscall directly, whereas Lagom forwards to the appropriate LibC function.
2022-04-11LibJS: Use single page spec link for BoundFunctionCreateLinus Groh
2022-04-11LibJS: Fix two bogus spec linksLinus Groh
2022-04-11LibWeb: Add SVGDefsElementSimon Danner
* Similarly to clipPath, this doesn't need to get rendered, so return no LayoutNode.
2022-04-11HackStudio: Fix inverted condition when trying to create directoriesstelar7
2022-04-11BrowserSettings: Validate homepage URLJulen Ruiz Aizpuru
2022-04-11LibGFX: Transform vertices when drawing antialiased linesFlorian Stellbrink
Previously we transformed each rasterized point when drawing a line. Now we transform the lines' endpoints instead. That means running two transforms per line instead of transforms for each pixel. It is not clear that the overhead for the fast path is still worth it. If we still want to optimize identity and translations, it is probably better to do that inside AffineTransform. In addition this will behave nicer if the transform includes scaling. Previously this would rasterize lines before scaling. Which means drawing too many points when scaling down, and not drawing enough points when scaling up. With the new approach we will automatically rasterize at pixel scale. This is essentially the same as OpenGL, where vertices are transformed and rasterization happens in screen space.
2022-04-11LibWeb: Reset canvas elements when their width/height attribute are setAndreas Kling
2022-04-11LibWeb: Add fast path for CRC2D.drawImage() with simple transformAndreas Kling
If the transform is a simple translation, we don't need to run the big and slow transform rasterizer.
2022-04-11LibWeb: Add missing null check of independent formatting context in FFCAndreas Kling
When calling layout_inside() on a flex item that can't have children of its own, layout_inside() will not return an independent formatting context, so we need to handle that case here.
2022-04-11LibWeb: Let BFC compute width for block-level replaced elementsAndreas Kling
We never really hit this code path before, but now that IMG elements can be block-level, we need to get them hooked up with box model metrics.
2022-04-11LibWeb: Create a no-op formatting context for childless replaced boxesAndreas Kling
This is a hack that allows block-level replaced elements to be flex items. Flexbox layout currently assumes (in many places) that it's always possible to create an independent formatting context for each of its items.
2022-04-11LibWeb: Honor "display:block" on IMG elementsAndreas Kling
Previously we forced all image elements to be inline-level. Now they can participate in block layout if they prefer. :^)
2022-04-11DHCPClient: Close outgoing sockets after useTim Schumacher
2022-04-11AK: Disable the HashTable<double> test until UB issue is fixedAndreas Kling
2022-04-11AK: Honor box's own intrinsic size in calculate_intrinsic_sizes()Andreas Kling
If a layout box claims to have both intrinsic width and height, we can simply return those instead of performing any kind of layout.