1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-27 23:32:08 +00:00
Commit graph

8357 commits

Author SHA1 Message Date
Timothy Flynn
35cacb850a LibGUI: Add a const accessor to ImageWidget's bitmap 2022-02-03 16:11:15 +01:00
Timothy Flynn
4cf4a7cc87 LibGUI: Forward declare ImageWidget 2022-02-03 16:11:15 +01:00
Timothy Flynn
ea814a3ce6 LibTimeZone: Parse and generate time zone coordinate data 2022-02-03 16:11:15 +01:00
Timothy Flynn
7b41a09540 LibGUI: Set a fixed width for the SettingsWindow reset-to-default button
Otherwise, any subclass which increased the size of the window would see
a very large reset button. The width chosen here is the same width as
the other buttons in this window.
2022-02-03 16:11:15 +01:00
Brian Gianforcaro
2b14a11238 LibC: Add IN6_IS_ADDR_LINKLOCAL to in.h
I tried the OpenSSH port but it failed to compile due to a missing
definition of this macro. It's simple enough to add, and it's addition
allowed OpenSSH to compile once again.

I also went ahead and added spec comments for these macros as well.
2022-02-03 14:57:16 +01:00
Timur Sultanov
b9c558f6c6 WindowServer+Keymap+LibGUI: Add widget to display current keymap 2022-02-03 00:47:22 +01:00
Sam Atkins
181d1e2dd6 LibWeb: Implement TransformationStyleValue::to_string() 2022-02-03 00:45:49 +01:00
Sam Atkins
5826fe094f LibWeb: Allow comma- or space-separated StyleValueLists
This lets us produce valid CSS in its to_string() method, instead of
always adding commas as before. :^)

Also, finally added a Formatter for StyleValues.
2022-02-03 00:45:49 +01:00
Sam Atkins
f71db4afd8 LibWeb: Make StyleValue::to_string() output valid CSS
Having clear debug output was useful, but most places that use to_string
() expect to get valid CSS, so let's do that. :^)
2022-02-03 00:45:49 +01:00
Sam Atkins
f22d8c8f77 LibWeb: Move non-trivial StyleValue to_string() methods to cpp file
Many of these will need to change in the future in order to include
features we don't yet support, and touching StyleValue.h is a great way
to have to wait for all of LibWeb to rebuild. I'm hoping this saves me
time in the long run. :^)
2022-02-03 00:45:49 +01:00
Linus Groh
40ba12aa7d LibJS: Consider calls of parse_iso_date_time() fallible
See: https://github.com/tc39/proposal-temporal/pull/2027
2022-02-02 18:55:00 +00:00
Sam Atkins
2a7a8d2cab LibWeb: Don't verify that a dimension unit isn't whitespace
Raw whitespace is not allowed inside a name, but escaped whitespace is,
for example `\9`, which is the tab character.

This stops yakzz.com from crashing the Browser, since it was using `\9`
in various places as a hack to only apply those properties to IE8/9.
2022-02-02 18:29:05 +01:00
Linus Groh
19a2b32065 LibJS: Reject '-000000' as extended year
This is a normative change in the Temporal spec.

See: e60ef9e
2022-02-02 14:46:52 +00:00
Thitat Auareesuksakul
411251bae9 LibGUI: Rename Close to Discard in MessageBox::ask_about_unsaved_changes 2022-02-01 20:45:11 +01:00
Maciej
399d1ff961 LibGUI: Allow only one CommandPalette at once to be opened
Previously it was possible to open CommandPalette for
a CommandPalette :^)
2022-02-01 10:32:24 +01:00
thankyouverycool
a593b83189 LibGfx+Applications: Add human readable name helper for fonts
This returns a more comprehensible name than raw weight and slope
metrics and is intended for use in UIs. Now displays human readable
font names in FontSettings, TerminalSettings and CharacterMap.
2022-02-01 10:06:26 +01:00
thankyouverycool
96895cd22c Everywhere: Fully qualify font names by including their slope
Fixes typefaces of the same weight but different slopes being
incorrectly returned for each other by FontDatabase.
2022-02-01 10:06:26 +01:00
thankyouverycool
87a149c9a4 LibGfx: Determine slope attributes for TrueTypeFonts from tables
First checks the OS/2 table for an oblique selection flag before
falling back on italic flags.
2022-02-01 10:06:26 +01:00
Idan Horowitz
2cd3d4a287 LibJS: Implement Intl %SegmentIteratorPrototype%.next ( ) 2022-01-31 21:05:04 +02:00
Idan Horowitz
366468f1de LibJS: Implement Intl %SegmentsPrototype%.containing 2022-01-31 21:05:04 +02:00
Idan Horowitz
96af50bbba LibJS: Implement the Intl CreateSegmentDataObject AO 2022-01-31 21:05:04 +02:00
Idan Horowitz
cea6c81c77 LibJS: Implement the Intl.Segmenter FindBoundary AO 2022-01-31 21:05:04 +02:00
Idan Horowitz
b1d19b5917 LibJS: Convert Intl.Segmenter, Segments and SegmentIterator to Utf16
This is a precursor to implementing the FindBoundary AO, which operates
on Utf16 code unit indexes.
2022-01-31 21:05:04 +02:00
Idan Horowitz
4967bcd4ce LibUnicode: Implement sentence segmentation 2022-01-31 21:05:04 +02:00
Idan Horowitz
a593a5c8ab LibUnicode: Implement word segmentation 2022-01-31 21:05:04 +02:00
Idan Horowitz
58b0eed6a7 LibUnicode: Implement grapheme segmentation 2022-01-31 21:05:04 +02:00
Idan Horowitz
2d50c08f34 LibUnicode: Download and parse {Grapheme,Word,Sentence} break props 2022-01-31 21:05:04 +02:00
Timothy Flynn
6efbafa6e0 Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
Timothy Flynn
02b7bf34c9 LibJS: Implement BigInt IsLessThan according to the spec 2022-01-31 17:50:54 +00:00
Timothy Flynn
9ad3debf35 LibJS: Implement BigInt loose-equality according to the spec 2022-01-31 17:50:54 +00:00
Timothy Flynn
281b0411f2 LibJS: Implement conversion of strings to BigInts according to the spec
The spec defines a StringToBigInt AO which allows for converting binary,
octal, decimal, and hexadecimal strings to a BigInt. Our conversion was
only allowing for decimal strings.
2022-01-31 17:50:54 +00:00
Timothy Flynn
0013227377 LibCrypto: Change UnsignedBigInteger parser to use a StringView
SignedBigInteger already accepts a StringView; let's avoid the heap
allocation in UnsignedBigInteger.
2022-01-31 17:50:54 +00:00
Andreas Kling
6b5f6d6c0e LibJS: Add a 96-byte CellAllocator
Two of our most frequently allocated objects are Shape (88 bytes)
and DeclarativeEnvironment (80 bytes). Putting these into 128-byte
cells was quite wasteful, so let's add a more suitable allocator
for them.
2022-01-31 16:19:23 +01:00
Andreas Kling
8bdf6441b1 LibJS: Use u32 for the JS::Shape property count
We don't need to support more than 2^32 object properties anyway, so
there's no point in using 64-bit property counts.

