Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								37972e9f0c 
								
							 
						 
						
							
							
								
								LibWeb: Implement most WebIDL promise operations  
							
							
							
						 
						
							2022-09-27 14:56:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								e68e92b304 
								
							 
						 
						
							
							
								
								LibJS: Make JS::NativeFunction use JS::SafeFunction internally  
							
							... 
							
							
							
							This still needs a project-wide cleanup to remove handles captured in
lambdas, which is now longer required.
For now, this will be used in the next commit implementing promise AOs
from Web IDL, which make heavy use of deferred callbacks. 
							
						 
						
							2022-09-27 14:56:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								4e536eaf98 
								
							 
						 
						
							
							
								
								LibJS: Add JSON.stringify function to the intrinsics  
							
							... 
							
							
							
							This is needed for some Web APIs. 
							
						 
						
							2022-09-27 14:56:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								82e730eba1 
								
							 
						 
						
							
							
								
								LibJS: Change default time display options to "always" for digital style  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat proposal. See:
d28076b 
							
						 
						
							2022-09-22 14:39:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Atkins 
								
							 
						 
						
							
							
							
							
								
							
							
								69dd158f91 
								
							 
						 
						
							
							
								
								LibJS: Create Console using a Realm instead of a VM  
							
							
							
						 
						
							2022-09-21 20:03:49 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								446a10a1ac 
								
							 
						 
						
							
							
								
								LibJS: Implement normative change in String.prototype.substr  
							
							... 
							
							
							
							And add spec comments while we're in the neighborhood. 
							
						 
						
							2022-09-21 16:59:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								60a6bae53d 
								
							 
						 
						
							
							
								
								LibJS: Change digital default style from "narrow" to "short"  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat proposal. See:
4c24876 
							
						 
						
							2022-09-21 16:09:38 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Bertalan 
								
							 
						 
						
							
							
							
							
								
							
							
								2b69af2dfe 
								
							 
						 
						
							
							
								
								AK+LibJS: Handle NaN-boxing pointers on AArch64  
							
							... 
							
							
							
							JS::Value stores 48 bit pointers to separately allocated objects in its
payload. On x86-64, canonical addresses have their top 16 bits set to
the same value as bit 47, effectively meaning that the value has to be
sign-extended to get the pointer. AArch64, however, expects the topmost
bits to be all zeros.
This commit gates sign extension behind `#if ARCH(X86_64)`, and adds an
`#error` for unsupported architectures, so that we do not forget to
think about pointer handling when porting to a new architecture.
Fixes  #15290 
Fixes  SerenityOS/ladybird#56  
							
						 
						
							2022-09-21 11:55:57 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ben Wiederhake 
								
							 
						 
						
							
							
							
							
								
							
							
								48d8aff436 
								
							 
						 
						
							
							
								
								LibJS: Add missing includes  
							
							... 
							
							
							
							This remained undetected for a long time as HeaderCheck is disabled by
default. This commit makes the following file compile again:
    // file: compile_me.cpp
    #include <LibJS/Runtime/StringPrototype.h>
    // That's it, this was enough to cause a compilation error.
Likewise for most other files touched by this commit. 
							
						 
						
							2022-09-18 13:27:24 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								887dac0929 
								
							 
						 
						
							
							
								
								LibJS: Handle NumberFormat's [[UseGrouping]] option for "true" / "false"  
							
							... 
							
							
							
							This is a normative change to the Intl NumberFormat V3 spec. See:
4751da5 
							
						 
						
							2022-09-18 09:45:40 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								03c468fb7d 
								
							 
						 
						
							
							
								
								LibJS: Parse date strings like "9/17/2022"  
							
							
							
						 
						
							2022-09-17 18:53:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ben Wiederhake 
								
							 
						 
						
							
							
							
							
								
							
							
								4cd382c621 
								
							 
						 
						
							
							
								
								LibJS: Break another inclusion cycle by removing unnecessary include  
							
							
							
						 
						
							2022-09-17 04:00:54 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ben Wiederhake 
								
							 
						 
						
							
							
							
							
								
							
							
								6a4e2efa65 
								
							 
						 
						
							
							
								
								LibJS: Break inclusion cycle by removing unnecessary include  
							
							
							
						 
						
							2022-09-17 04:00:54 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								388dc9cc5f 
								
							 
						 
						
							
							
								
								LibJS: Supress an unused bind when wrapping float atomic operations  
							
							
							
						 
						
							2022-09-16 05:39:28 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								85e313077a 
								
							 
						 
						
							
							
								
								LibJS: Do not invoke Cell::vm in constructors before Cell is constructed  
							
							... 
							
							
							
							In a subclass of Cell, we cannot use Cell::vm() before the base Cell
object itself is constructed. Use the Realm's VM instead.
This was caught by UBSAN with vptr sanitation enabled. 
							
						 
						
							2022-09-15 09:45:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								3efe611dbf 
								
							 
						 
						
							
							
								
								LibJS: Do not assume that IsArray means the object type is an Array  
							
							... 
							
							
							
							IsArray returns true if the object is an Array *or* if it is a
