1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:38:11 +00:00
serenity/Userland/Libraries/LibJS/Tests
Timothy Flynn d83ce7dd0b LibJS: Re-implement the Date constructor / prototype for spec compliance
First, this adds a constructor to the Date object to be created from a
plain double. This is a first step to removing Core::DateTime as the
basis for the Date object. A subsequent commit will remove the now-
unused data from the object.

Next, this implements the constructor in accordance to the spec. The
constructor when NewTarget is undefined no longer allocates a Date on
the heap. The other constructor properly uses recently created AOs to
handle time zone and ensure the created [[DateValue]] is valid. Other
methods on the constructor (Date.now) have not been touched yet.

Last, the prototype is reimplemented. Again, we use other AOs to handle
time zones and time clipping. Not all prototypes are fixed; most of them
are, but a few (e.g. Date.prototype.getTimezoneOffset) were not fixed,
but left in a mostly unimplemented state for another commit.

In all of the above, spec comments are added. This is a rather large
change; but it's tough to do any of these parts individually without
breaking everything else.
2022-01-15 20:13:48 +01:00
..
builtins LibJS: Re-implement the Date constructor / prototype for spec compliance 2022-01-15 20:13:48 +01:00
classes LibJS: Allow super property lookup and new.target in static init blocks 2021-12-21 14:04:23 +01:00
functions LibJS: Evaluate NewExpression arguments before checking constructor type 2021-12-30 01:02:30 +01:00
iterators LibJS: Disallow duplicated variable declarations 2021-07-20 23:45:28 +02:00
loops Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
operators LibJS: Don't treat yield after void as identifier in generator functions 2021-12-21 14:04:23 +01:00
syntax LibJS: Add missing undefined fallback to IfStatement completions 2021-12-31 15:39:25 +01:00
add-values-to-primitive.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
arguments-callee.js LibJS: Add a basic test for arguments.callee 2021-03-17 21:54:52 +01:00
arguments-object.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
automatic-semicolon-insertion.js LibJS/Tests: Use eval() for toEvalTo(), not Function() 2021-06-18 20:35:23 +01:00
break-continue-syntax-errors.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
comments-basic.js LibJS: Make new lines in block comments reset line has token 2021-12-21 14:04:23 +01:00
computed-property-throws.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
const-declaration-missing-initializer.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
const-reassignment.js LibJS: Re-enable "reassignment to const" test 2021-02-26 16:59:37 +01:00
custom-@@hasInstance.js LibJS: Rewrite most of Object for spec compliance :^) 2021-07-04 22:07:36 +01:00
custom-@@toPrimitive.js LibJS: Support @@toPrimitive in ToPrimitive abstract operation 2021-03-03 11:04:06 +01:00
custom-@@toStringTag.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
debugger-statement.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
duplicated-variable-declarations.js LibJS: Enable now working tests for duplicated variable declarations 2021-10-15 10:27:16 +01:00
empty-statements.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
eval-aliasing.js LibJS: Correct behaviour of direct vs. indirect eval 2021-06-23 09:38:33 +01:00
eval-basic.js LibJS: Correct behaviour of direct vs. indirect eval 2021-06-23 09:38:33 +01:00
exception-in-catch-block.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
exception-ReferenceError.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
exponentiation-basic.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
global-var-let-const.js LibJS: Only "var" declarations go in the global object at program level 2021-06-09 23:25:16 +02:00
if-statement-function-declaration.js LibJS: Ensure function declarations don't leak outside function scopes 2021-05-13 23:59:00 +01:00
indexed-access-prototype-indirection.js LibJS: Fix array hole and string object indexing prototype indirection 2021-04-11 18:15:47 +02:00
indexed-access-string-object.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
invalid-lhs-in-assignment.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
labels.js LibJS: Replace the custom unwind mechanism with completions :^) 2022-01-06 12:36:23 +01:00
let-scoping.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
new-expression.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
non-writable-assignment.js LibJS: Throw TypeError on write to non-writable property in strict mode 2021-06-05 23:54:08 +01:00
numeric-literals-basic.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
object-basic.js LibJS: Disallow shorthand properties with reserved names 2021-11-30 17:05:32 +00:00
object-expression-computed-property.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
object-expression-numeric-property.js LibJS: Don't treat 2^32 - 1 as numeric PropertyName 2021-07-06 17:29:12 +01:00
object-getter-setter-shorthand.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
object-method-shorthand.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
object-spread.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ordinary-to-primitive.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
parseInt.js LibJS: Uncomment and add parseInt tests 2021-06-06 01:34:22 +01:00
parser-declaration-in-single-statement-context.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
parser-line-terminators.js LibJS: Fix that windows style line endings were not ignored or converted 2021-09-06 08:43:38 +01:00
parser-unary-associativity.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
permanently-screwed-by-eval.js LibJS: Fast non-local variable access :^) 2021-10-07 11:53:18 +02:00
program-non-strict.js LibJS: Add tests for strict mode and strict mode propagation 2021-07-20 23:45:28 +02:00
program-strict-mode.js LibJS: Add tests for strict mode and strict mode propagation 2021-07-20 23:45:28 +02:00
return.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
runtime-error-call-stack-size.js LibJS: Throw InternalErrors instead of Errors on CallStackSizeExceeded 2021-11-27 01:58:05 +02:00
statement-with-many-labels.js LibJS: Allow statements to have multiple labels 2021-09-26 18:24:19 +02:00
strict-mode-blocks.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
strict-mode-errors.js LibJS: Make scoping follow the spec 2021-09-30 08:16:32 +01:00
string-escapes.js LibJS: Disallow '\8' and '\9' in strict mode due to being octal escapes 2021-11-30 17:05:32 +00:00
string-spread.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
switch-basic.js LibJS: Fix switch skipping case evaluation when hitting the default case 2021-09-30 08:16:32 +01:00
switch-break.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
switch-default-before-case.js LibJS: Defer execution of switch default clause until after case clauses 2021-09-26 18:04:25 +02:00
tagged-template-literals.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
template-literals.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
test-common-tests.js LibJS/Tests: Use eval() for toEvalTo(), not Function() 2021-06-18 20:35:23 +01:00
test-common.js LibJS: Add messages to the toEval and toEvalTo tests 2021-11-30 17:05:32 +00:00
this-value-strict.js LibJS/Tests: Enable two more skipped tests which now pass 2021-12-08 20:08:26 +00:00
this-value.js LibJS/Tests: Enable two more skipped tests which now pass 2021-12-08 20:08:26 +00:00
throw-basic.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
to-number-basic.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
to-number-exception.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
try-catch-finally-nested.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
try-catch-finally-return.js LibJS: Fix return value of TryStatement with finalizer 2021-04-13 15:40:52 +02:00
try-catch-finally.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
unicode-identifier-escape.js LibJS: Fix some small remaining issues with parsing unicode escapes 2021-08-24 07:42:37 +01:00
update-expression-on-member-expression.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
update-expressions-basic.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
use-strict-directive.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
var-multiple-declarator.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
var-scoping.js LibJS: Enable now working tests for duplicated variable declarations 2021-10-15 10:27:16 +01:00
variable-undefined.js Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
with-basic.js LibJS: Restore the environment if an exception is thrown in 'with' block 2021-09-08 20:37:39 +01:00