vscode-js-debug icon indicating copy to clipboard operation
vscode-js-debug copied to clipboard

Support pretty printing minified ES modules

Open gmahomarf opened this issue 3 years ago • 0 comments

Is your feature request related to a problem? Please describe. When debugging minified ES modules, attempting to pretty print results in the following error:

Error: Error processing prettyPrintSource: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'
Full stack trace

[2022-08-15 13:31:26.880] [renderer3] [error] [Extension Host] SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
	at q.ce.raise (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:123750)
	at q.z.parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:74745)
	at q.z.parseTopLevel (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:72115)
	at q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:67920)
	at Function.q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:69182)
	at t.prettyPrintAsSourceMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1055055)
	at I.prettyPrint (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:904247)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async F._prettyPrintSource (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:844969)
	at async t.default._onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1077748)
[2022-08-15 13:31:26.887] [renderer3] [error] Error processing prettyPrintSource: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
	at q.ce.raise (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:123750)
	at q.z.parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:74745)
	at q.z.parseTopLevel (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:72115)
	at q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:67920)
	at Function.q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:69182)
	at t.prettyPrintAsSourceMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1055055)
	at I.prettyPrint (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:904247)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async F._prettyPrintSource (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:844969)
	at async t.default._onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1077748): Error: Error processing prettyPrintSource: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
	at q.ce.raise (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:123750)
	at q.z.parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:74745)
	at q.z.parseTopLevel (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:72115)
	at q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:67920)
	at Function.q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:69182)
	at t.prettyPrintAsSourceMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1055055)
	at I.prettyPrint (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:904247)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async F._prettyPrintSource (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:844969)
	at async t.default._onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1077748)
    at l.handleErrorResponse (vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1049:47508)
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1049:46947

AFAICT, this error is coming from the acorn parser, specifically when calling it here. It's clear, based on the acorn docs, that the problem is the missing sourceType: 'module' option. I don't know what the repercussions of setting said option by default would be, but maybe it can be toggled by a new configuration option

Describe the feature you'd like I would like the Pretty Print feature to support pretty printing ES modules, either by default, or enabled by a new config option

gmahomarf avatar Aug 15 '22 12:08 gmahomarf