Я нашел loop-protect .Установите Babel в автономном режиме и защитите цикл с помощью npm:
npm i @babel/standalone loop-protect
Затем добавьте код JavaScript:
import Babel from '@babel/standalone';
import protect from 'loop-protect';
const timeout = 100;
Babel.registerPlugin('loopProtection', protect(timeout));
const transform = source => Babel.transform(source, {
plugins: ['loopProtection'],
}).code;
transform('while (1) doSomething()')
возвращает строку:
var _LP = Date.now();
while (1) {
if (Date.now() - _LP > 100) break;
doSomething();
}