ProxyObject whose target is an Array. Therefore, we cannot downcast to
an Array based on IsArray.
Luckily, we don't actually need an Array here; SerializeJSONArray only
needs an Object.
This was caught by UBSAN with vptr sanitation enabled. 
							
						 
						
							2022-09-15 09:45:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								98a6f962a0 
								
							 
						 
						
							
							
								
								LibJS: Use correct include + object class for Function{Object,Prototype}  
							
							... 
							
							
							
							Not causing any real issue, just noticed while debugging vptr sanitation
errors. 
							
						 
						
							2022-09-15 09:45:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								d4736d17ae 
								
							 
						 
						
							
							
								
								LibJS: Allow negative pointers in Value  
							
							... 
							
							
							
							Also ensure that all a nullptr input gives null object and you don't
accidentally dereference a nullptr. 
							
						 
						
							2022-09-10 00:05:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7b0dd98103 
								
							 
						 
						
							
							
								
								LibJS+LibWeb: Spin event loop via VM::CustomData abstraction  
							
							... 
							
							
							
							Instead of calling Core::EventLoop directly, LibJS now has a virtual
function on VM::CustomData for customizing this behavior.
We use this in LibWeb to plumb the spin request through to the
PlatformEventPlugin. 
							
						 
						
							2022-09-08 00:13:39 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								00c8f07192 
								
							 
						 
						
							
							
								
								LibJS: Make Script and Module GC-allocated  
							
							... 
							
							
							
							This ensures that code currently in any active or saved execution stack
always stays alive. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								abfb73f2e7 
								
							 
						 
						
							
							
								
								LibWeb+LibJS: Let JS::Realm::HostDefined objects mark things during GC  
							
							... 
							
							
							
							This allows us to mark the HTML::Window from our window environment
settings object. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								43a3471298 
								
							 
						 
						
							
							
								
								LibLocale: Move locale source files to the LibLocale folder  
							
							... 
							
							
							
							These are still included in LibUnicode, but this updates their location
and the include paths of other files which include them. 
							
						 
						
							2022-09-05 14:37:16 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								ff48220dca 
								
							 
						 
						
							
							
								
								Userland: Move files destined for LibLocale to the Locale namespace  
							
							
							
						 
						
							2022-09-05 14:37:16 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								6c7b05a0ff 
								
							 
						 
						
							
							
								
								LibUnicode+LibJS: Move Unicode::get_available_currencies() to Locale.h  
							
							... 
							
							
							
							This is generated by GenerateLocaleData, which will soon be in the
Locale namespace. Move it out of CurrencyCode.h, as that will continue
to live in the Unicode namespace. 
							
						 
						
							2022-09-05 14:37:16 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								85994d6115 
								
							 
						 
						
							
							
								
								LibJS: Remove unused include from JS::Temporal::Calendar  
							
							
							
						 
						
							2022-09-05 14:37:16 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7fce5f102f 
								
							 
						 
						
							
							
								
								LibJS: Don't use a Handle<Realm> in FinalizationRegistry  
							
							... 
							
							
							
							Instead just treat it like a normal GC cell edge. 
							
						 
						
							2022-09-03 00:36:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								486775f9fe 
								
							 
						 
						
							
							
								
								LibJS: Fix incorrect check in ValidateAndApplyPropertyDescriptor  
							
							... 
							
							
							
							This is an editorial change in the ECMA-262 spec.
See: f0e4ae8 
							
						 
						
							2022-09-02 22:47:28 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								455537d31d 
								
							 
						 
						
							
							
								
								LibJS: Assert Proxy target is a function in [[Call]] and [[Construct]]  
							
							... 
							
							
							
							As the TODOs suggested for a long time. :^) 
							
						 
						
							2022-09-02 22:44:44 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								0fc67ffd62 
								
							 
						 
						
							
							
								
								LibJS: Make indirect bindings of module behave like normal bindings  
							
							... 
							
							
							
							Before this we attempted to hack around this by only overriding
has_binding. However this did not cover all cases, for example when
assigning to variables before their declaration it didn't throw.
By using the new find_binding_and_index virtual method we can just
pretend the indirect bindings are real.
Since indirect binding do come from a normal environment we need to
ensure you cannot modify the binding and that properties like mutable
are false as expected by the spec for such an indirect binding. 
							
						 
						
							2022-09-02 02:07:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								2484bbc4e0 
								
							 
						 
						
							
							
								
								LibJS: Make DeclarativeEnvironment based on bindings instead of indices  
							
							... 
							
							
							
							This will allow other environments which extend DeclarativeEnvironment
to provide their own custom bindings. 
							
						 
						
							2022-09-02 02:07:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								3b56043612 
								
							 
						 
						
							
							
								
								LibJS: Put exports before symbols in keys of module namespace object  
							
							
							
						 
						
							2022-09-02 02:07:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									davidot 
								
							 
						 
						
							
							
							
							
								
							
							
								fb61e9274a 
								
							 
						 
						
							
							
								
								LibJS: Call resolve instead of reject in AsyncFromSyncIteratorPrototype  
							
							
							
						 
						
							2022-09-02 02:07:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								c477425b9b 
								
							 
						 
						
							
							
								
								LibJS: Create DurationFormat's ListFormat object with type and style  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat spec. See:
