feat: docker compose maybe
This commit is contained in:
		
							
								
								
									
										19
									
								
								node_modules/esutils/LICENSE.BSD
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/esutils/LICENSE.BSD
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
  * Redistributions of source code must retain the above copyright
 | 
			
		||||
    notice, this list of conditions and the following disclaimer.
 | 
			
		||||
  * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
    notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
    documentation and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 | 
			
		||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
			
		||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
							
								
								
									
										174
									
								
								node_modules/esutils/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								node_modules/esutils/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,174 @@
 | 
			
		||||
### esutils [](http://travis-ci.org/estools/esutils)
 | 
			
		||||
esutils ([esutils](http://github.com/estools/esutils)) is
 | 
			
		||||
utility box for ECMAScript language tools.
 | 
			
		||||
 | 
			
		||||
### API
 | 
			
		||||
 | 
			
		||||
### ast
 | 
			
		||||
 | 
			
		||||
#### ast.isExpression(node)
 | 
			
		||||
 | 
			
		||||
Returns true if `node` is an Expression as defined in ECMA262 edition 5.1 section
 | 
			
		||||
[11](https://es5.github.io/#x11).
 | 
			
		||||
 | 
			
		||||
#### ast.isStatement(node)
 | 
			
		||||
 | 
			
		||||
Returns true if `node` is a Statement as defined in ECMA262 edition 5.1 section
 | 
			
		||||
[12](https://es5.github.io/#x12).
 | 
			
		||||
 | 
			
		||||
#### ast.isIterationStatement(node)
 | 
			
		||||
 | 
			
		||||
Returns true if `node` is an IterationStatement as defined in ECMA262 edition
 | 
			
		||||
5.1 section [12.6](https://es5.github.io/#x12.6).
 | 
			
		||||
 | 
			
		||||
#### ast.isSourceElement(node)
 | 
			
		||||
 | 
			
		||||
Returns true if `node` is a SourceElement as defined in ECMA262 edition 5.1
 | 
			
		||||
section [14](https://es5.github.io/#x14).
 | 
			
		||||
 | 
			
		||||
#### ast.trailingStatement(node)
 | 
			
		||||
 | 
			
		||||
Returns `Statement?` if `node` has trailing `Statement`.
 | 
			
		||||
```js
 | 
			
		||||
if (cond)
 | 
			
		||||
    consequent;
 | 
			
		||||
```
 | 
			
		||||
When taking this `IfStatement`, returns `consequent;` statement.
 | 
			
		||||
 | 
			
		||||
#### ast.isProblematicIfStatement(node)
 | 
			
		||||
 | 
			
		||||
Returns true if `node` is a problematic IfStatement. If `node` is a problematic `IfStatement`, `node` cannot be represented as an one on one JavaScript code.
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
    type: 'IfStatement',
 | 
			
		||||
    consequent: {
 | 
			
		||||
        type: 'WithStatement',
 | 
			
		||||
        body: {
 | 
			
		||||
            type: 'IfStatement',
 | 
			
		||||
            consequent: {type: 'EmptyStatement'}
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    alternate: {type: 'EmptyStatement'}
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
The above node cannot be represented as a JavaScript code, since the top level `else` alternate belongs to an inner `IfStatement`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### code
 | 
			
		||||
 | 
			
		||||
#### code.isDecimalDigit(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code is decimal digit.
 | 
			
		||||
 | 
			
		||||
#### code.isHexDigit(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code is hexadecimal digit.
 | 
			
		||||
 | 
			
		||||
#### code.isOctalDigit(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code is octal digit.
 | 
			
		||||
 | 
			
		||||
#### code.isWhiteSpace(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code is white space. White space characters are formally defined in ECMA262.
 | 
			
		||||
 | 
			
		||||
#### code.isLineTerminator(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code is line terminator. Line terminator characters are formally defined in ECMA262.
 | 
			
		||||
 | 
			
		||||
#### code.isIdentifierStart(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code can be the first character of ECMA262 Identifier. They are formally defined in ECMA262.
 | 
			
		||||
 | 
			
		||||
#### code.isIdentifierPart(code)
 | 
			
		||||
 | 
			
		||||
Return true if provided code can be the trailing character of ECMA262 Identifier. They are formally defined in ECMA262.
 | 
			
		||||
 | 
			
		||||
### keyword
 | 
			
		||||
 | 
			
		||||
#### keyword.isKeywordES5(id, strict)
 | 
			
		||||
 | 
			
		||||
Returns `true` if provided identifier string is a Keyword or Future Reserved Word
 | 
			
		||||
in ECMA262 edition 5.1. They are formally defined in ECMA262 sections
 | 
			
		||||
[7.6.1.1](http://es5.github.io/#x7.6.1.1) and [7.6.1.2](http://es5.github.io/#x7.6.1.2),
 | 
			
		||||
respectively. If the `strict` flag is truthy, this function additionally checks whether
 | 
			
		||||
`id` is a Keyword or Future Reserved Word under strict mode.
 | 
			
		||||
 | 
			
		||||
#### keyword.isKeywordES6(id, strict)
 | 
			
		||||
 | 
			
		||||
Returns `true` if provided identifier string is a Keyword or Future Reserved Word
 | 
			
		||||
in ECMA262 edition 6. They are formally defined in ECMA262 sections
 | 
			
		||||
[11.6.2.1](http://ecma-international.org/ecma-262/6.0/#sec-keywords) and
 | 
			
		||||
[11.6.2.2](http://ecma-international.org/ecma-262/6.0/#sec-future-reserved-words),
 | 
			
		||||
respectively. If the `strict` flag is truthy, this function additionally checks whether
 | 
			
		||||
`id` is a Keyword or Future Reserved Word under strict mode.
 | 
			
		||||
 | 
			
		||||
#### keyword.isReservedWordES5(id, strict)
 | 
			
		||||
 | 
			
		||||
Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 5.1.
 | 
			
		||||
They are formally defined in ECMA262 section [7.6.1](http://es5.github.io/#x7.6.1).
 | 
			
		||||
If the `strict` flag is truthy, this function additionally checks whether `id`
 | 
			
		||||
is a Reserved Word under strict mode.
 | 
			
		||||
 | 
			
		||||
#### keyword.isReservedWordES6(id, strict)
 | 
			
		||||
 | 
			
		||||
Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 6.
 | 
			
		||||
They are formally defined in ECMA262 section [11.6.2](http://ecma-international.org/ecma-262/6.0/#sec-reserved-words).
 | 
			
		||||
If the `strict` flag is truthy, this function additionally checks whether `id`
 | 
			
		||||
is a Reserved Word under strict mode.
 | 
			
		||||
 | 
			
		||||
#### keyword.isRestrictedWord(id)
 | 
			
		||||
 | 
			
		||||
Returns `true` if provided identifier string is one of `eval` or `arguments`.
 | 
			
		||||
They are restricted in strict mode code throughout ECMA262 edition 5.1 and
 | 
			
		||||
in ECMA262 edition 6 section [12.1.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers-static-semantics-early-errors).
 | 
			
		||||
 | 
			
		||||
#### keyword.isIdentifierNameES5(id)
 | 
			
		||||
 | 
			
		||||
Return true if provided identifier string is an IdentifierName as specified in
 | 
			
		||||
ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6).
 | 
			
		||||
 | 
			
		||||
#### keyword.isIdentifierNameES6(id)
 | 
			
		||||
 | 
			
		||||
Return true if provided identifier string is an IdentifierName as specified in
 | 
			
		||||
ECMA262 edition 6 section [11.6](http://ecma-international.org/ecma-262/6.0/#sec-names-and-keywords).
 | 
			
		||||
 | 
			
		||||
#### keyword.isIdentifierES5(id, strict)
 | 
			
		||||
 | 
			
		||||
Return true if provided identifier string is an Identifier as specified in
 | 
			
		||||
ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6). If the `strict`
 | 
			
		||||
flag is truthy, this function additionally checks whether `id` is an Identifier
 | 
			
		||||
under strict mode.
 | 
			
		||||
 | 
			
		||||
#### keyword.isIdentifierES6(id, strict)
 | 
			
		||||
 | 
			
		||||
Return true if provided identifier string is an Identifier as specified in
 | 
			
		||||
ECMA262 edition 6 section [12.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers).
 | 
			
		||||
If the `strict` flag is truthy, this function additionally checks whether `id`
 | 
			
		||||
is an Identifier under strict mode.
 | 
			
		||||
 | 
			
		||||
### License
 | 
			
		||||
 | 
			
		||||
Copyright (C) 2013 [Yusuke Suzuki](http://github.com/Constellation)
 | 
			
		||||
 (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
  * Redistributions of source code must retain the above copyright
 | 
			
		||||
    notice, this list of conditions and the following disclaimer.
 | 
			
		||||
 | 
			
		||||
  * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
    notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
    documentation and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 | 
			
		||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
			
		||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
							
								
								
									
										144
									
								
								node_modules/esutils/lib/ast.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								node_modules/esutils/lib/ast.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,144 @@
 | 
			
		||||
/*
 | 
			
		||||
  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>
 | 
			
		||||
 | 
			
		||||
  Redistribution and use in source and binary forms, with or without
 | 
			
		||||
  modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
    * Redistributions of source code must retain the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer.
 | 
			
		||||
    * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
      documentation and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
 | 
			
		||||
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 | 
			
		||||
  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
			
		||||
  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
(function () {
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    function isExpression(node) {
 | 
			
		||||
        if (node == null) { return false; }
 | 
			
		||||
        switch (node.type) {
 | 
			
		||||
            case 'ArrayExpression':
 | 
			
		||||
            case 'AssignmentExpression':
 | 
			
		||||
            case 'BinaryExpression':
 | 
			
		||||
            case 'CallExpression':
 | 
			
		||||
            case 'ConditionalExpression':
 | 
			
		||||
            case 'FunctionExpression':
 | 
			
		||||
            case 'Identifier':
 | 
			
		||||
            case 'Literal':
 | 
			
		||||
            case 'LogicalExpression':
 | 
			
		||||
            case 'MemberExpression':
 | 
			
		||||
            case 'NewExpression':
 | 
			
		||||
            case 'ObjectExpression':
 | 
			
		||||
            case 'SequenceExpression':
 | 
			
		||||
            case 'ThisExpression':
 | 
			
		||||
            case 'UnaryExpression':
 | 
			
		||||
            case 'UpdateExpression':
 | 
			
		||||
                return true;
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isIterationStatement(node) {
 | 
			
		||||
        if (node == null) { return false; }
 | 
			
		||||
        switch (node.type) {
 | 
			
		||||
            case 'DoWhileStatement':
 | 
			
		||||
            case 'ForInStatement':
 | 
			
		||||
            case 'ForStatement':
 | 
			
		||||
            case 'WhileStatement':
 | 
			
		||||
                return true;
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isStatement(node) {
 | 
			
		||||
        if (node == null) { return false; }
 | 
			
		||||
        switch (node.type) {
 | 
			
		||||
            case 'BlockStatement':
 | 
			
		||||
            case 'BreakStatement':
 | 
			
		||||
            case 'ContinueStatement':
 | 
			
		||||
            case 'DebuggerStatement':
 | 
			
		||||
            case 'DoWhileStatement':
 | 
			
		||||
            case 'EmptyStatement':
 | 
			
		||||
            case 'ExpressionStatement':
 | 
			
		||||
            case 'ForInStatement':
 | 
			
		||||
            case 'ForStatement':
 | 
			
		||||
            case 'IfStatement':
 | 
			
		||||
            case 'LabeledStatement':
 | 
			
		||||
            case 'ReturnStatement':
 | 
			
		||||
            case 'SwitchStatement':
 | 
			
		||||
            case 'ThrowStatement':
 | 
			
		||||
            case 'TryStatement':
 | 
			
		||||
            case 'VariableDeclaration':
 | 
			
		||||
            case 'WhileStatement':
 | 
			
		||||
            case 'WithStatement':
 | 
			
		||||
                return true;
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isSourceElement(node) {
 | 
			
		||||
      return isStatement(node) || node != null && node.type === 'FunctionDeclaration';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function trailingStatement(node) {
 | 
			
		||||
        switch (node.type) {
 | 
			
		||||
        case 'IfStatement':
 | 
			
		||||
            if (node.alternate != null) {
 | 
			
		||||
                return node.alternate;
 | 
			
		||||
            }
 | 
			
		||||
            return node.consequent;
 | 
			
		||||
 | 
			
		||||
        case 'LabeledStatement':
 | 
			
		||||
        case 'ForStatement':
 | 
			
		||||
        case 'ForInStatement':
 | 
			
		||||
        case 'WhileStatement':
 | 
			
		||||
        case 'WithStatement':
 | 
			
		||||
            return node.body;
 | 
			
		||||
        }
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isProblematicIfStatement(node) {
 | 
			
		||||
        var current;
 | 
			
		||||
 | 
			
		||||
        if (node.type !== 'IfStatement') {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        if (node.alternate == null) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        current = node.consequent;
 | 
			
		||||
        do {
 | 
			
		||||
            if (current.type === 'IfStatement') {
 | 
			
		||||
                if (current.alternate == null)  {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            current = trailingStatement(current);
 | 
			
		||||
        } while (current);
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    module.exports = {
 | 
			
		||||
        isExpression: isExpression,
 | 
			
		||||
        isStatement: isStatement,
 | 
			
		||||
        isIterationStatement: isIterationStatement,
 | 
			
		||||
        isSourceElement: isSourceElement,
 | 
			
		||||
        isProblematicIfStatement: isProblematicIfStatement,
 | 
			
		||||
 | 
			
		||||
        trailingStatement: trailingStatement
 | 
			
		||||
    };
 | 
			
		||||
}());
 | 
			
		||||
/* vim: set sw=4 ts=4 et tw=80 : */
 | 
			
		||||
							
								
								
									
										135
									
								
								node_modules/esutils/lib/code.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								node_modules/esutils/lib/code.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										165
									
								
								node_modules/esutils/lib/keyword.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								node_modules/esutils/lib/keyword.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,165 @@
 | 
			
		||||
/*
 | 
			
		||||
  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>
 | 
			
		||||
 | 
			
		||||
  Redistribution and use in source and binary forms, with or without
 | 
			
		||||
  modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
    * Redistributions of source code must retain the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer.
 | 
			
		||||
    * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
      documentation and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 | 
			
		||||
  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
			
		||||
  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
(function () {
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    var code = require('./code');
 | 
			
		||||
 | 
			
		||||
    function isStrictModeReservedWordES6(id) {
 | 
			
		||||
        switch (id) {
 | 
			
		||||
        case 'implements':
 | 
			
		||||
        case 'interface':
 | 
			
		||||
        case 'package':
 | 
			
		||||
        case 'private':
 | 
			
		||||
        case 'protected':
 | 
			
		||||
        case 'public':
 | 
			
		||||
        case 'static':
 | 
			
		||||
        case 'let':
 | 
			
		||||
            return true;
 | 
			
		||||
        default:
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isKeywordES5(id, strict) {
 | 
			
		||||
        // yield should not be treated as keyword under non-strict mode.
 | 
			
		||||
        if (!strict && id === 'yield') {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        return isKeywordES6(id, strict);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isKeywordES6(id, strict) {
 | 
			
		||||
        if (strict && isStrictModeReservedWordES6(id)) {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        switch (id.length) {
 | 
			
		||||
        case 2:
 | 
			
		||||
            return (id === 'if') || (id === 'in') || (id === 'do');
 | 
			
		||||
        case 3:
 | 
			
		||||
            return (id === 'var') || (id === 'for') || (id === 'new') || (id === 'try');
 | 
			
		||||
        case 4:
 | 
			
		||||
            return (id === 'this') || (id === 'else') || (id === 'case') ||
 | 
			
		||||
                (id === 'void') || (id === 'with') || (id === 'enum');
 | 
			
		||||
        case 5:
 | 
			
		||||
            return (id === 'while') || (id === 'break') || (id === 'catch') ||
 | 
			
		||||
                (id === 'throw') || (id === 'const') || (id === 'yield') ||
 | 
			
		||||
                (id === 'class') || (id === 'super');
 | 
			
		||||
        case 6:
 | 
			
		||||
            return (id === 'return') || (id === 'typeof') || (id === 'delete') ||
 | 
			
		||||
                (id === 'switch') || (id === 'export') || (id === 'import');
 | 
			
		||||
        case 7:
 | 
			
		||||
            return (id === 'default') || (id === 'finally') || (id === 'extends');
 | 
			
		||||
        case 8:
 | 
			
		||||
            return (id === 'function') || (id === 'continue') || (id === 'debugger');
 | 
			
		||||
        case 10:
 | 
			
		||||
            return (id === 'instanceof');
 | 
			
		||||
        default:
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isReservedWordES5(id, strict) {
 | 
			
		||||
        return id === 'null' || id === 'true' || id === 'false' || isKeywordES5(id, strict);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isReservedWordES6(id, strict) {
 | 
			
		||||
        return id === 'null' || id === 'true' || id === 'false' || isKeywordES6(id, strict);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isRestrictedWord(id) {
 | 
			
		||||
        return id === 'eval' || id === 'arguments';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isIdentifierNameES5(id) {
 | 
			
		||||
        var i, iz, ch;
 | 
			
		||||
 | 
			
		||||
        if (id.length === 0) { return false; }
 | 
			
		||||
 | 
			
		||||
        ch = id.charCodeAt(0);
 | 
			
		||||
        if (!code.isIdentifierStartES5(ch)) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        for (i = 1, iz = id.length; i < iz; ++i) {
 | 
			
		||||
            ch = id.charCodeAt(i);
 | 
			
		||||
            if (!code.isIdentifierPartES5(ch)) {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function decodeUtf16(lead, trail) {
 | 
			
		||||
        return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isIdentifierNameES6(id) {
 | 
			
		||||
        var i, iz, ch, lowCh, check;
 | 
			
		||||
 | 
			
		||||
        if (id.length === 0) { return false; }
 | 
			
		||||
 | 
			
		||||
        check = code.isIdentifierStartES6;
 | 
			
		||||
        for (i = 0, iz = id.length; i < iz; ++i) {
 | 
			
		||||
            ch = id.charCodeAt(i);
 | 
			
		||||
            if (0xD800 <= ch && ch <= 0xDBFF) {
 | 
			
		||||
                ++i;
 | 
			
		||||
                if (i >= iz) { return false; }
 | 
			
		||||
                lowCh = id.charCodeAt(i);
 | 
			
		||||
                if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
                ch = decodeUtf16(ch, lowCh);
 | 
			
		||||
            }
 | 
			
		||||
            if (!check(ch)) {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            check = code.isIdentifierPartES6;
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isIdentifierES5(id, strict) {
 | 
			
		||||
        return isIdentifierNameES5(id) && !isReservedWordES5(id, strict);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isIdentifierES6(id, strict) {
 | 
			
		||||
        return isIdentifierNameES6(id) && !isReservedWordES6(id, strict);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    module.exports = {
 | 
			
		||||
        isKeywordES5: isKeywordES5,
 | 
			
		||||
        isKeywordES6: isKeywordES6,
 | 
			
		||||
        isReservedWordES5: isReservedWordES5,
 | 
			
		||||
        isReservedWordES6: isReservedWordES6,
 | 
			
		||||
        isRestrictedWord: isRestrictedWord,
 | 
			
		||||
        isIdentifierNameES5: isIdentifierNameES5,
 | 
			
		||||
        isIdentifierNameES6: isIdentifierNameES6,
 | 
			
		||||
        isIdentifierES5: isIdentifierES5,
 | 
			
		||||
        isIdentifierES6: isIdentifierES6
 | 
			
		||||
    };
 | 
			
		||||
}());
 | 
			
		||||
/* vim: set sw=4 ts=4 et tw=80 : */
 | 
			
		||||
							
								
								
									
										33
									
								
								node_modules/esutils/lib/utils.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								node_modules/esutils/lib/utils.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
/*
 | 
			
		||||
  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>
 | 
			
		||||
 | 
			
		||||
  Redistribution and use in source and binary forms, with or without
 | 
			
		||||
  modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
    * Redistributions of source code must retain the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer.
 | 
			
		||||
    * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
      notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
      documentation and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 | 
			
		||||
  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
			
		||||
  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
			
		||||
  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
			
		||||
  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(function () {
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    exports.ast = require('./ast');
 | 
			
		||||
    exports.code = require('./code');
 | 
			
		||||
    exports.keyword = require('./keyword');
 | 
			
		||||
}());
 | 
			
		||||
/* vim: set sw=4 ts=4 et tw=80 : */
 | 
			
		||||
							
								
								
									
										44
									
								
								node_modules/esutils/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								node_modules/esutils/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "esutils",
 | 
			
		||||
  "description": "utility box for ECMAScript language tools",
 | 
			
		||||
  "homepage": "https://github.com/estools/esutils",
 | 
			
		||||
  "main": "lib/utils.js",
 | 
			
		||||
  "version": "2.0.3",
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">=0.10.0"
 | 
			
		||||
  },
 | 
			
		||||
  "directories": {
 | 
			
		||||
    "lib": "./lib"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "LICENSE.BSD",
 | 
			
		||||
    "README.md",
 | 
			
		||||
    "lib"
 | 
			
		||||
  ],
 | 
			
		||||
  "maintainers": [
 | 
			
		||||
    {
 | 
			
		||||
      "name": "Yusuke Suzuki",
 | 
			
		||||
      "email": "utatane.tea@gmail.com",
 | 
			
		||||
      "web": "http://github.com/Constellation"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "http://github.com/estools/esutils.git"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "chai": "~1.7.2",
 | 
			
		||||
    "coffee-script": "~1.6.3",
 | 
			
		||||
    "jshint": "2.6.3",
 | 
			
		||||
    "mocha": "~2.2.1",
 | 
			
		||||
    "regenerate": "~1.3.1",
 | 
			
		||||
    "unicode-9.0.0": "~0.7.0"
 | 
			
		||||
  },
 | 
			
		||||
  "license": "BSD-2-Clause",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "npm run-script lint && npm run-script unit-test",
 | 
			
		||||
    "lint": "jshint lib/*.js",
 | 
			
		||||
    "unit-test": "mocha --compilers coffee:coffee-script -R spec",
 | 
			
		||||
    "generate-regex": "node tools/generate-identifier-regex.js"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user