Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evade override mistake #6991

Closed
wants to merge 1 commit into from
Closed

Evade override mistake #6991

wants to merge 1 commit into from

Conversation

erights
Copy link

@erights erights commented Jun 11, 2022

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
Copy link
Author

erights commented Jul 20, 2022

Any progress on this?

@benlesh
Copy link
Member

benlesh commented Jul 20, 2022

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

@benlesh
Copy link
Member

benlesh commented Jul 20, 2022

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
Copy link
Member

benlesh commented Mar 7, 2023

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.

None yet

2 participants