-
Notifications
You must be signed in to change notification settings - Fork 14
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
Modifying a stack descriptor may break descriptor pre-requisites. #6
Comments
Hi @Qix- I'm having this exact error 100% of times when using Do you know any workaround for this? |
Yes and no. The fix seemed easy enough, but alas it wasn't. I have to investigate a bit further but node 7 broke a bunch of stuff. :| |
https://github.com/Qix-/node-error-ex/pull/7 seems to fix this issue for me, using node 7.6. @Qix- could you publish master to npm? Or is there another issue I am missing? |
@roberttod There was a problem with the fix, or something else was happening. Let me take a look. |
Alright, a build is underway. When it clears, I'll publish and write up a post-mortem. It might even result in a bug report over at Node... Not sure how strict the ES specification is (I'm not super familiar with the ES6 specification). tl;dr Node 7 started caching messages in stacks rather than building them dynamically. Also, it appears they use ES6 classes internally for |
Published as Postmortem to follow (not required reading). Post-MortemSo I'm not entirely sure what happened, or what caused this from Node v6 to Node v7. I just know something happened in their definition of I can only guess that they did the equivalent of replacing @boehm-s's PR (#7) fixed only a part of the problem, but the overall issue was a bit deeper. Their PR was green because the .travis.yml in this repository had an outdated list of node versions to test against, which is my fault. This has been remedied with adding Alright so my theory as to what happened: historically, accessing Still following? Yeah, it gets a bit hairy. Needless to say this was a confusing bug. In Node v7, I speculate that they switched out the implementation for a newer ES6 implementation that no longer dynamically builds up This would explain why first there were descriptor issues, why inheritance broke (since For the inquisitive, here is the subtle documentation regarding the change in semantics for inheritance using
That was stupid annoying to fix - not because it was difficult but because nothing made any sense. That's what you get for writing a module that is essentially a hack ;) Hopefully everything should be back to normal without updating any package.json files. Let me know if this doesn't fix it! I'll be closely monitoring this repository to make sure the bugfix didn't actually break anyone (as everything should be backwards compatible). Please open a ticket if you see something break as a result of the // cc @sindresorhus @indutny (maybe you have some insight about this) @FrancescoCioria @dominicbarnes @roberttod @typicode |
@Qix- clearly then there was an issue I missed! Thanks for resolving this and for the incredibly detailed post mortem. |
As noted in sindresorhus/parse-json#6, if the
stack
element descriptor already has avalue
then adding aget()
to it will cause it to fail:The text was updated successfully, but these errors were encountered: