summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2021-07-24LibWeb: Add tokenization of calc expressionTobias Christiansen
Here the first step in understanding a calc() expression is taken: Finding the start of an expression and tokenizong it.
2021-07-24LibWeb: Add CalculatedStyleValue to the CSS StyleValuesTobias Christiansen
This adds the CalculatedStyleValue and all the structs needed to work with the calc() expressions.
2021-07-24LibWeb: Use Length::resolved() in FlexFormattingContextTobias 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-23LibJS: Remove UTF-8 RegExpExec and AdvanceStringIndex overridesTimothy Flynn
All interested parties are now UTF-16 capable, so these are unused.
2021-07-23LibJS: Implement RegExp.prototype [ @@replace ] with UTF-16 code unitsTimothy 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-23LibJS: Implement RegExp.prototype [ @@split ] with UTF-16 code unitsTimothy Flynn
2021-07-23LibJS: Implement RegExp.prototype [ @@search ] with UTF-16 code unitsTimothy Flynn
2021-07-23LibJS: Implement RegExp.prototype [ @@match ] with UTF-16 code unitsTimothy Flynn
2021-07-23LibJS: Implement RegExp.prototype.{exec,test} with UTF-16 code unitsTimothy 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-23LibJS: Implement RegExpCreate/RegExpInitialize closer to the specTimothy 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-23LibRegex: 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-23AK+LibRegex: Partially implement case insensitive UTF-16 comparisonTimothy Flynn
This will work for ASCII code points. Unicode case folding will be needed for non-ASCII.
2021-07-23LibRegex: Support UTF-16 RegexStringView and improve Unicode matchingTimothy 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-23LibJS: Implement Temporal.PlainDate.prototype.inLeapYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.inLeapYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.monthsInYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.monthsInYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.daysInYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.daysInYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.daysInMonthIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.daysInMonthIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.daysInWeekIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.daysInWeekIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.weekOfYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.weekOfYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.dayOfYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.dayOfYearIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.dayOfWeekIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.dayOfWeekIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.dayIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.dayIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.monthCodeIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.monthCodeIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.monthIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.monthIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.yearIdan Horowitz
2021-07-23LibJS: Implement Temporal.Calendar.prototype.yearIdan Horowitz
2021-07-23LibJS: Implement Temporal.PlainDate.prototype.withCalendarIdan Horowitz
2021-07-23LibJS: Add missing PlainDateTime case in ToTemporalDateIdan Horowitz
2021-07-23TextEditor: Allow starting with a file argument that doesn't existItamar
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-23LibRegex: Switch to east-const styleAli Mohammad Pur
2021-07-23LibRegex: Clear previous capture group contents in ECMA262 modeAli 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-23LibWeb: Manually convert the js bigint to a wasm i64 valueAli 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-23LibWeb: 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-23LibWeb: Dont try to parse "data" urls as linksstelar7
2021-07-23LibWeb: Fix that empty event handlers return null instead of crashingdavidot
2021-07-23LibJS: Implement Temporal.PlainDateTime.prototype.getISOFields()Linus Groh
2021-07-23LibJS: Implement Temporal.PlainDateTime.prototype.toPlainDate()Linus Groh
2021-07-23LibJS: Fix return type of PlainDateTime::iso_{milli,micro,nano}second()Linus Groh
2021-07-23Hearts: Avoid redrawing the UI unnecessarilyGunnar Beutner