1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:08:10 +00:00
serenity/Userland/Libraries/LibJS/Runtime
Linus Groh e46fa3ac8b LibJS: Keep RegExp.exec() results in correct order
By using regex::AllFlags::SkipTrimEmptyMatches we get a null string for
unmatched capture groups, which we then turn into an undefined entry in
the result array instead of putting all matches first and appending
undefined for the remaining number of capture groups - e.g. for

    /foo(ba((r)|(z)))/.exec("foobaz")

we now return

    ["foobaz", "baz", "z", undefined, "z"]

and not [

    ["foobaz", "baz", "z", "z", undefined]

Fixes part of #6042.

Also happens to fix selecting an element by ID using jQuery's $("#foo").
2021-04-03 16:34:34 +02:00
..
Accessor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Array.cpp LibJS: Fix two issues with array (length > INT32_MAX) 2021-03-30 13:52:56 +02:00
Array.h LibJS: Make ArrayPrototype an Array object 2021-02-24 10:22:17 +01:00
ArrayBuffer.cpp LibJS: ArrayBuffer.prototype.slice 2021-04-03 16:24:44 +02:00
ArrayBuffer.h LibJS: ArrayBuffer.prototype.slice 2021-04-03 16:24:44 +02:00
ArrayBufferConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBufferConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayBufferPrototype.cpp LibJS: ArrayBuffer.prototype.slice 2021-04-03 16:24:44 +02:00
ArrayBufferPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayIterator.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayIterator.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayIteratorPrototype.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ArrayIteratorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ArrayPrototype.cpp LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
ArrayPrototype.h LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
BigInt.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
BigInt.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntConstructor.cpp LibJS: Support @@toPrimitive in ToPrimitive abstract operation 2021-03-03 11:04:06 +01:00
BigIntConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
BigIntObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigIntPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BooleanPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BoundFunction.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BoundFunction.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Cell.cpp LibJS: Always inline Cell::vm() and Cell::heap() 2021-03-21 21:39:39 +01:00
Cell.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
CommonPropertyNames.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
ConsoleObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
ConsoleObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Date.cpp LibJS Date: Added "Invalid Date". 2021-03-22 20:58:22 +01:00
Date.h LibJS Date: Added "Invalid Date". 2021-03-22 20:58:22 +01:00
DateConstructor.cpp LibJS Date: Added "Invalid Date". 2021-03-22 20:58:22 +01:00
DateConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DatePrototype.cpp LibJS: Don't static_cast<double>() various Date getter values 2021-03-23 20:57:31 +01:00
DatePrototype.h LibJS Date: Added toUTCString() 2021-03-22 20:58:22 +01:00
Error.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Error.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorTypes.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ErrorTypes.h LibJS: Use empty value for Reference unresolvable state, not undefined 2021-04-02 22:24:30 +02:00
Exception.cpp LibJS: Don't track executing AST nodes in a Vector 2021-03-21 21:39:39 +01:00
Exception.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Function.cpp LibJS: Function must mark its home object 2021-02-07 10:57:07 +01:00
Function.h LibJS: Function must mark its home object 2021-02-07 10:57:07 +01:00
FunctionConstructor.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
FunctionConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
FunctionPrototype.cpp LibJS: Change non-ScriptFunction source string to "[native code]" 2021-03-14 19:22:16 +01:00
FunctionPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
GlobalObject.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
GlobalObject.h LibJS: Add fast_is<T> for StringObject and GlobalObject 2021-03-19 23:12:47 +01:00
IndexedProperties.cpp LibJS: Fix two issues with array (length > INT32_MAX) 2021-03-30 13:52:56 +02:00
IndexedProperties.h LibJS: Don't punish large arrays with generic indexed property storage 2021-03-21 11:37:10 +01:00
IteratorOperations.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IteratorOperations.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
IteratorPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
IteratorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
JobCallback.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
JSONObject.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JSONObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
LexicalEnvironment.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
LexicalEnvironment.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
MarkedValueList.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
MarkedValueList.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
MathObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
MathObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeFunction.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeFunction.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeProperty.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NativeProperty.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
NumberObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NumberPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Object.cpp LibJS: Move AST node stack from VM to Interpreter 2021-03-21 16:02:11 +01:00
Object.h LibJS: Add fast_is<T> for StringObject and GlobalObject 2021-03-19 23:12:47 +01:00
ObjectConstructor.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
ObjectConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ObjectPrototype.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
ObjectPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PrimitiveString.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PrimitiveString.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Promise.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
Promise.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseConstructor.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseConstructor.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseJobs.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseJobs.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromisePrototype.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromisePrototype.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseReaction.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseReaction.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseResolvingFunction.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PromiseResolvingFunction.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
PropertyAttributes.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
PropertyName.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
ProxyConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ProxyConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ProxyObject.cpp LibJS: Use Value::get_method() a bunch 2021-03-02 19:20:29 +01:00
ProxyObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Reference.cpp LibJS: Use empty value for Reference unresolvable state, not undefined 2021-04-02 22:24:30 +02:00
Reference.h LibJS: Use empty value for Reference unresolvable state, not undefined 2021-04-02 22:24:30 +02:00
ReflectObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ReflectObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExpConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExpConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExpObject.cpp LibJS: Keep RegExp.exec() results in correct order 2021-04-03 16:34:34 +02:00
RegExpObject.h LibJS: Implement (mostly) String.prototype.match 2021-03-14 11:04:50 +01:00
RegExpPrototype.cpp LibJS: Keep RegExp.exec() results in correct order 2021-04-03 16:34:34 +02:00
RegExpPrototype.h LibJS: Implement most of String.prototype.replace 2021-04-02 10:48:40 +02:00
ScopeObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ScopeObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ScriptFunction.cpp LibJS: Respect declaration kind for variables inside functions 2021-02-26 16:59:37 +01:00
ScriptFunction.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Shape.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Shape.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIterator.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIterator.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIteratorPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringIteratorPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
StringObject.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
StringObject.h LibJS: Add fast_is<T> for StringObject and GlobalObject 2021-03-19 23:12:47 +01:00
StringOrSymbol.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringPrototype.cpp LibJS: Implement most of String.prototype.replace 2021-04-02 10:48:40 +02:00
StringPrototype.h LibJS: Implement most of String.prototype.replace 2021-04-02 10:48:40 +02:00
Symbol.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Symbol.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolConstructor.cpp LibJS: Remove a whole bunch of unnecessary #includes 2021-02-10 09:13:29 +01:00
SymbolConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolObject.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolObject.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolPrototype.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SymbolPrototype.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArray.cpp LibJS: Add overflow checks when creating TypedArray from ArrayBuffer 2021-01-27 07:57:07 +01:00
TypedArray.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TypedArrayConstructor.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArrayConstructor.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArrayPrototype.cpp LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
TypedArrayPrototype.h LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00
Uint8ClampedArray.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Uint8ClampedArray.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Value.cpp LibJS: Move 'typeof' string functionality from AST to Value 2021-04-02 22:24:30 +02:00
Value.h LibJS: Move 'typeof' string functionality from AST to Value 2021-04-02 22:24:30 +02:00
VM.cpp LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
VM.h LibJS: Add initial support for Promises 2021-04-02 10:47:40 +02:00
WithScope.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
WithScope.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00