Initial commit
This commit is contained in:
21
node_modules/acorn-es7-plugin/LICENSE
generated
vendored
Normal file
21
node_modules/acorn-es7-plugin/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015,2016 Matt Woolf (MatAtBread, MatAtWork)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
17
node_modules/acorn-es7-plugin/acorn-es7-plugin.js
generated
vendored
Normal file
17
node_modules/acorn-es7-plugin/acorn-es7-plugin.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
module.exports = function(acorn) {
|
||||
switch (parseInt(acorn.version)) {
|
||||
case 2:
|
||||
case 3:
|
||||
acorn.plugins.asyncawait = require('./acorn-v3') ;
|
||||
break ;
|
||||
case 4:
|
||||
acorn.plugins.asyncawait = require('./acorn-v4') ;
|
||||
break ;
|
||||
case 5:
|
||||
acorn.plugins.asyncawait = require('./acorn-v4') ;
|
||||
break ;
|
||||
default:
|
||||
throw new Error("acorn-es7-plugin requires Acorn v2, 3, 4 or 5") ;
|
||||
}
|
||||
return acorn
|
||||
}
|
||||
333
node_modules/acorn-es7-plugin/acorn-v3.js
generated
vendored
Normal file
333
node_modules/acorn-es7-plugin/acorn-v3.js
generated
vendored
Normal file
@@ -0,0 +1,333 @@
|
||||
var NotAsync = {} ;
|
||||
var asyncExit = /^async[\t ]+(return|throw)/ ;
|
||||
var asyncFunction = /^async[\t ]+function/ ;
|
||||
var atomOrPropertyOrLabel = /^\s*[():;]/ ;
|
||||
var removeComments = /([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g ;
|
||||
var matchAsyncGet = /\s*(get|set)\s*\(/ ;
|
||||
|
||||
function hasLineTerminatorBeforeNext(st, since) {
|
||||
return st.lineStart >= since;
|
||||
}
|
||||
|
||||
function test(regex,st,noComment) {
|
||||
var src = st.input.slice(st.start) ;
|
||||
if (noComment) {
|
||||
src = src.replace(removeComments,"$1 $3") ;
|
||||
}
|
||||
return regex.test(src);
|
||||
}
|
||||
|
||||
/* Create a new parser derived from the specified parser, so that in the
|
||||
* event of an error we can back out and try again */
|
||||
function subParse(parser, pos, extensions,parens) {
|
||||
var p = new parser.constructor(parser.options, parser.input, pos);
|
||||
if (extensions)
|
||||
for (var k in extensions)
|
||||
p[k] = extensions[k] ;
|
||||
|
||||
var src = parser ;
|
||||
var dest = p ;
|
||||
['inFunction','inAsyncFunction','inAsync','inGenerator','inModule'].forEach(function(k){
|
||||
if (k in src)
|
||||
dest[k] = src[k] ;
|
||||
}) ;
|
||||
if (parens)
|
||||
p.options.preserveParens = true ;
|
||||
p.nextToken();
|
||||
return p;
|
||||
}
|
||||
|
||||
//TODO: Implement option noAsyncGetters
|
||||
|
||||
function asyncAwaitPlugin (parser,options){
|
||||
var es7check = function(){} ;
|
||||
|
||||
parser.extend("initialContext",function(base){
|
||||
return function(){
|
||||
if (this.options.ecmaVersion < 7) {
|
||||
es7check = function(node) {
|
||||
parser.raise(node.start,"async/await keywords only available when ecmaVersion>=7") ;
|
||||
} ;
|
||||
}
|
||||
this.reservedWords = new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")) ;
|
||||
this.reservedWordsStrict = new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")) ;
|
||||
this.reservedWordsStrictBind = new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")) ;
|
||||
this.inAsyncFunction = options.inAsyncFunction ;
|
||||
if (options.awaitAnywhere && options.inAsyncFunction)
|
||||
parser.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive") ;
|
||||
|
||||
return base.apply(this,arguments);
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("shouldParseExportStatement",function(base){
|
||||
return function(){
|
||||
if (this.type.label==='name' && this.value==='async' && test(asyncFunction,this)) {
|
||||
return true ;
|
||||
}
|
||||
return base.apply(this,arguments) ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseStatement",function(base){
|
||||
return function (declaration, topLevel) {
|
||||
var start = this.start;
|
||||
var startLoc = this.startLoc;
|
||||
if (this.type.label==='name') {
|
||||
if (test(asyncFunction,this,true)) {
|
||||
var wasAsync = this.inAsyncFunction ;
|
||||
try {
|
||||
this.inAsyncFunction = true ;
|
||||
this.next() ;
|
||||
var r = this.parseStatement(declaration, topLevel) ;
|
||||
r.async = true ;
|
||||
r.start = start;
|
||||
r.loc && (r.loc.start = startLoc);
|
||||
r.range && (r.range[0] = start);
|
||||
return r ;
|
||||
} finally {
|
||||
this.inAsyncFunction = wasAsync ;
|
||||
}
|
||||
} else if ((typeof options==="object" && options.asyncExits) && test(asyncExit,this)) {
|
||||
// NON-STANDARD EXTENSION iff. options.asyncExits is set, the
|
||||
// extensions 'async return <expr>?' and 'async throw <expr>?'
|
||||
// are enabled. In each case they are the standard ESTree nodes
|
||||
// with the flag 'async:true'
|
||||
this.next() ;
|
||||
var r = this.parseStatement(declaration, topLevel) ;
|
||||
r.async = true ;
|
||||
r.start = start;
|
||||
r.loc && (r.loc.start = startLoc);
|
||||
r.range && (r.range[0] = start);
|
||||
return r ;
|
||||
}
|
||||
}
|
||||
return base.apply(this,arguments);
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseIdent",function(base){
|
||||
return function(liberal){
|
||||
var id = base.apply(this,arguments);
|
||||
if (this.inAsyncFunction && id.name==='await') {
|
||||
if (arguments.length===0) {
|
||||
this.raise(id.start,"'await' is reserved within async functions") ;
|
||||
}
|
||||
}
|
||||
return id ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseExprAtom",function(base){
|
||||
return function(refShorthandDefaultPos){
|
||||
var start = this.start ;
|
||||
var startLoc = this.startLoc;
|
||||
var rhs,r = base.apply(this,arguments);
|
||||
if (r.type==='Identifier') {
|
||||
if (r.name==='async' && !hasLineTerminatorBeforeNext(this, r.end)) {
|
||||
// Is this really an async function?
|
||||
var isAsync = this.inAsyncFunction ;
|
||||
try {
|
||||
this.inAsyncFunction = true ;
|
||||
var pp = this ;
|
||||
var inBody = false ;
|
||||
|
||||
var parseHooks = {
|
||||
parseFunctionBody:function(node,isArrowFunction){
|
||||
try {
|
||||
var wasInBody = inBody ;
|
||||
inBody = true ;
|
||||
return pp.parseFunctionBody.apply(this,arguments) ;
|
||||
} finally {
|
||||
inBody = wasInBody ;
|
||||
}
|
||||
},
|
||||
raise:function(){
|
||||
try {
|
||||
return pp.raise.apply(this,arguments) ;
|
||||
} catch(ex) {
|
||||
throw inBody?ex:NotAsync ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
rhs = subParse(this,this.start,parseHooks,true).parseExpression() ;
|
||||
if (rhs.type==='SequenceExpression')
|
||||
rhs = rhs.expressions[0] ;
|
||||
if (rhs.type === 'CallExpression')
|
||||
rhs = rhs.callee ;
|
||||
if (rhs.type==='FunctionExpression' || rhs.type==='FunctionDeclaration' || rhs.type==='ArrowFunctionExpression') {
|
||||
// Because we don't know if the top level parser supprts preserveParens, we have to re-parse
|
||||
// without it set
|
||||
rhs = subParse(this,this.start,parseHooks).parseExpression() ;
|
||||
if (rhs.type==='SequenceExpression')
|
||||
rhs = rhs.expressions[0] ;
|
||||
if (rhs.type === 'CallExpression')
|
||||
rhs = rhs.callee ;
|
||||
|
||||
rhs.async = true ;
|
||||
rhs.start = start;
|
||||
rhs.loc && (rhs.loc.start = startLoc);
|
||||
rhs.range && (rhs.range[0] = start);
|
||||
this.pos = rhs.end;
|
||||
this.end = rhs.end ;
|
||||
this.endLoc = rhs.endLoc ;
|
||||
this.next();
|
||||
es7check(rhs) ;
|
||||
return rhs ;
|
||||
}
|
||||
} catch (ex) {
|
||||
if (ex!==NotAsync)
|
||||
throw ex ;
|
||||
}
|
||||
finally {
|
||||
this.inAsyncFunction = isAsync ;
|
||||
}
|
||||
}
|
||||
else if (r.name==='await') {
|
||||
var n = this.startNodeAt(r.start, r.loc && r.loc.start);
|
||||
if (this.inAsyncFunction) {
|
||||
rhs = this.parseExprSubscripts() ;
|
||||
n.operator = 'await' ;
|
||||
n.argument = rhs ;
|
||||
n = this.finishNodeAt(n,'AwaitExpression', rhs.end, rhs.loc && rhs.loc.end) ;
|
||||
es7check(n) ;
|
||||
return n ;
|
||||
}
|
||||
// NON-STANDARD EXTENSION iff. options.awaitAnywhere is true,
|
||||
// an 'AwaitExpression' is allowed anywhere the token 'await'
|
||||
// could not be an identifier with the name 'await'.
|
||||
|
||||
// Look-ahead to see if this is really a property or label called async or await
|
||||
if (this.input.slice(r.end).match(atomOrPropertyOrLabel)) {
|
||||
if (!options.awaitAnywhere && this.options.sourceType === 'module')
|
||||
return this.raise(r.start,"'await' is reserved within modules") ;
|
||||
return r ; // This is a valid property name or label
|
||||
}
|
||||
|
||||
if (typeof options==="object" && options.awaitAnywhere) {
|
||||
start = this.start ;
|
||||
rhs = subParse(this,start-4).parseExprSubscripts() ;
|
||||
if (rhs.end<=start) {
|
||||
rhs = subParse(this,start).parseExprSubscripts() ;
|
||||
n.operator = 'await' ;
|
||||
n.argument = rhs ;
|
||||
n = this.finishNodeAt(n,'AwaitExpression', rhs.end, rhs.loc && rhs.loc.end) ;
|
||||
this.pos = rhs.end;
|
||||
this.end = rhs.end ;
|
||||
this.endLoc = rhs.endLoc ;
|
||||
this.next();
|
||||
es7check(n) ;
|
||||
return n ;
|
||||
}
|
||||
}
|
||||
|
||||
if (!options.awaitAnywhere && this.options.sourceType === 'module')
|
||||
return this.raise(r.start,"'await' is reserved within modules") ;
|
||||
}
|
||||
}
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend('finishNodeAt',function(base){
|
||||
return function(node,type,pos,loc) {
|
||||
if (node.__asyncValue) {
|
||||
delete node.__asyncValue ;
|
||||
node.value.async = true ;
|
||||
}
|
||||
return base.apply(this,arguments) ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend('finishNode',function(base){
|
||||
return function(node,type) {
|
||||
if (node.__asyncValue) {
|
||||
delete node.__asyncValue ;
|
||||
node.value.async = true ;
|
||||
}
|
||||
return base.apply(this,arguments) ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
var allowedPropSpecifiers = {
|
||||
get:true,
|
||||
set:true,
|
||||
async:true
|
||||
};
|
||||
|
||||
parser.extend("parsePropertyName",function(base){
|
||||
return function (prop) {
|
||||
var prevName = prop.key && prop.key.name ;
|
||||
var key = base.apply(this,arguments) ;
|
||||
if (key.type === "Identifier" && (key.name === "async") && !hasLineTerminatorBeforeNext(this, key.end)) {
|
||||
// Look-ahead to see if this is really a property or label called async or await
|
||||
if (!this.input.slice(key.end).match(atomOrPropertyOrLabel)){
|
||||
// Cheese - eliminate the cases 'async get(){}' and async set(){}'
|
||||
if (matchAsyncGet.test(this.input.slice(key.end))) {
|
||||
key = base.apply(this,arguments) ;
|
||||
prop.__asyncValue = true ;
|
||||
} else {
|
||||
es7check(prop) ;
|
||||
if (prop.kind === 'set')
|
||||
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
|
||||
|
||||
key = base.apply(this,arguments) ;
|
||||
if (key.type==='Identifier') {
|
||||
if (key.name==='set')
|
||||
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
|
||||
}
|
||||
prop.__asyncValue = true ;
|
||||
}
|
||||
}
|
||||
}
|
||||
return key;
|
||||
};
|
||||
}) ;
|
||||
|
||||
parser.extend("parseClassMethod",function(base){
|
||||
return function (classBody, method, isGenerator) {
|
||||
var wasAsync ;
|
||||
if (method.__asyncValue) {
|
||||
if (method.kind==='constructor')
|
||||
this.raise(method.start,"class constructor() cannot be be async") ;
|
||||
wasAsync = this.inAsyncFunction ;
|
||||
this.inAsyncFunction = true ;
|
||||
}
|
||||
var r = base.apply(this,arguments) ;
|
||||
this.inAsyncFunction = wasAsync ;
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseMethod",function(base){
|
||||
return function (isGenerator) {
|
||||
var wasAsync ;
|
||||
if (this.__currentProperty && this.__currentProperty.__asyncValue) {
|
||||
wasAsync = this.inAsyncFunction ;
|
||||
this.inAsyncFunction = true ;
|
||||
}
|
||||
var r = base.apply(this,arguments) ;
|
||||
this.inAsyncFunction = wasAsync ;
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parsePropertyValue",function(base){
|
||||
return function (prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors) {
|
||||
var prevProp = this.__currentProperty ;
|
||||
this.__currentProperty = prop ;
|
||||
var wasAsync ;
|
||||
if (prop.__asyncValue) {
|
||||
wasAsync = this.inAsyncFunction ;
|
||||
this.inAsyncFunction = true ;
|
||||
}
|
||||
var r = base.apply(this,arguments) ;
|
||||
this.inAsyncFunction = wasAsync ;
|
||||
this.__currentProperty = prevProp ;
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
}
|
||||
|
||||
module.exports = asyncAwaitPlugin ;
|
||||
194
node_modules/acorn-es7-plugin/acorn-v4.js
generated
vendored
Normal file
194
node_modules/acorn-es7-plugin/acorn-v4.js
generated
vendored
Normal file
@@ -0,0 +1,194 @@
|
||||
var asyncExit = /^async[\t ]+(return|throw)/ ;
|
||||
var atomOrPropertyOrLabel = /^\s*[):;]/ ;
|
||||
var removeComments = /([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g ;
|
||||
|
||||
function hasLineTerminatorBeforeNext(st, since) {
|
||||
return st.lineStart >= since;
|
||||
}
|
||||
|
||||
function test(regex,st,noComment) {
|
||||
var src = st.input.slice(st.start) ;
|
||||
if (noComment) {
|
||||
src = src.replace(removeComments,"$1 $3") ;
|
||||
}
|
||||
return regex.test(src);
|
||||
}
|
||||
|
||||
/* Create a new parser derived from the specified parser, so that in the
|
||||
* event of an error we can back out and try again */
|
||||
function subParse(parser, pos, extensions) {
|
||||
var p = new parser.constructor(parser.options, parser.input, pos);
|
||||
if (extensions)
|
||||
for (var k in extensions)
|
||||
p[k] = extensions[k] ;
|
||||
|
||||
var src = parser ;
|
||||
var dest = p ;
|
||||
['inFunction','inAsync','inGenerator','inModule'].forEach(function(k){
|
||||
if (k in src)
|
||||
dest[k] = src[k] ;
|
||||
}) ;
|
||||
p.nextToken();
|
||||
return p;
|
||||
}
|
||||
|
||||
function asyncAwaitPlugin (parser,options){
|
||||
if (!options || typeof options !== "object")
|
||||
options = {} ;
|
||||
|
||||
parser.extend("parse",function(base){
|
||||
return function(){
|
||||
this.inAsync = options.inAsyncFunction ;
|
||||
if (options.awaitAnywhere && options.inAsyncFunction)
|
||||
parser.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive") ;
|
||||
|
||||
return base.apply(this,arguments);
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseStatement",function(base){
|
||||
return function (declaration, topLevel) {
|
||||
var start = this.start;
|
||||
var startLoc = this.startLoc;
|
||||
if (this.type.label==='name') {
|
||||
if ((options.asyncExits) && test(asyncExit,this)) {
|
||||
// TODO: Ensure this function is itself nested in an async function or Method
|
||||
this.next() ;
|
||||
|
||||
var r = this.parseStatement(declaration, topLevel) ;
|
||||
r.async = true ;
|
||||
r.start = start;
|
||||
r.loc && (r.loc.start = startLoc);
|
||||
r.range && (r.range[0] = start);
|
||||
return r ;
|
||||
}
|
||||
}
|
||||
return base.apply(this,arguments);
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseIdent",function(base){
|
||||
return function(liberal) {
|
||||
if (this.options.sourceType==='module' && this.options.ecmaVersion >= 8 && options.awaitAnywhere)
|
||||
return base.call(this,true) ; // Force liberal mode if awaitAnywhere is set
|
||||
return base.apply(this,arguments) ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
parser.extend("parseExprAtom",function(base){
|
||||
var NotAsync = {};
|
||||
return function(refShorthandDefaultPos){
|
||||
var start = this.start ;
|
||||
var startLoc = this.startLoc;
|
||||
|
||||
var rhs,r = base.apply(this,arguments);
|
||||
|
||||
if (r.type==='Identifier') {
|
||||
if (r.name==='await' && !this.inAsync) {
|
||||
if (options.awaitAnywhere) {
|
||||
var n = this.startNodeAt(r.start, r.loc && r.loc.start);
|
||||
|
||||
start = this.start ;
|
||||
|
||||
var parseHooks = {
|
||||
raise:function(){
|
||||
try {
|
||||
return pp.raise.apply(this,arguments) ;
|
||||
} catch(ex) {
|
||||
throw /*inBody?ex:*/NotAsync ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
try {
|
||||
rhs = subParse(this,start-4,parseHooks).parseExprSubscripts() ;
|
||||
if (rhs.end<=start) {
|
||||
rhs = subParse(this,start,parseHooks).parseExprSubscripts() ;
|
||||
n.argument = rhs ;
|
||||
n = this.finishNodeAt(n,'AwaitExpression', rhs.end, rhs.loc && rhs.loc.end) ;
|
||||
this.pos = rhs.end;
|
||||
this.end = rhs.end ;
|
||||
this.endLoc = rhs.endLoc ;
|
||||
this.next();
|
||||
return n ;
|
||||
}
|
||||
} catch (ex) {
|
||||
if (ex===NotAsync)
|
||||
return r ;
|
||||
throw ex ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
var allowedPropValues = {
|
||||
undefined:true,
|
||||
get:true,
|
||||
set:true,
|
||||
static:true,
|
||||
async:true,
|
||||
constructor:true
|
||||
};
|
||||
parser.extend("parsePropertyName",function(base){
|
||||
return function (prop) {
|
||||
var prevName = prop.key && prop.key.name ;
|
||||
var key = base.apply(this,arguments) ;
|
||||
if (this.value==='get') {
|
||||
prop.__maybeStaticAsyncGetter = true ;
|
||||
}
|
||||
var next ;
|
||||
if (allowedPropValues[this.value])
|
||||
return key ;
|
||||
|
||||
if (key.type === "Identifier" && (key.name === "async" || prevName === "async") && !hasLineTerminatorBeforeNext(this, key.end)
|
||||
// Look-ahead to see if this is really a property or label called async or await
|
||||
&& !this.input.slice(key.end).match(atomOrPropertyOrLabel)) {
|
||||
if (prop.kind === 'set' || key.name === 'set')
|
||||
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
|
||||
else {
|
||||
this.__isAsyncProp = true ;
|
||||
key = base.apply(this,arguments) ;
|
||||
if (key.type==='Identifier') {
|
||||
if (key.name==='set')
|
||||
this.raise(key.start,"'set <member>(value)' cannot be be async") ;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
delete prop.__maybeStaticAsyncGetter ;
|
||||
}
|
||||
return key;
|
||||
};
|
||||
}) ;
|
||||
|
||||
parser.extend("parseClassMethod",function(base){
|
||||
return function (classBody, method, isGenerator) {
|
||||
var r = base.apply(this,arguments) ;
|
||||
if (method.__maybeStaticAsyncGetter) {
|
||||
delete method.__maybeStaticAsyncGetter ;
|
||||
if (method.key.name!=='get')
|
||||
method.kind = "get" ;
|
||||
}
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
|
||||
|
||||
parser.extend("parseFunctionBody",function(base){
|
||||
return function (node, isArrowFunction) {
|
||||
var wasAsync = this.inAsync ;
|
||||
if (this.__isAsyncProp) {
|
||||
node.async = true ;
|
||||
this.inAsync = true ;
|
||||
delete this.__isAsyncProp ;
|
||||
}
|
||||
var r = base.apply(this,arguments) ;
|
||||
this.inAsync = wasAsync ;
|
||||
return r ;
|
||||
}
|
||||
}) ;
|
||||
}
|
||||
|
||||
module.exports = asyncAwaitPlugin ;
|
||||
16
node_modules/acorn-es7-plugin/package.json
generated
vendored
Normal file
16
node_modules/acorn-es7-plugin/package.json
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"author": {
|
||||
"name": "matatbread"
|
||||
},
|
||||
"description": "A plugin for the Acorn parser that understands the ES7 keywords async and await",
|
||||
"homepage": "https://github.com/MatAtBread/acorn-es7-plugin#readme",
|
||||
"license": "MIT",
|
||||
"main": "acorn-es7-plugin.js",
|
||||
"name": "acorn-es7-plugin",
|
||||
"readmeFilename": "README.md",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/MatAtBread/acorn-es7-plugin.git"
|
||||
},
|
||||
"version": "1.1.7"
|
||||
}
|
||||
Reference in New Issue
Block a user