Skip to content

Commit 983d81b

Browse files
authored
'await using' normative changes (#258)
1 parent 54cd71c commit 983d81b

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

tslib.es6.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -296,22 +296,25 @@ export function __classPrivateFieldIn(state, receiver) {
296296
export function __addDisposableResource(env, value, async) {
297297
if (value !== null && value !== void 0) {
298298
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
299-
var dispose;
299+
var dispose, inner;
300300
if (async) {
301301
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
302302
dispose = value[Symbol.asyncDispose];
303303
}
304304
if (dispose === void 0) {
305305
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
306306
dispose = value[Symbol.dispose];
307+
if (async) inner = dispose;
307308
}
308309
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
310+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
309311
env.stack.push({ value: value, dispose: dispose, async: async });
310312
}
311313
else if (async) {
312314
env.stack.push({ async: true });
313315
}
314316
return value;
317+
315318
}
316319

317320
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {

tslib.es6.mjs

+7-5
Original file line numberDiff line numberDiff line change
@@ -296,16 +296,18 @@ export function __classPrivateFieldIn(state, receiver) {
296296
export function __addDisposableResource(env, value, async) {
297297
if (value !== null && value !== void 0) {
298298
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
299-
var dispose;
299+
var dispose, inner;
300300
if (async) {
301-
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
302-
dispose = value[Symbol.asyncDispose];
301+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
302+
dispose = value[Symbol.asyncDispose];
303303
}
304304
if (dispose === void 0) {
305-
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
306-
dispose = value[Symbol.dispose];
305+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
306+
dispose = value[Symbol.dispose];
307+
if (async) inner = dispose;
307308
}
308309
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
310+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
309311
env.stack.push({ value: value, dispose: dispose, async: async });
310312
}
311313
else if (async) {

tslib.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -344,16 +344,18 @@ var __disposeResources;
344344
__addDisposableResource = function (env, value, async) {
345345
if (value !== null && value !== void 0) {
346346
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
347-
var dispose;
347+
var dispose, inner;
348348
if (async) {
349349
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
350350
dispose = value[Symbol.asyncDispose];
351351
}
352352
if (dispose === void 0) {
353353
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
354354
dispose = value[Symbol.dispose];
355+
if (async) inner = dispose;
355356
}
356357
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
358+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
357359
env.stack.push({ value: value, dispose: dispose, async: async });
358360
}
359361
else if (async) {

0 commit comments

Comments
 (0)