Skip to content

Commit

Permalink
Reduce recursion when disposing sync resources
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Jun 16, 2023
1 parent 5f74b51 commit 9d41888
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 19 deletions.
2 changes: 1 addition & 1 deletion packages/babel-helpers/src/helpers-generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export default Object.freeze({
),
dispose: helper(
"7.22.0",
'function dispose_SuppressedError(suppressed,error){return"undefined"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(suppressed,error){this.suppressed=suppressed,this.error=error,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(suppressed,error)}export default function _dispose(stack,error,hasError){function next(){if(0!==stack.length){var r=stack.pop();if(r.a)return Promise.resolve(r.d.call(r.v)).then(next,err);try{r.d.call(r.v)}catch(e){return err(e)}return next()}if(hasError)throw error}function err(e){return error=hasError?new dispose_SuppressedError(e,error):e,hasError=!0,next()}return next()}',
'function dispose_SuppressedError(suppressed,error){return"undefined"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(suppressed,error){this.suppressed=suppressed,this.error=error,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(suppressed,error)}export default function _dispose(stack,error,hasError){function next(){for(;stack.length>0;){var r=stack.pop();if(r.a)return Promise.resolve(r.d.call(r.v)).then(next,err);try{r.d.call(r.v)}catch(e){return err(e)}}if(hasError)throw error}function err(e){return error=hasError?new dispose_SuppressedError(e,error):e,hasError=!0,next()}return next()}',
),
iterableToArrayLimit: helper(
"7.0.0-beta.0",
Expand Down
25 changes: 11 additions & 14 deletions packages/babel-helpers/src/helpers/dispose.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,18 @@ function dispose_SuppressedError(suppressed, error) {

export default function _dispose(stack, error, hasError) {
function next() {
if (stack.length === 0) {
if (hasError) throw error;
return;
while (stack.length > 0) {
var r = stack.pop();
if (r.a) {
return Promise.resolve(r.d.call(r.v)).then(next, err);
}
try {
r.d.call(r.v);
} catch (e) {
return err(e);
}
}

var r = stack.pop();
if (r.a) {
return Promise.resolve(r.d.call(r.v)).then(next, err);
}
try {
r.d.call(r.v);
} catch (e) {
return err(e);
}
return next();
if (hasError) throw error;
}

function err(e) {
Expand Down
3 changes: 1 addition & 2 deletions packages/babel-runtime-corejs3/helpers/dispose.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,14 @@ function dispose_SuppressedError(suppressed, error) {
}
function _dispose(stack, error, hasError) {
function next() {
if (0 !== stack.length) {
for (; stack.length > 0;) {
var r = stack.pop();
if (r.a) return _Promise.resolve(r.d.call(r.v)).then(next, err);
try {
r.d.call(r.v);
} catch (e) {
return err(e);
}
return next();
}
if (hasError) throw error;
}
Expand Down
3 changes: 1 addition & 2 deletions packages/babel-runtime/helpers/dispose.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@ function dispose_SuppressedError(suppressed, error) {
}
function _dispose(stack, error, hasError) {
function next() {
if (0 !== stack.length) {
for (; stack.length > 0;) {
var r = stack.pop();
if (r.a) return Promise.resolve(r.d.call(r.v)).then(next, err);
try {
r.d.call(r.v);
} catch (e) {
return err(e);
}
return next();
}
if (hasError) throw error;
}
Expand Down

0 comments on commit 9d41888

Please sign in to comment.