Fix node6 support for Object.entries and URL object (#548)

This patch introduces a polyfill for Object.entries which is missing in Node 6
This commit is contained in:
JoelEinbinder
2017-08-25 15:13:59 -07:00
committed by Andrey Lushnikov
parent 4e3b6a1f57
commit 2c4dfbfd88
5 changed files with 18 additions and 7 deletions

View File

@@ -53,7 +53,7 @@ const asyncToGenerator = fn => {
function transformAsyncFunctions(text) {
const edits = [];
const ast = esprima.parseScript(text, {range: true});
const ast = esprima.parseScript(text, {range: true, tolerant: true});
const walker = new ESTreeWalker(node => {
if (node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'ArrowFunctionExpression')
onFunction(node);

View File

@@ -64,4 +64,10 @@ describe('TransformAsyncFunctions', function() {
expect(output instanceof Promise).toBe(true);
output.then(result => expect(result).toBe(123)).then(done);
});
it('should work with double await', function(done) {
const input = `async function f(){ return 23 + await Promise.resolve(50 + await Promise.resolve(50)); } f();`;
const output = eval(transformAsyncFunctions(input));
expect(output instanceof Promise).toBe(true);
output.then(result => expect(result).toBe(123)).then(done);
});
});