1304e4b 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								127b28c940 
								
							 
						 
						
							
							
								
								LibJS: Use numeric style if the previous style was numeric or 2-digit  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat proposal. See:
3a46ee3 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								cab1cce522 
								
							 
						 
						
							
							
								
								LibJS: Update DurationFormat AO text to align with ECMA-402 and Temporal  
							
							... 
							
							
							
							These are editorial changes in the Intl.DurationFormat proposal. See:
71b291bd0cc6fad4b35bb 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								a86b840c64 
								
							 
						 
						
							
							
								
								LibJS: Rename DurationFormat's DurationSign to DurationRecordSign  
							
							... 
							
							
							
							This is an editorial change in the Intl.DurationFormat proposal. See:
f947239 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								f8c51fec1d 
								
							 
						 
						
							
							
								
								LibJS: Align ToDurationRecord with ToTemporalDurationRecord  
							
							... 
							
							
							
							This is an editorial change in the Intl.DurationFormat proposal. See:
527ea58 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								a28ff92106 
								
							 
						 
						
							
							
								
								LibJS: Mark PartitionDurationFormatPattern as infallible  
							
							... 
							
							
							
							This is an editorial change in the Intl.DurationFormat proposal. See:
cea3b68 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								aabd06722f 
								
							 
						 
						
							
							
								
								LibJS: Change GetDurationUnitOptions to require a string for prevStyle  
							
							... 
							
							
							
							This is an editoral change in the Intl.DurationFormat proposal. See:
62ee645 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								1778462d97 
								
							 
						 
						
							
							
								
								LibJS: Resolve FIXMEs in DurationFormat's PartitionDurationFormatPattern  
							
							... 
							
							
							
							These are normative changes in the Intl.DurationFormat proposal. See:
e2e18d1f1e8ed32ed31b82d51d6464cc5dba1d787647a3a693e9358ef4ecb46b454c8c 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								d57b92da09 
								
							 
						 
						
							
							
								
								LibJS: Default to "short" for DurationFormat's style option  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat proposal. See:
b289494 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								765d016670 
								
							 
						 
						
							
							
								
								LibJS: Default to 0 for DurationFormat's fractionalDigits option  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat proposal. See:
ac7e184 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								2fb332da7b 
								
							 
						 
						
							
							
								
								LibJS: Update spec steps to validate DurationFormat's numberingSystem  
							
							... 
							
							
							
							This is a normative change in the Intl.DurationFormat proposal. See:
63a9202 
							
						 
						
							2022-08-30 14:26:11 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								69415f0608 
								
							 
						 
						
							
							
								
								LibJS: Make string_to_bigint() a standalone function  
							
							... 
							
							
							
							This now matches the newly added string_to_number(). 
							
						 
						
							2022-08-30 10:30:54 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								15e3a99250 
								
							 
						 
						
							
							
								
								LibJS: Trim non-ASCII whitespace as well in StringToBigInt  
							
							... 
							
							
							
							This was never caught since the original implementation AFAICT, and
isn't being covered by test262 either:
https://github.com/tc39/test262/issues/1354  
							
						 
						
							2022-08-30 10:30:43 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								c88c33dc22 
								
							 
						 
						
							
							
								
								LibJS: Trim non-ASCII whitespace as well in StringToNumber  
							
							... 
							
							
							
							This regressed in f4b3bb5 
							
						 
						
							2022-08-30 10:20:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Slappy826 
								
							 
						 
						
							
							
							
							
								
							
							
								f4b3bb519f 
								
							 
						 
						
							
							
								
								LibJS: Handle non-decimal integer literals in Value::to_number  
							
							... 
							
							
							
							Implements support for parsing binary and octal literals, and fixes
instances where a hex literal is parsed in ways the spec doesn't
allow. 
							
						 
						
							2022-08-30 01:00:48 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								35c9aa7c05 
								
							 
						 
						
							
							
								
								LibJS: Hide all the constructors!  
							
							... 
							
							
							
							Now that the GC allocator is able to invoke Cell subclass constructors
directly via friendship, we no longer need to keep them public. :^) 
							
						 
						
							2022-08-29 03:24:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								49fd92d92a 
								
							 
						 
						
							
							
								
								LibJS: Make JS_OBJECT and JS_ENVIRONMENT forward to JS_CELL  
							
							
							
						 
						
							2022-08-29 03:24:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6e973ce69b 
								
							 
						 
						
							
							
								
								LibJS: Add JS_CELL macro and use it in all JS::Cell subclasses  
							
							... 
							
							
							
							This is similar to what we already had with JS_OBJECT (and also
JS_ENVIRONMENT) but sits at the top of the Cell inheritance hierarchy. 
							
						 
						
							2022-08-29 03:24:54 +02:00