Commit graph

38743 commits

Author SHA1 Message Date
Luke Wilde 29b0277a71 LibWeb/IDL: Respect type of IDL constants
Previously we ignored the type and cast the value to i32 and then put
it into a JS::Value.
2022-06-13 21:45:27 +01:00
Luke Wilde 98f354cec4 LibWeb/IDL: Implement returning union types from IDL functions 2022-06-13 21:45:27 +01:00
Linus Groh 698062b831 LibJS: Implement Array.prototype.with() 2022-06-13 20:26:54 +01:00
Linus Groh ae81793f20 LibJS: Implement Array.prototype.toSpliced() 2022-06-13 20:26:54 +01:00
Linus Groh ce17c868c0 LibJS: Implement Array.prototype.toSorted() 2022-06-13 20:26:54 +01:00
Linus Groh e4370b7d82 LibJS: Implement Array.prototype.toReversed() 2022-06-13 20:26:54 +01:00
Linus Groh e2a5a27302 LibJS: Implement the SortIndexedProperties AO
Also use it in array_merge_sort() instead of inlining the algorithm.
2022-06-13 20:26:54 +01:00
Linus Groh 5ddf0b0c99 LibJS: Implement the CompareArrayElements AO 2022-06-13 20:26:54 +01:00
Linus Groh aa5d5bf1c8 LibJS: Remove redundant VM& parameter from array_merge_sort()
This is covered by GlobalObject& just fine.
2022-06-13 20:26:54 +01:00
Linus Groh 105c516a78 LibJS: Make array_merge_sort() public 2022-06-13 20:26:54 +01:00
Linus Groh a4d0a6e1c1 LibJS: Update Array.prototype.group{,ToMap} spec URLs
This is an editorial change in the Array Grouping spec.

See: https://github.com/tc39/proposal-array-grouping/commit/c51cac5
2022-06-13 20:15:56 +01:00
Linus Groh 013e2df858 LibJS: Rename Array.prototype.groupBy{,ToMap} => group{,ToMap}
This is a normative change in the Array Grouping spec.

See: https://github.com/tc39/proposal-array-grouping/commit/0cf4077
2022-06-13 20:05:24 +01:00
Matthias Zimmerman c10d48b72c AK/ByteBuffer+Everywhere: Handle errors in ByteBuffer::slice() 2022-06-13 15:38:51 +01:00
MacDue c0486f93d4 LibGfx: Optimize rounded rectangle with all radii 50% to single ellipse
It's a common pattern on the web to draw a circle/ellipse by setting
the border-radius to 50%. Previously the painter would do a lot of
extra work painting and clipping each corner, this now detects that
case and replaces it with a single call to fill_ellipse().
2022-06-13 12:00:39 +01:00
MacDue 16c4b606f6 Base: Add some elliptical border radius HTML examples 2022-06-13 09:43:45 +01:00
MacDue 2b40dbfb30 LibWeb: Support elliptical background corners 2022-06-13 09:43:45 +01:00
MacDue 0e7aa1e98c LibWeb: Add flag to normalize border radii to width only
This is needed to avoid issues (such as overlapping curves) for outline
border radii, which do not currently support elliptical corners.
2022-06-13 09:43:45 +01:00
MacDue 28c78b45ca LibWeb: Keep both horizontal and vertical border radii till painting 2022-06-13 09:43:45 +01:00
MacDue 2366a73474 LibGfx: Support AA rounded rectangles with elliptical borders 2022-06-13 09:43:45 +01:00
Luke Wilde 125a71d36d LibJS/Bytecode: Define named functions as a variable inside their scope
This allows you to recurse into a named function that is stored in a
variable. For example, this would previously print "wrong" instead of
"right":
```js
function g() { console.log("wrong") }
f = function g(i) { if (i !== 1) g(1); else console.log("right"); }
f()
```
2022-06-13 07:13:03 +04:30
Luke Wilde 9ad807d08b LibJS/Bytecode: Pass contains_direct_call_to_eval into ESFO::create
Previously it would pass in `is_arrow_function` as
`contains_direct_call_to_eval`, which broke strict mode propagation in
arrow functions. This makes test-js work without falling apart because
`this` is mysteriously undefined because of the use of arrow functions
inside classes, which are strict mode by default.
2022-06-13 07:13:03 +04:30
Luke Wilde 77f88d00e0 LibJS/Bytecode: Make return; return undefined
Previously it would return whatever was in the accumulator.
2022-06-13 07:13:03 +04:30
Luke Wilde 482a827346 LibJS/Bytecode: Make typeof return "undefined" on unresolvable IDs
Previously it would throw instead of returning "undefined" for
`typeof Identifier` if Identifier does not exist.
2022-06-13 07:13:03 +04:30
Luke Wilde c0fadfb9b7 LibJS/Bytecode: Implement break/continue labels
This is done by keeping track of all the labels that apply to a given
break/continue scope alongside their bytecode target. When a
break/continue with a label is generated, we scan from the most inner
scope to the most outer scope looking for the label, performing any
necessary unwinds on the way. Once the label is found, it is then
jumped to.
2022-06-13 07:13:03 +04:30
djwisdom 455c0b7794 Ports: Update serenity-theming to e4e2f26 2022-06-12 15:50:46 +01:00
Andrew Kaster 72066880c6 LibELF: Always use parent object basename for $ORIGIN processing
Using the main executable basename produces the wrong $ORIGIN processing
for libraries that are secondary dependencies of the main executable,
or dependencies of an object loaded via dlopen.
2022-06-12 00:28:26 +01:00
Andrew Kaster 64d48bcdc1 LibC: Force default visibility for the _ctype_ symbol
When ports compile with -fvisibility=hidden, they can end up with
unresolved references to _ctype_ without passing
-Wl,--allow-shlib-undefined
2022-06-12 00:28:26 +01:00
Andrew Kaster 6ef355739d LibC: Add public and independent ucontext.h header 2022-06-12 00:28:26 +01:00
Timur Sultanov 35d31dec7e Ports: Add option to disable ccache 2022-06-12 00:28:26 +01:00
Timur Sultanov 15cce56411 LibPthread: Set errno in sem_trywait() 2022-06-12 00:28:26 +01:00
Timur Sultanov 0a63461341 Kernel: Add s6_addr32 field in in6_addr struct 2022-06-12 00:28:26 +01:00
Daniel Bertalan d4d6f2d945 Toolchain: Add $arch-pc-serenity-clang symlink
This will allow us to build ports that don't allow the --target and
--sysroot compiler arguments to be specified in $CC/$CXX.
2022-06-11 22:40:23 +01:00
Luke Wilde c8fa0c3cd7 LibWeb: Hold a strong ref to old_rule in CSSRuleList::remove_a_css_rule
Using auto& when indexing an NNRPVector doesn't cause it to hold a
strong reference and is instead just a plain old reference.

