Skip to content

Evade override mistake#6991

Closed
erights wants to merge 1 commit into
ReactiveX:masterfrom
erights:patch-1
Closed

Evade override mistake#6991
erights wants to merge 1 commit into
ReactiveX:masterfrom
erights:patch-1

Conversation

@erights

@erights erights commented Jun 11, 2022

Copy link
Copy Markdown

See https://github.com/Agoric/agoric-sdk/blob/master/patches/inquirer%2B%2Brxjs%2B7.5.5.patch

The original code used assignment to override the constructor property inherited from Error.prototype. However, if Error.prototype is frozen, as it is under Hardened JS (aka SES) or under the Node frozen intrinsics flag, then this assignment fails due to the JavaScript "override mistake".

enumerable: true would accurately preserve the behavior of the original assignment, but I'm guessing that was not intentional. For an actual error subclass, this property would not be enumerable, so my PR currently proposes that. But either would work, so let me know if you'd like me to change it.

Description:

BREAKING CHANGE:

Related issue (if exists):
endojs/endo#576
Agoric/agoric-sdk#5569

See https://github.com/Agoric/agoric-sdk/blob/master/patches/inquirer%2B%2Brxjs%2B7.5.5.patch

The original code used assignment to override the `constructor` property inherited from `Error.prototype`. However, if `Error.prototype` is frozen, as it is under Hardened JS (aka SES) or under the Node frozen intrinsics flag, then this assignment fails due to the JavaScript "override mistake".

`enumerable: true` would accurately preserve the behavior of the original assignment, but I'm guessing that was not intentional. For an actual error subclass, this property would not be enumerable, so my PR currently proposes that. But either would work, so let me know if you'd like me to change it.
@erights erights marked this pull request as draft July 20, 2022 04:07
@erights erights marked this pull request as ready for review July 20, 2022 04:07
@erights

erights commented Jul 20, 2022

Copy link
Copy Markdown
Author

Any progress on this?

@benlesh

benlesh commented Jul 20, 2022

Copy link
Copy Markdown
Member

I’m inclined to approve this, on the face of it. However is it possible to add a test for this?

@benlesh

benlesh commented Jul 20, 2022

Copy link
Copy Markdown
Member

Sorry, to clarify: we have plans to change the definition of these classes in upcoming versions, and I want to make sure we don't break anything.

@benlesh

benlesh commented Mar 7, 2023

Copy link
Copy Markdown
Member

Inactive PR... no response and no tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants