Commit Graph
33 Commits
Author SHA1 Message Date
Martok 0c7e7591b7 Issue #2173 - Separate CodeNode into FunctionNode and ModuleNode
ModuleNode only has a body and FunctionNode has many more attributes,
and will get more in the following commit.

Based-on: 1518391/2
2023-04-03 16:50:24 +02:00
Martok 88f7cba9c9 Issue #2173 - Add accessors to NameNode, CodeNode, RegExpLiteral, and add NumericLiteral
Based-on: m-c 1479659/{5,9,10}, m-c 1491147
2023-04-03 16:50:23 +02:00
Martok 6cea01f811 Issue #2173 - Add accessors to UnaryNode and subclasses
Based-on: m-c 1479659/4
2023-04-03 16:50:22 +02:00
Martok 0fdd23e0b4 Issue #2173 - Add accessors to BinaryNode and subclasses
Based-on: m-c 1479659/3
2023-04-03 16:50:22 +02:00
Martok cc14ee0148 Issue #2173 - Add accessors to ListNode
Based-on: m-c 1479659/{1,12}
2023-04-03 16:50:22 +02:00
Martok 3481496454 Issue #2173 - Fix exporting array and object binding patterns
Examples:
  export const [name1, name2] = [1, 2];
  export var {...name} = get;

Based-on: m-c 1446811, m-c 1462286
2023-04-03 15:33:21 +02:00
Moonchild 060e3eb0c8 Revert "Issue #1691 - Part 1: Provide a way of associating a private value with a script"
This reverts commit 15914ec578.
2020-11-28 10:18:10 +00:00
Moonchild 15914ec578 Issue #1691 - Part 1: Provide a way of associating a private value with a script
or module.

This is a prerequisite for dynamic import
2020-11-27 15:47:49 +00:00
Moonchild 0c3bd2b10a Issue #1656 - Part 7: Nuke vim config lines in JS 2020-09-24 07:23:04 +00:00
Gaming4JC 609815070b Issue #618 - Lazily initialise module binding maps - Debug follow up
The added debug assertion does not work due to missing API.
They were added in BZ 1337491, 1395366, and others, but were primarily used for multi-threading.
This uses our existing non-multithreaded syntax instead, resolving a `no member named` build error.
2020-08-03 14:37:41 -04:00
Moonchild e94f9dcced Issue #618 - Lazily initialise module binding maps
Make it so they are not allocated on a background thread in a different zone to
the final module.

Ref: BZ 1372258
2020-07-08 14:53:31 +00:00
Moonchild 6e72707e0b Issue #618 - Use a single slot for the module's environment object.
According to the spec this isn't created until the module is instantiated, but
we create it when we compile the module.
We stored this previously in InitialEnvironmentSlot and copied it to
EnvironmentSlot when it was supposed to be created, but we can just store it in
the latter slot straight away and check the module's status and return null if
it shouldn't exist yet.

This reduces the number of slots needed on a moduleObject to 17.

Re: BZ 1420412 Part 1
We can't implement the second part to further reduce our number of slots,
because it relies on SetProxyReservedSlot which in turn relies on
rearchitecturing JS proxies to make reserved slots dynamic. That's a rabbit hole
we really don't want to fall into.
So, we'll end up being a bit slower because it can't be in-line allocated with
having more than 16 slots, but so be it. I sincerely doubt it will make any
practical difference.
2020-07-08 14:12:57 +00:00
Moonchild 43e0632cd4 Issue #618 - Align error handling for module scripts with the spec (again)
This updates module implementation to match spec regarding handling of
instantiation errors, after it was changed yet again, this time to not remember
instantiation errors, but instead immediately rethrow applicable ones.

Ref: BZ 1420420
2020-07-08 12:58:30 +00:00
Moonchild e378530bca Issue #618 - Fix typo and remove old function declarations. 2020-07-07 12:27:02 +00:00
Moonchild 2dff89b658 Issue #618 - Report source position information (line/column)
Report source position information for module export resolution failures.

Ref: BZ 1362098
2020-07-04 23:12:13 +00:00
Moonchild 61a471ef17 Issue #618 - Align module instantiation/errors with the updated spec.
Store and re-throw module instantiation and evaluation errors.
Ref: BZ 1374239, 1394492
2020-07-03 13:56:49 +00:00
wolfbeast dd57b9273c Revert #1137 - Remove unboxed arrays
- accounting for removal of watch()/unwatch()
- updated for intermediate code changes.
2020-02-23 14:41:40 +01:00
wolfbeast 974a481d12 Merge branch 'master' into js-modules
# Conflicts:
#	modules/libpref/init/all.js
2019-11-10 11:39:27 +01:00
Gaming4JC 31c0c2f9cc 1320408 - Part 19: Remove JSContext* parameter from ModuleObject::fixEnvironmentsAfterCompartmentMerge. 2019-07-18 22:38:27 -04:00
Gaming4JC 3a5176f4b2 1320408 - Part 14: Change some GlobalObject methods to static method. 2019-07-18 22:38:25 -04:00
wolfbeast c2b5f396eb Remove UnboxedArray code part 1 2019-05-23 02:48:13 +00:00
janekptacijarabaci 8af513a207 Bug 1341411 - Support circular module dependencies through export* per ES2017 2018-04-14 09:00:53 +02:00
janekptacijarabaci c60cefb1b0 Bug 1339986 - Handle export* when checking for duplicate export 2018-04-14 08:59:22 +02:00
janekptacijarabaci 3bd16c9080 Bug 1341256 - Fix module namespace object get handler 2018-04-14 08:57:05 +02:00
janekptacijarabaci 05505d2e83 Bug 1340268 - [[HasProperty]] on module namespace object should work even when binding is uninitialized 2018-04-14 08:56:17 +02:00
janekptacijarabaci 6452e3c978 Bug 1326453 - Part 4: Return @@toStringTag in [[OwnPropertyKeys]] trap for module namespace objects 2018-04-14 08:52:37 +02:00
janekptacijarabaci e2719e1dbf Bug 1326453 - Part 3: Don't throw a TypeError when SetPrototypeOf for module namespace objects is called with null 2018-04-14 08:51:05 +02:00
janekptacijarabaci a7f7a22319 Bug 1326453 - Part 2: Change @@toStringTag for module namespace objects to non-configurable 2018-04-14 08:50:17 +02:00
janekptacijarabaci b2ec36808a Bug 1326453 - Part 1: Remove @@iterator method from module namespace objects per ES2017 2018-04-14 08:49:15 +02:00
janekptacijarabaci 87e4f43be0 Bug 1320993 - Fix exporting default class expression 2018-04-14 08:40:37 +02:00
trav90 0433d6e7d1 Fix incorrect assertions in js/src/builtin/
Prevents GCC 7 build warning spam.
2018-04-06 13:29:27 -05:00
janekptacijarabaci 5ef44cf648 Part 1: Implement ES6 function name property semantics
Issue #78
2018-03-19 15:47:10 +01:00
Matt A. Tobin 5f8de423f1 Add m-esr52 at 52.6.0 2018-02-02 04:16:08 -05:00