Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-24 | LibWeb: Add tokenization of calc expression | Tobias Christiansen | |
Here the first step in understanding a calc() expression is taken: Finding the start of an expression and tokenizong it. | |||
2021-07-24 | LibWeb: Add CalculatedStyleValue to the CSS StyleValues | Tobias Christiansen | |
This adds the CalculatedStyleValue and all the structs needed to work with the calc() expressions. | |||
2021-07-24 | LibWeb: Use Length::resolved() in FlexFormattingContext | Tobias Christiansen | |
It brew it's own tea resolving undefined and percentages. Let's use the API already in place rather to keep it flexible. | |||
2021-07-23 | LibJS: Remove UTF-8 RegExpExec and AdvanceStringIndex overrides | Timothy Flynn | |
All interested parties are now UTF-16 capable, so these are unused. | |||
2021-07-23 | LibJS: Implement RegExp.prototype [ @@replace ] with UTF-16 code units | Timothy Flynn | |
This also converts the GetSubstitution abstract operation take its input strings as UTF-16 now that all callers are UTF-16 capable. This means String.prototype.replace (and replaceAll) no longer needs UTF-8 and UTF-16 copies of these strings. | |||
2021-07-23 | LibJS: Implement RegExp.prototype [ @@split ] with UTF-16 code units | Timothy Flynn | |
2021-07-23 | LibJS: Implement RegExp.prototype [ @@search ] with UTF-16 code units | Timothy Flynn | |
2021-07-23 | LibJS: Implement RegExp.prototype [ @@match ] with UTF-16 code units | Timothy Flynn | |
2021-07-23 | LibJS: Implement RegExp.prototype.{exec,test} with UTF-16 code units | Timothy Flynn | |
This converts RegExpExec to perform matching with UTF-16 strings. As a very temporary stop-gap, this adds overloads to RegExpExec and friends for both UTF-8 and UTF-16 strings. This is only needed until the rest of RegExp.prototype is UTF-16 capable. This also addresses a FIXME regarding code point index correction in RegExpExec when the Unicode flag is set. | |||
2021-07-23 | LibJS: Implement RegExpCreate/RegExpInitialize closer to the spec | Timothy Flynn | |
RegExpInitialize specifies how the pattern string should be created before passing it to [[RegExpMatcher]]. Rather than passing it as-is, the string should be converted to code points and back to a "List" (if the Unicode flag is present), or as a "List" of UTF-16 code units. Further. the spec requires that we keep both the original pattern string and this parsed string in the RegExp object. The caveat is that the LibRegex parser further requires any multi-byte code units to be escaped (as "\unnnn"). Otherwise, the code unit is recognized as individual UTF-8 bytes. | |||
2021-07-23 | LibRegex: Support ECMA-262 Unicode escapes of the form "\u{code_point}" | Timothy Flynn | |
When the Unicode flag is set, regular expressions may escape code points by surrounding the hexadecimal code point with curly braces, e.g. \u{41} is the character "A". When the Unicode flag is not set, this should be considered a repetition symbol - \u{41} is the character "u" repeated 41 times. This is left as a TODO for now. | |||
2021-07-23 | AK+LibRegex: Partially implement case insensitive UTF-16 comparison | Timothy Flynn | |
This will work for ASCII code points. Unicode case folding will be needed for non-ASCII. | |||
2021-07-23 | LibRegex: Support UTF-16 RegexStringView and improve Unicode matching | Timothy Flynn | |
When the Unicode option is not set, regular expressions should match based on code units; when it is set, they should match based on code points. To do so, the regex parser must combine surrogate pairs when the Unicode option is set. Further, RegexStringView needs to know if the flag is set in order to return code point vs. code unit based string lengths and substrings. | |||
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.inLeapYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.inLeapYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.monthsInYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.monthsInYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.daysInYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.daysInYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.daysInMonth | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.daysInMonth | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.daysInWeek | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.daysInWeek | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.weekOfYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.weekOfYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.dayOfYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.dayOfYear | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.dayOfWeek | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.dayOfWeek | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.day | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.day | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.monthCode | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.monthCode | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.month | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.month | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.year | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.Calendar.prototype.year | Idan Horowitz | |
2021-07-23 | LibJS: Implement Temporal.PlainDate.prototype.withCalendar | Idan Horowitz | |
2021-07-23 | LibJS: Add missing PlainDateTime case in ToTemporalDate | Idan Horowitz | |
2021-07-23 | TextEditor: Allow starting with a file argument that doesn't exist | Itamar | |
If TextEditor is started with an argument for a file that doesn't exist, we now allow editing it. The file will be created once it is saved. | |||
2021-07-23 | LibRegex: Switch to east-const style | Ali Mohammad Pur | |
2021-07-23 | LibRegex: Clear previous capture group contents in ECMA262 mode | Ali Mohammad Pur | |
ECMA262 requires that the capture groups only contain the values from the last iteration, e.g. `((c)(a)?(b))` should _not_ contain 'a' in the second capture group when matching "cabcb". | |||
2021-07-23 | LibWeb: Manually convert the js bigint to a wasm i64 value | Ali Mohammad Pur | |
SignedBigInteger::export() generates sign-magnitude, but the native i64 type uses 2's comp, make this work by exporting it as unsigned and tweaking the sign later. | |||
2021-07-23 | LibWeb: Read the correct types in WebAssembly's to_js_value() | Ali Mohammad Pur | |
A wasm value containing an F64 does not contain a float, etc. | |||
2021-07-23 | LibWeb: Dont try to parse "data" urls as links | stelar7 | |
2021-07-23 | LibWeb: Fix that empty event handlers return null instead of crashing | davidot | |
2021-07-23 | LibJS: Implement Temporal.PlainDateTime.prototype.getISOFields() | Linus Groh | |
2021-07-23 | LibJS: Implement Temporal.PlainDateTime.prototype.toPlainDate() | Linus Groh | |
2021-07-23 | LibJS: Fix return type of PlainDateTime::iso_{milli,micro,nano}second() | Linus Groh | |
2021-07-23 | Hearts: Avoid redrawing the UI unnecessarily | Gunnar Beutner | |