Linus Groh
dbdbfbeebc
LibJS: Implement Temporal.Duration.prototype.minutes
2021-07-16 01:07:01 +01:00
Linus Groh
067c2346ed
LibJS: Implement Temporal.Duration.prototype.hours
2021-07-16 01:07:01 +01:00
Linus Groh
2015640168
LibJS: Implement Temporal.Duration.prototype.days
2021-07-16 01:07:01 +01:00
Linus Groh
23d0c3494f
LibJS: Implement Temporal.Duration.prototype.weeks
2021-07-16 01:07:01 +01:00
Linus Groh
8011409428
LibJS: Implement Temporal.Duration.prototype.months
2021-07-16 01:07:01 +01:00
Linus Groh
300a22f9b9
LibJS: Implement Temporal.Duration.prototype.years
2021-07-16 01:07:01 +01:00
Timothy Flynn
1a3e1bff7b
LibJS: Implement Atomics.isLockFree
2021-07-14 22:13:15 +01:00
Timothy Flynn
33eb830929
LibJS: Implement Atomics.compareExchange
2021-07-14 22:13:15 +01:00
Timothy Flynn
655ffce64d
LibJS: Implement Atomics.exchange
2021-07-14 22:13:15 +01:00
Timothy Flynn
6211eb0f9a
LibJS: Implement Atomics.store
2021-07-14 20:44:42 +01:00
Timothy Flynn
b6364ec899
LibJS: Implement Atomics.xor
2021-07-14 20:44:42 +01:00
Timothy Flynn
f9d8e234b2
LibJS: Implement Atomics.or
2021-07-14 20:44:42 +01:00
Timothy Flynn
2d3af5c1b4
LibJS: Implement Atomics.and
2021-07-14 20:44:42 +01:00
Timothy Flynn
940875c9fd
LibJS: Implement Atomics.load
2021-07-14 20:44:42 +01:00
Timothy Flynn
a61723ec59
LibJS: Begin implementing Atomics
...
This adds the Atomics object to the global object and sets up only its
@@toStringTag property.
2021-07-14 20:44:42 +01:00
Idan Horowitz
2382f67e0b
LibJS: Add Temporal.Instant.prototype.equals()
2021-07-12 19:05:17 +01:00
Idan Horowitz
33cf6274e8
LibJS: Add Temporal.Instant.compare()
2021-07-12 19:05:17 +01:00
Timothy Flynn
6c67de8186
LibJS: Implement RegExp.prototype.hasIndices proposal
...
https://tc39.es/proposal-regexp-match-indices/
2021-07-10 16:49:35 +01:00
Timothy Flynn
d1e06b00e3
LibJS: Parse the RegExp.prototype.hasIndices flag
2021-07-10 16:49:35 +01:00
Idan Horowitz
f98a98506f
LibJS: Add %TypedArray%.prototype.subarray
2021-07-09 16:15:42 +01:00
Linus Groh
ca71d99c66
LibJS: Implement Temporal.Instant.fromEpochNanoseconds()
2021-07-09 13:20:51 +01:00
Linus Groh
5872357b56
LibJS: Implement Temporal.Instant.fromEpochMicroseconds()
2021-07-09 13:20:51 +01:00
Linus Groh
66ff772254
LibJS: Implement Temporal.Instant.fromEpochMilliseconds()
2021-07-09 13:20:51 +01:00
Linus Groh
2401e45720
LibJS: Implement Temporal.Instant.fromEpochSeconds()
2021-07-09 13:20:51 +01:00
Linus Groh
117323f2d9
LibJS: Implement Temporal.Instant.prototype.epochNanoseconds
2021-07-08 23:08:27 +01:00
Linus Groh
b5d0cdc97e
LibJS: Implement Temporal.Instant.prototype.epochMicroseconds
2021-07-08 23:08:27 +01:00
Linus Groh
b157ab3f12
LibJS: Implement Temporal.Instant.prototype.epochMilliseconds
2021-07-08 23:08:27 +01:00
Linus Groh
5010e01223
LibJS: Implement Temporal.Instant.prototype.epochSeconds
2021-07-08 23:08:27 +01:00
Linus Groh
51c581f604
LibJS: Implement Temporal.TimeZone.prototype.id
2021-07-08 23:08:27 +01:00
Linus Groh
7e4b0681e1
LibJS: Implement Date.prototype.toTemporalInstant()
2021-07-08 01:25:49 +01:00
Linus Groh
3a39ff8f40
LibJS: Implement Temporal.now.instant()
2021-07-07 19:00:42 +01:00
Linus Groh
6cd16eceb3
LibJS: Implement Temporal.now.timeZone()
2021-07-07 00:42:01 +01:00
Linus Groh
6735353b96
LibJS: Add preparation for Temporal constructors and prototypes
...
Add a JS_ENUMERATE_TEMPORAL_OBJECTS macro and use it to generate:
- Forward declarations
- CommonPropertyNames class name members
- Constructor and prototype GlobalObject members, getters, visitors,
and initialize_constructor() calls
2021-07-07 00:42:01 +01:00
Linus Groh
8269921212
LibJS: Add the Temporal namespace object :^)
...
Currently empty, but we gotta start somewhere! This is the start of
implementing the Temporal proposal (currently stage 3).
I have decided to start a new subdirectory (Runtime/Temporal/) as well
as a new C++ namespace (JS::Temporal) for this so we don't have to
prefix all the files and classes with "Temporal" - there will be a lot.
https://tc39.es/proposal-temporal/
2021-07-07 00:42:01 +01:00
Idan Horowitz
5e621e494f
LibJS: Implement Object.getOwnPropertyDescriptors()
2021-07-06 18:41:15 +01:00
Idan Horowitz
e2e695bc9f
LibJS: Add and use the %ThrowTypeError% intrinsic
2021-06-28 08:55:14 +01:00
Andreas Kling
ba9d5c4d54
LibJS: Rename Function => FunctionObject
2021-06-27 22:36:04 +02:00
Idan Horowitz
c31392510a
LibJS: Add the Number.prototype.toFixed method
2021-06-19 16:13:59 +01:00
Idan Horowitz
1cf5663e38
LibJS: Add the Object.prototype.__lookup{Getter, Setter}__ methods
...
These are a part of the Annex B extension of the specification.
2021-06-17 13:20:18 +01:00
Idan Horowitz
f98c0ca528
LibJS: Add the Object.prototype.__define{Getter, Setter}__ methods
...
These are a part of the Annex B extension of the specification.
2021-06-17 13:20:18 +01:00
Idan Horowitz
37340aa599
LibJS: Add the Object.prototype.__proto__ native accessor property
...
This is part of the Annex B extension of the specification.
2021-06-17 13:20:18 +01:00
Idan Horowitz
8e05b49089
LibJS: Add the String.prototype.codePointAt() method
...
This commit also brings charAt & charCodeAt closer to the specification
2021-06-16 20:05:18 +01:00
Idan Horowitz
2299be474b
LibJS: Add the String.fromCodePoint() method
2021-06-16 10:29:10 +01:00
Idan Horowitz
e1b0719435
LibJS: Add all of the FinalizationRegistry.prototype methods
...
More specifically: cleanupSome, register & unregister.
FinalizationRegistery.prototype.cleanupSome is actually still a stage 2
proposal, but since test262 test cases already exist for it, i decided
to go for it :)
2021-06-15 23:59:21 +01:00
Idan Horowitz
9a0cbcc3d1
LibJS: Add the Object.fromEntries method
2021-06-15 12:15:18 +01:00
davidot
6c13cc67c6
LibJS: Implement Array.prototype.copyWithin generically
2021-06-14 09:57:06 +01:00
davidot
910b803d8d
LibJS: Implement Array.prototype.flatMap
...
Also made recursive_array_flat more compliant with the spec
So renamed it to flatten_into_array
2021-06-14 09:57:06 +01:00
Idan Horowitz
d7a70eb77c
LibJS: Add all of the DataView.prototype.set* methods
2021-06-14 01:45:04 +01:00
Idan Horowitz
c54b9a6920
LibJS: Add all of the DataView.prototype.get* methods
2021-06-14 01:45:04 +01:00
Andreas Kling
5eef07d232
LibJS: Avoid lots of string-to-int during global object construction
...
We were doing a *lot* of string-to-int conversion while creating a new
global object. This happened because Object::put() would try to convert
the property name (string) to an integer to see if it refers to an
indexed property.
Sidestep this issue by using PropertyName for the CommonPropertyNames
struct on VM (vm.names.foo), and giving PropertyName a flag that tells
us whether it's a string that *may be* a number.
All CommonPropertyNames are set up so they are known to not be numbers.
2021-06-13 19:11:29 +02:00