summaryrefslogtreecommitdiff
path: root/Userland/Libraries
AgeCommit message (Collapse)Author
2021-07-10LibVideo/VP9: Implement simple FIXMEs that use now supported dataFalseHonesty
2021-07-10LibVideo/VP9: Implement more TreeParser probability calculationsFalseHonesty
Now TreeParser has mostly complete probability calculation implementations for all currently used syntax elements. Some of these calculation methods aren't actually finished because they use data we have yet to parse in the Decoder, but they're close to finished.
2021-07-10LibVideo/VP9: Implement syntax element counting for supported elementsFalseHonesty
With the progress made in the Decoder thus far, we have the ability to support most of the syntax element counters in the tree parser. Additionally, it will now crash when trying to count unsupported elements.
2021-07-10LibJS: Pad abs(year) < 1000 with zeros in Date.prototype.toString()Linus Groh
2021-07-10LibJS: Make parse_simplified_iso8601() use Optional<int> instead of -1Linus Groh
...for the non-success state. This fixes a crash when parsing dates with the year -1, as we would assert successful parsing ("year != -1"). Mixing Optional and -1 seems worse and more complicated than just using Optional for all the values, so I did that instead.
2021-07-10LibJS: Make Date.now() return a floor()'d milliseconds valueLinus Groh
It is defined as follows: 21.4.3.1 Date.now ( ) https://tc39.es/ecma262/#sec-date.now The now function returns the time value designating the UTC date and time of the occurrence of the call to now. "Time value" is defined as: 21.4.1.1 Time Values and Time Range https://tc39.es/ecma262/#sec-time-values-and-time-range An ECMAScript time value is a Number, either a finite integral Number representing an instant in time to millisecond precision or NaN representing no specific instant. By flooring the value we match the behavior in the Temporal proposal's Temporal.ZonedDateTime.prototype.epochMilliseconds getter: 4. Let ms be RoundTowardsZero(ℝ(ns) / 10^6). With that being defined as: 13.30 RoundTowardsZero ( x ) https://tc39.es/proposal-temporal/#sec-temporal-roundtowardszero 1. Return the mathematical value that is the same sign as x and whose magnitude is floor(abs(x)). This is makes the last of the currently 15 Temporal tests in test262 work, which compares Temporal.now.instant() with Date.now() :^)
2021-07-10LibRegex: Use the parser state capture group count in BREAli Mohammad Pur
Otherwise the users won't know how many capture groups are in the parsed regular expression.
2021-07-10LibRegex: Correctly parse BRE bracket expressionsAli Mohammad Pur
Commonly, bracket expressions are in fact, enclosed in brackets.
2021-07-10LibGUI: Only repaint the affected indices on AbstractView item hoverAndreas Kling
Previously, moving the cursor over items in an item view would cause it to repaint itself completely. Now we only repaint the two affected items (the old hovered item and the new hovered item.)
2021-07-10LibGUI: Tighten paint invalidation rects in item views :^)Andreas Kling
AbstractView now has a paint_invalidation_rect(index) function that subclasses can override to provide a tighter invalidation rect for an index.
2021-07-10LibGUI: Add AbstractView::editing_rect() to allow custom editing rectsAndreas Kling
This allows view classes to customize the editing rect for an index.
2021-07-10LibJS: Implement RegExp.prototype.hasIndices proposalTimothy Flynn
https://tc39.es/proposal-regexp-match-indices/
2021-07-10LibJS: Parse the RegExp.prototype.hasIndices flagTimothy Flynn
2021-07-10LibJS: Remove ECMAScriptFlags value from JS_ENUMERATE_REGEXP_FLAGSTimothy Flynn
All regex flags supported by LibJS currently correspond to a LibRegex option, but this is not the case for the RegExp.prototype.hasIndices proposal, which is handled entirely in RegExpBuiltinExec. Remove the flag mapping to prepare for this. This incurs a bit of an optimization loss in the flag getters, as we now do a substring search, but we can revisit the getter implementation if it becomes an issue.
2021-07-10LibJS: Implement RegExp.prototype.source according to the specTimothy Flynn
RegExp.prototype.source must check if "this" object is the RegExp.prototype object before raising a TypeError.
2021-07-10LibJS: Implement RegExp.prototype.<flag name> according to the specTimothy Flynn
The flag getters (e.g. RegExp.prototype.unicode) must specially handle when "this" object is the RegExp.prototype object.
2021-07-10LibJS: Add Temporal.Instant.prototype.valueOfIdan Horowitz
2021-07-10LibJS: Add a couple of missing specification links to Temporal.InstantIdan Horowitz
2021-07-10Terminal: Put debug spam in unimplemented_control_code() behind a flagAndreas Kling
2021-07-10LibGUI: Convert TextEditor to east-const styleTimothy
2021-07-10TextEditor+LibGUI: Use unveil and FileSystemAccessServerTimothy
Making use of the new FileSystemAccessServer we are able to use unveil without restricting our ability to open and save files. A file argument will be unveiled automatically however all other files require user action via the FileSystemAccessServer to gain access.
2021-07-10LibRegex: Add support for non-extended regular expressions in regcomp()Ali Mohammad Pur
Fixes part of #8506.
2021-07-10LibRegex: Add support for the Basic POSIX regular expressionsAli Mohammad Pur
This implements the internal regex stuff for #8506.
2021-07-10LibRegex: Make the bytecode transformation functions staticAli Mohammad Pur
They were pretty confusing when compared with other non-transforming functions.
2021-07-10LibWeb: Avoid HashMap copy in BrowsingContext::set_frame_nesting_levelsAndreas Kling
2021-07-10LibGUI: Rename "to_gmousebutton" => "to_mouse_button"networkException
2021-07-10LibELF: Make sure calls to _fixup_plt_entry use a properly aligned stackGunnar Beutner
2021-07-10Kernel+Userland: Make the stack alignment comply with the System V ABIGunnar Beutner
The System V ABI for both x86 and x86_64 requires that the stack pointer is 16-byte aligned on entry. Previously we did not align the stack pointer properly. As far as "main" was concerned the stack alignment was correct even without this patch due to how the C++ _start function and the kernel interacted, i.e. the kernel misaligned the stack as far as the ABI was concerned but that misalignment (read: it was properly aligned for a regular function call - but misaligned in terms of what the ABI dictates) was actually expected by our _start function.
2021-07-10LibGUI: Only repaint grabbable part of Splitter when hovered/unhoveredAndreas Kling
Before this change, we would repaint the Splitter and all of its split children when hovering over it. Now we only repaint the grabbable part.
2021-07-10LibVT: Reset scrollbar after switching to/from the alternate bufferDaniel Bertalan
We did not call the history change callback after switching to the alternate screen buffer, which caused the scrollbar to not change its maximum value. If we already had lines in the scrollback buffer, this meant that we could drag the scrollbar, which then tried to access non-existent lines from the scrollback. Fixes #8581
2021-07-09LibGUI: Remove left margin on MessageBox text when icon is unsetLuK1337
It looks better when text is properly centered.
2021-07-09LibJS: Add %TypedArray%.prototype.toLocaleStringIdan Horowitz
2021-07-09LibJS: Use PropertyName instead of StringOrSymbol in Object::invoke()Idan Horowitz
This prevents the unnecessary PropertyName -> StringOrSymbol -> PropertyName conversion.
2021-07-09LibGfx: Improve Painter::draw_line() alignment with (thickness > 1)Andreas Kling
Thicker lines are drawn by filling rectangles along the path. Previously these rectangles used the points as their top left corner. This patch changes it to use the points as the center of the rectangles which makes the PixelPaint line tool feel a lot more natural. :^)
2021-07-09LibC: Make sure crt0 and crt0_shared are built before LibCGunnar Beutner
We need these two object files in order for ld to work. Fixes #4538.
2021-07-09LibJS: Implement RegExp.prototype [ @@split ]Timothy Flynn
2021-07-09LibJS: Implement RegExpBuiltinExec closer to the specTimothy Flynn
Our RegExpBuiltinExec implementation differed from the spec in some areas such as handling of the sticky/global flags and updating the lastIndex property.
2021-07-09LibRegex: Break from execution loop when the sticky flag is setTimothy Flynn
If the sticky flag is set, the regex execution loop should break immediately even if the execution was a failure. The specification for several RegExp.prototype methods (e.g. exec and @@split) rely on this behavior.
2021-07-09LibJS: Implement RegExp constructor according to the specTimothy Flynn
This allows passing an existing RegExp object (or an object that is sufficiently like a RegExp object) as the "pattern" argument of the RegExp constructor.
2021-07-09LibJS: Do not use "this" object in RegExpExecTimothy Flynn
As an abstraction, RegExpExec should not assume that the RegExp object being used is "this" object. Instead, it should only interact with the provided object. This prepares for some methods, such as @@split, which invoke RegExpExec with a secondary RegExp object.
2021-07-09LibJS: Remove accidental dead codeTimothy Flynn
2021-07-09LibGfx: Add "override" declarations and use east const in BitmapFont.hMax Wipfli
2021-07-09LibGfx: Optimize BitmapFont::unicode_view_width() a bitMax Wipfli
This optimizes the method to no longer compare if width > longest_width on every iteration, since it's only required on CR/LF or at the end.
2021-07-09LibGfx: ALWAYS_INLINE BitmapFont::unicode_view_widthMax Wipfli
This adds the ALWAYS_INLINE attribute to unicode_view_width. Also, it cleans up the BitmapFont::view() code a little bit. This should help performance of this hot code. Because the call to the width() methods is a virtual dispatch, it doesn't help to inline the width() methods themselves.
2021-07-09LibGfx: Remove unused headers from BitmapFont.{cpp,h}Max Wipfli
2021-07-09LibTTF: Use en-us naming table if availableLuK1337
Some fonts tend to have multiple naming tables, namely MS-Gothic has 3 tables: [macintosh, ja], [windows, en-us], [windows, ja].
2021-07-09LibCore: Add ability to not read shadow data for AccountJean-Baptiste Boric
This stops spamming the kernel logs with unveil violations if the program didn't unveil /etc/shadow.
2021-07-09LibCore: Implement Account::self()Jean-Baptiste Boric
2021-07-09LibGUI: Handle TTF size selection changes in font picker properlyLuK1337
This patch addresses the following issues: - size resetting to 1 when switching from bitmap font size 10 to TTF - size resetting to 1 when incrementing spinbox from 8 to 9 - selection mode not being set on m_size_list_view selection change
2021-07-09LibGfx: Make enclosing_int_rect(FloatRect) actually enclose the rectAndreas Kling