mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Merge from vscode 313ede61cbad8f9dc748907b3384e059ddddb79a (#7436)
* Merge from vscode 313ede61cbad8f9dc748907b3384e059ddddb79a * fix strict null checks
This commit is contained in:
@@ -364,12 +364,16 @@ export class RPCProtocol extends Disposable implements IRPCProtocol {
|
||||
const pendingReply = this._pendingRPCReplies[callId];
|
||||
delete this._pendingRPCReplies[callId];
|
||||
|
||||
let err: Error | null = null;
|
||||
if (value && value.$isError) {
|
||||
err = new Error();
|
||||
err.name = value.name;
|
||||
err.message = value.message;
|
||||
err.stack = value.stack;
|
||||
let err: any = undefined;
|
||||
if (value) {
|
||||
if (value.$isError) {
|
||||
err = new Error();
|
||||
err.name = value.name;
|
||||
err.message = value.message;
|
||||
err.stack = value.stack;
|
||||
} else {
|
||||
err = value;
|
||||
}
|
||||
}
|
||||
pendingReply.resolveErr(err);
|
||||
}
|
||||
@@ -725,7 +729,7 @@ class MessageIO {
|
||||
}
|
||||
|
||||
public static serializeReplyErr(req: number, err: any): VSBuffer {
|
||||
if (err instanceof Error) {
|
||||
if (err) {
|
||||
return this._serializeReplyErrEror(req, err);
|
||||
}
|
||||
return this._serializeReplyErrEmpty(req);
|
||||
|
||||
@@ -187,4 +187,17 @@ suite('RPCProtocol', () => {
|
||||
done(null);
|
||||
});
|
||||
});
|
||||
|
||||
test('issue #72798: null errors are hard to digest', function (done) {
|
||||
delegate = (a1: number, a2: number) => {
|
||||
throw { 'what': 'what' };
|
||||
};
|
||||
bProxy.$m(4, 1).then((res) => {
|
||||
assert.fail('unexpected');
|
||||
done(null);
|
||||
}, (err) => {
|
||||
assert.equal(err.what, 'what');
|
||||
done(null);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user