This small reduction in memory usage makes test-js run ~10% faster on
x86_64 locally.
2022-01-31 16:19:23 +01:00
Andreas Kling
7a742b17da LibJS: Store ECMAScriptFunctionObject bytecode in an OwnPtr
Using an Optional was extremely wasteful for function objects that don't
even have a bytecode executable.

This allows ECMAScriptFunctionObject to fit in a smaller size class.
2022-01-31 16:19:23 +01:00
Andreas Kling
8d3f92c844 LibJS: Make JS::ECMAScriptFunctionObject smaller by reordering members
...and making heavy use of bitfields.
2022-01-31 16:19:23 +01:00
Andreas Kling
fc04465fa3 LibJS: Remove unnecessary GlobalObject pointer from Environment
As it turns out, we didn't actually need this pointer. :^)
2022-01-31 16:19:23 +01:00
Andreas Kling
4a51165f5f LibJS: Reorganize JS::Shape members a little bit
Now that AK::Weakable doesn't have a bunch of padding at the end,
let's move the smaller members of JS::Shape to the end, since there's
nothing to fold into at the start.
2022-01-31 16:19:23 +01:00
Andreas Kling
1469057033 LibJS: Make JS::Shape smaller by using OwnPtr<HashMap> for transitions
Many shapes don't have any forward transitions to cache, so we can save
a bunch of memory (and time) by only creating the cache maps when
actually needed.
2022-01-31 16:19:23 +01:00
Andreas Kling
30fcb07fe8 LibJS: Make JS::Environment smaller by reordering members
By putting `m_permanently_screwed_by_eval` first, it folds into the
padding at the end of the base class (JS::Cell).
2022-01-31 16:19:23 +01:00
Luke Wilde
7431f6073b LibWeb: Implement ChildNode.replaceWith 2022-01-31 15:25:36 +01:00
Luke Wilde
5a5e3a6ec3 LibWeb: Implement ChildNode.after 2022-01-31 15:25:36 +01:00
Luke Wilde
1bbe40c5af LibWeb: Implement ChildNode.before 2022-01-31 15:25:36 +01:00
Luke Wilde
d1bc9358c1 LibWeb: Implement ParentNode.replaceChildren 2022-01-31 15:25:36 +01:00
Luke Wilde
34dfdc3f37 LibWeb: Implement ParentNode.append 2022-01-31 15:25:36 +01:00
Luke Wilde
d5c96c3ccf LibWeb: Implement ParentNode.prepend
`convert_nodes_to_single_node` is inside its own file so ChildNode can
include and use it without having to include other headers such as
DOM/Node.h. This is to prevent circular includes.
2022-01-31 15:25:36 +01:00
Luke Wilde
d7998c5dbd LibWeb: Accept array pairs in URLSearchParams constructor 2022-01-31 15:25:36 +01:00
Timothy Flynn
fb08a5a896 LibJS: Implement Intl.supportedValuesOf
This is a stage 3 ECMA-402 proposal:
https://tc39.es/proposal-intl-enumeration/
2022-01-31 00:32:41 +00:00
Timothy Flynn
a120e85596 LibJS: Provide public access to list of sanctioned unit identifiers 2022-01-31 00:32:41 +00:00
Timothy Flynn
98348d9a33 LibJS: Allow calling Array::create_from without allocating a Vector
This method works as-is with a Span instead of a Vector (with some minor
const correctness adjustments).
2022-01-31 00:32:41 +00:00