Skip to content

Commit c2a85cb

Browse files
committed
Don’t re-wrap prepareStackTrace when assigned to itself
1 parent c9c3321 commit c2a85cb

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/vs/workbench/api/common/extensionHostMain.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,26 @@ abstract class ErrorHandler {
8585
return `${error.name || 'Error'}: ${error.message || ''}${stackTraceMessage}`;
8686
}
8787

88+
let _wasWrapped = Symbol('prepareStackTrace wrapped');
8889
let _prepareStackTrace = prepareStackTraceAndFindExtension;
90+
Object.assign(_prepareStackTrace, { [_wasWrapped]: true });
8991
Object.defineProperty(Error, 'prepareStackTrace', {
9092
configurable: false,
9193
get() {
9294
return _prepareStackTrace;
9395
},
9496
set(v) {
97+
if (v && (v as any)[_wasWrapped]) {
98+
_prepareStackTrace = v;
99+
return
100+
}
101+
95102
_prepareStackTrace = function (error, stackTrace) {
96103
prepareStackTraceAndFindExtension(error, stackTrace);
97104
return v.call(Error, error, stackTrace);
98105
};
106+
107+
Object.assign(_prepareStackTrace, { [_wasWrapped]: true });
99108
},
100109
});
101110

0 commit comments

Comments
 (0)