prevent crash in locStart/locEnd when node location is undefined#864
prevent crash in locStart/locEnd when node location is undefined#864stonerl wants to merge 1 commit intoprettier:mainfrom
Conversation
Prettier's formatWithCursor can crash if a node is missing a valid `location` object. This patch adds null-safe checks and fallback handling in `locStart` and `locEnd` to avoid TypeErrors and ensure graceful degradation. Signed-off-by: Toni Förster <toni.foerster@icloud.com>
|
Can you give me a text XML file where this happens? I have not found an example. If there is a test you could add, that would be great. I don't want to be needlessly defensive here. |
|
@kddnewton no worries. It happens with this test file, with my Prettier extension for Nova. The error message I get can be found in the issue in the first comment: stonerl/nova-prettier-extension#41 (comment) |
|
It could also be me implementing |
|
I don't think you're doing it wrong, but is it possible you're using an earlier version of the plugin? I cannot get it to crash with the latest version. |
|
I'm using the I currently apply this patch when installing all npm packages, and it circumvents the error and allows formatting XML files. This could be something that happens only in combination with Nova. I don't mind if this patch won't go into upstream, I can keep it as part of my extension. |
|
I think I might know what's going on here. Nova is using Apple's JavaScript Core engine. I assume you're using node.js for testing? It could be that this is just a platform specific error. |
|
I don't think so, if I run this in bun or safari it passes. I would be shocked if this had anything to do with the runtime as it's a logic error. Are you 100% sure you're on the latest version? |
|
Pretty sure: |
|
Just an update. I ran into the same error while implementing |
|
I think I will leave this as part of your extension, because I cannot figure out how to reproduce this. |
Prettier's formatWithCursor can crash if a node is missing a valid
locationobject.This patch adds null-safe checks and fallback handling in
locStartandlocEndto avoid TypeErrors and ensure graceful degradation.