davidot
53cc7e8398
LibJS: Remove unused delete_variable method in VM
2021-09-30 08:16:32 +01:00
Linus Groh
ee8380edea
LibJS: Convert internal_own_property_keys() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
fbfb0bb908
LibJS: Convert internal_delete() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
e5409c6ead
LibJS: Convert internal_set() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
6c2b974db2
LibJS: Convert internal_get() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
d9895ec12d
LibJS: Convert internal_has_property() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
5da210125e
LibJS: Convert internal_define_own_property() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
0e69a6e487
LibJS: Convert internal_get_own_property() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
73bae7d779
LibJS: Convert internal_prevent_extensions() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
9b4362f10a
LibJS: Convert internal_is_extensible() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
8c81c84c18
LibJS: Convert internal_set_prototype_of() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
5148150e1c
LibJS: Convert internal_get_prototype_of() to ThrowCompletionOr
2021-09-29 23:49:53 +01:00
Linus Groh
87f0059088
LibJS: Fix a typo in a comment in Object.h
2021-09-29 19:20:28 +01:00
Idan Horowitz
5ce468338e
LibJS: Drop the Temporal prefix from TemporalMissingRequiredProperty
...
This allows us to use it for other exposed JS APIs that accept options
objects.
2021-09-29 10:09:33 +03:00
Andreas Kling
82af69376b
LibJS: Avoid unnecessary HashMap copy in FunctionEnvironment
2021-09-28 22:32:40 +02:00
Andreas Kling
5855b19ff3
LibJS: Avoid unnecessary HashMap copy in ECMAScriptFunctionObject
2021-09-28 22:32:40 +02:00
Idan Horowitz
14e99b9b68
LibJS: Change create_iterator_result_object's return type to Object*
...
This always returns an Object, so there's no reason to return a less
explicit Value.
2021-09-28 16:51:27 +02:00
Andreas Kling
0c63f0bf73
LibJS: Parse date strings like "Wed Apr 17 23:08:53 +0000 2019"
...
The ECMAScript spec says that Date parsing can support any number of
implementation-defined date formats. So let's support a format commonly
used on the web. And let Core::DateTime do the heavy lifting. :^)
2021-09-26 23:42:27 +02:00
Luke Wilde
e06762f312
LibJS: Make Object::ordinary_set_with_own_descriptor non-static
...
This needs to be accessible for implementing IDL legacy platform
objects.
2021-09-26 18:59:56 +02:00
Andreas Kling
3252d984ae
LibJS: Allow statements to have multiple labels
...
This is a curious thing that occurs more often than you'd think in
minified JavaScript:
a: b: c: for (...) { ... break b; ... }
2021-09-26 18:24:19 +02:00
Linus Groh
38157a6093
LibJS: Move has_constructor() from NativeFunction to FunctionObject
...
At a later point this will indicate whether some FunctionObject "has a
[[Construct]] internal method" (separate from the current FunctionObject
call() / construct()), to help with a more spec-compliant implementation
of [[Call]] and [[Construct]].
This means that it is no longer relevant to just NativeFunction.
2021-09-25 17:51:30 +02:00
Linus Groh
e14f420a44
LibJS: Add const Value::as_function()
2021-09-25 17:51:30 +02:00
Linus Groh
2dba048146
LibJS: Remove unused FunctionObject::environment()
...
ECMAScriptFunctionObject::environment() can just be non-virtual.
2021-09-25 17:51:30 +02:00
Linus Groh
9043041dd3
LibJS: Move [[BoundThis]] and [[BoundArguments]] to BoundFunction
2021-09-25 17:51:30 +02:00
Linus Groh
4566472ed6
LibJS: Rename BoundFunction::m_target_function to match spec name
2021-09-25 17:51:30 +02:00
Linus Groh
a08292d76c
LibJS: Move has_simple_parameter_list to ECMAScriptFunctionObject
2021-09-25 17:51:30 +02:00
Linus Groh
76eb8fe717
LibJS: Move [[Fields]] to ECMAScriptFunctionObject
2021-09-25 17:51:30 +02:00
Linus Groh
136451c3af
LibJS: Move [[HomeObject]] to ECMAScriptFunctionObject
2021-09-25 17:51:30 +02:00
Linus Groh
06726d41ac
LibJS: Move [[ConstructorKind]] to ECMAScriptFunctionObject
2021-09-25 17:51:30 +02:00
Linus Groh
1e97a85095
LibJS: Move [[ThisMode]] to ECMAScriptFunctionObject
2021-09-25 17:51:30 +02:00
Linus Groh
d5f90cf187
LibJS: Rename ECMAScriptFunctionObject members to match spec names
...
Also add the internal slot names as comments, and separate them into
groups of spec and non-spec members.
This will make it easier to compare the implementation code with the
spec, as well as identify internal slots currently missing or only
present on FunctionObject.
2021-09-25 17:51:30 +02:00
Linus Groh
e37cf73300
LibJS: Rename OrdinaryFunctionObject to ECMAScriptFunctionObject
...
The old name is the result of the perhaps somewhat confusingly named
abstract operation OrdinaryFunctionCreate(), which creates an "ordinary
object" (https://tc39.es/ecma262/#ordinary-object ) in contrast to an
"exotic object" (https://tc39.es/ecma262/#exotic-object ).
However, the term "Ordinary Function" is not used anywhere in the spec,
instead the created object is referred to as an "ECMAScript Function
Object" (https://tc39.es/ecma262/#sec-ecmascript-function-objects ), so
let's call it that.
The "ordinary" vs. "exotic" distinction is important because there are
also "Built-in Function Objects", which can be either implemented as
ordinary ECMAScript function objects, or as exotic objects (our
NativeFunction).
More work needs to be done to move a lot of infrastructure to
ECMAScriptFunctionObject in order to make FunctionObject nothing more
than an interface for objects that implement [[Call]] and optionally
[[Construct]].
2021-09-25 17:51:30 +02:00
Linus Groh
facbe32fcd
LibJS: Rename abstract_relation() to is_less_than()
...
This got turned into a proper AO with a new name recently.
See: 587adc0
2021-09-24 09:13:57 +02:00
Linus Groh
580a7e0f7c
LibJS: Rename abstract_eq() to is_loosely_equal()
...
This got turned into a proper AO with a new name recently.
See: c7d6d1c
2021-09-24 09:13:57 +02:00
Linus Groh
c7ff89891c
LibJS: Rename strict_eq() to is_strictly_equal()
...
This got turned into a proper AO with a new name recently.
See: 19d7ca4
2021-09-24 09:13:57 +02:00
Idan Horowitz
5f80d8245d
LibJS: Close iterator on throw completion in Array.from
...
This regressed in #10190
2021-09-24 02:28:17 +03:00
Idan Horowitz
99bc429f3f
LibJS: Add missing exception checks to {Array, TypedArray}.from()
2021-09-24 02:28:17 +03:00
Idan Horowitz
ee825d6d9e
LibJS: Convert get_method to ThrowCompletionOr
2021-09-23 23:59:13 +03:00
Idan Horowitz
ab594e5f2f
LibJS: Convert Value::invoke and VM::call to ThrowCompletionOr
2021-09-23 23:59:13 +03:00
Idan Horowitz
a90107b02a
LibJS: Convert is_regexp to ThrowCompletionOr
2021-09-23 23:59:13 +03:00
Idan Horowitz
1db7e096e2
LibJS: Switch is_array to ThrowCompletionOr
2021-09-23 23:59:13 +03:00
Idan Horowitz
1da8faebf5
LibJS: Convert perform_eval to ThrowCompletionOr
2021-09-21 23:28:38 +03:00
Idan Horowitz
e24d4c346d
LibJS: Add VM::throw_completion helper for throwing custom Strings
2021-09-21 23:28:38 +03:00
Idan Horowitz
f302b114f3
LibJS: Convert get_substitution to ThrowCompletionOr
2021-09-21 23:28:38 +03:00
Idan Horowitz
69430855e0
LibJS: Remove non-specification compliant exception check
2021-09-21 23:28:38 +03:00
Idan Horowitz
e90e4ac1e2
LibJS: Convert length_of_array_like to ThrowCompletionOr
2021-09-21 23:28:38 +03:00
Idan Horowitz
02a88c5063
LibJS: Convert make_super_property_reference to ThrowCompletionOr
2021-09-21 23:28:38 +03:00
Linus Groh
d792869799
LibJS: Update spec comment to convert mathematical to number value
...
This is an editorial change in the Temporal spec.
See: d2ae357
2021-09-21 19:13:22 +02:00
Idan Horowitz
e00ca10283
LibJS: Convert ListFormat AOs to ThrowCompletionOr
2021-09-18 22:59:15 +03:00
Idan Horowitz
e65aeee67d
LibJS: Convert DisplayNames AOs to ThrowCompletionOr
2021-09-18 22:59:15 +03:00