If m_rules was the only storage holding a strong reference to old_rule,
we would remove it in step 4 and subsequently UAF it in step 5.
2022-06-11 19:27:09 +01:00
MacDue d2f0a1d9b1 LibWeb: Paint background border radius antialiased 2022-06-11 17:46:46 +01:00
MacDue 0120c8580f LibGfx: Clip outside the corners when painting an AA rounded rectangle 2022-06-11 17:46:46 +01:00
MacDue 5bc5c0f31b LibGfx: Fix rendering of bottom corners in AA rounded rectangle
Previously, the left corner was using the right's radius and the
right corner was using the left's. This corrects that.
2022-06-11 17:46:46 +01:00
djwisdom 0daf5cc434 Base: Update Redmond 2000 Theme use Redmond Theme's metrics 2022-06-11 12:20:23 +01:00
MacDue 1dcdcc7efb Kernel/Console: Fix gaps between background glyph color 2022-06-11 12:19:29 +01:00
MacDue 5caf307ec0 WindowServer+MouseSettings: Toggle cursor highlighting with Super+H
Rather than enabling/disabling cursor highlighting by going into mouse
settings, you can now instead toggle it any time with Super+H. Mouse
settings now is only for customising the look of the highlighting.
2022-06-10 23:02:34 +01:00
MacDue 3c2c6790df MouseSettings: Support animated cursors in the highlighting preview 2022-06-10 23:02:34 +01:00
MacDue ceab9903cd MouseSettings: Avoid rendering artifact on loading highlighting defaults
Occasionally, the top of the preview would have the wrong opacity. This
seems to be solved by updating the widget again a bit after setting
the values.
2022-06-10 23:02:34 +01:00
MacDue 44cd973148 WindowServer+MouseSettings: Make default cursor highlight more visible
A litte smaller, and red with a slightly higher opacity, which
is much easier to make out.
2022-06-10 23:02:34 +01:00
MacDue d3ed490cb4 WindowServer: Fix the cursor being offset with highlighting enabled 2022-06-10 23:02:34 +01:00
FrHun fc3fd7212f Run: Use the new DialogButton 2022-06-10 23:02:07 +01:00
FrHun 992ff4bd63 LibGUI: Use new DialogButton for consistency 2022-06-10 23:02:07 +01:00
FrHun 4c84e64b2a LibGUI: Add DialogButton convenience class
DialogButton is a small convenience class, that just gives a button to
be used in dialogs for a more consistent look around the system.
2022-06-10 23:02:07 +01:00
Liav A 1a641f9af7 LibEDID: Return "Unknown" string if failed to determine the manufacturer
Before of this patch, It happened that the return string could be "@@@",
as a result of doing mathematical addition of ASCII '@' with bits when
decoding the packed manufacturer ID bytes from the EDID.
To avoid this, consider m_legacy_manufacturer_id to be invalid until we
successfully decode the packed bytes.
2022-06-10 22:32:54 +01:00
Liav A 20c9e4c05c Kernel/Graphics: Ensure VMWare and VirtualBox EDIDs have manufacturer ID 2022-06-10 22:32:54 +01:00
Liav A 3d36b194d1 Kernel/Graphics: Ensure generic EDID always has correct checksum 2022-06-10 22:32:54 +01:00
Liav A 938d579d16 Kernel/Graphics: Re-organize the DisplayConnector class a bit
Move methods that are overriding the virtual methods in the File class,
to a private access scope in the DisplayConnector class because nobody
tries to access them in any derived class of this class.
2022-06-10 22:32:54 +01:00