first commit
This commit is contained in:
294
node_modules/acorn-import-meta/.eslintrc.json
generated
vendored
Normal file
294
node_modules/acorn-import-meta/.eslintrc.json
generated
vendored
Normal file
@@ -0,0 +1,294 @@
|
||||
{
|
||||
"env": {
|
||||
"es6": true,
|
||||
"node": true
|
||||
},
|
||||
"extends": ["eslint:recommended", "plugin:node/recommended"],
|
||||
"plugins": ["node"],
|
||||
"rules": {
|
||||
"accessor-pairs": "error",
|
||||
"array-bracket-newline": "off",
|
||||
"array-bracket-spacing": "off",
|
||||
"array-callback-return": "error",
|
||||
"array-element-newline": "off",
|
||||
"arrow-body-style": "error",
|
||||
"arrow-parens": [
|
||||
"error",
|
||||
"as-needed"
|
||||
],
|
||||
"arrow-spacing": [
|
||||
"error",
|
||||
{
|
||||
"after": true,
|
||||
"before": true
|
||||
}
|
||||
],
|
||||
"block-scoped-var": "error",
|
||||
"block-spacing": "off",
|
||||
"brace-style": [
|
||||
"error",
|
||||
"1tbs",
|
||||
{
|
||||
"allowSingleLine": true
|
||||
}
|
||||
],
|
||||
"callback-return": "error",
|
||||
"camelcase": "error",
|
||||
"capitalized-comments": "off",
|
||||
"class-methods-use-this": "error",
|
||||
"comma-dangle": "off",
|
||||
"comma-spacing": [
|
||||
"error",
|
||||
{
|
||||
"after": true,
|
||||
"before": false
|
||||
}
|
||||
],
|
||||
"comma-style": [
|
||||
"error",
|
||||
"last"
|
||||
],
|
||||
"complexity": "off",
|
||||
"computed-property-spacing": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"consistent-return": "error",
|
||||
"consistent-this": "error",
|
||||
"curly": [ "error", "multi-line" ],
|
||||
"default-case": "error",
|
||||
"dot-location": "error",
|
||||
"dot-notation": [
|
||||
"error",
|
||||
{
|
||||
"allowKeywords": true
|
||||
}
|
||||
],
|
||||
"eol-last": "error",
|
||||
"eqeqeq": "off",
|
||||
"for-direction": "error",
|
||||
"func-call-spacing": "error",
|
||||
"func-name-matching": "error",
|
||||
"func-names": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"func-style": [
|
||||
"error",
|
||||
"declaration",
|
||||
{ "allowArrowFunctions": true }
|
||||
],
|
||||
"function-paren-newline": "off",
|
||||
"generator-star-spacing": "error",
|
||||
"getter-return": "error",
|
||||
"global-require": "error",
|
||||
"guard-for-in": "error",
|
||||
"handle-callback-err": "error",
|
||||
"id-blacklist": "error",
|
||||
"id-length": "off",
|
||||
"id-match": "error",
|
||||
"implicit-arrow-linebreak": [
|
||||
"error",
|
||||
"beside"
|
||||
],
|
||||
"indent": ["error", 2],
|
||||
"indent-legacy": "off",
|
||||
"init-declarations": "off",
|
||||
"jsx-quotes": "error",
|
||||
"key-spacing": "error",
|
||||
"keyword-spacing": [
|
||||
"error",
|
||||
{
|
||||
"after": true,
|
||||
"before": true
|
||||
}
|
||||
],
|
||||
"line-comment-position": "off",
|
||||
"linebreak-style": [
|
||||
"error",
|
||||
"unix"
|
||||
],
|
||||
"lines-around-comment": "error",
|
||||
"lines-around-directive": "error",
|
||||
"lines-between-class-members": "error",
|
||||
"max-depth": "error",
|
||||
"max-len": "off",
|
||||
"max-lines": "off",
|
||||
"max-nested-callbacks": "error",
|
||||
"max-params": "off",
|
||||
"max-statements": "off",
|
||||
"max-statements-per-line": "off",
|
||||
"multiline-comment-style": [
|
||||
"error",
|
||||
"separate-lines"
|
||||
],
|
||||
"new-cap": "error",
|
||||
"new-parens": "error",
|
||||
"newline-after-var": "off",
|
||||
"newline-before-return": "off",
|
||||
"newline-per-chained-call": "off",
|
||||
"no-alert": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-await-in-loop": "error",
|
||||
"no-bitwise": "error",
|
||||
"no-buffer-constructor": "error",
|
||||
"no-caller": "error",
|
||||
"no-catch-shadow": "error",
|
||||
"no-confusing-arrow": "off",
|
||||
"no-continue": "off",
|
||||
"no-div-regex": "error",
|
||||
"no-duplicate-imports": "error",
|
||||
"no-else-return": "error",
|
||||
"no-empty-function": "error",
|
||||
"no-eq-null": "error",
|
||||
"no-eval": "error",
|
||||
"no-extend-native": "error",
|
||||
"no-extra-bind": "error",
|
||||
"no-extra-label": "error",
|
||||
"no-extra-parens": "off",
|
||||
"no-floating-decimal": "error",
|
||||
"no-implicit-coercion": "error",
|
||||
"no-implicit-globals": "error",
|
||||
"no-implied-eval": "error",
|
||||
"no-inline-comments": "off",
|
||||
"no-invalid-this": "off",
|
||||
"no-iterator": "error",
|
||||
"no-label-var": "error",
|
||||
"no-labels": "error",
|
||||
"no-lone-blocks": "error",
|
||||
"no-lonely-if": "off",
|
||||
"no-loop-func": "error",
|
||||
"no-magic-numbers": "off",
|
||||
"no-mixed-operators": "off",
|
||||
"no-mixed-requires": "error",
|
||||
"no-multi-assign": "error",
|
||||
"no-multi-spaces": "error",
|
||||
"no-multi-str": "error",
|
||||
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }],
|
||||
"no-native-reassign": "error",
|
||||
"no-negated-condition": "off",
|
||||
"no-negated-in-lhs": "error",
|
||||
"no-nested-ternary": "error",
|
||||
"no-new": "error",
|
||||
"no-new-func": "error",
|
||||
"no-new-object": "error",
|
||||
"no-new-require": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-param-reassign": "off",
|
||||
"no-path-concat": "error",
|
||||
"no-plusplus": "off",
|
||||
"no-process-env": "error",
|
||||
"no-process-exit": "error",
|
||||
"no-proto": "error",
|
||||
"no-prototype-builtins": "error",
|
||||
"no-restricted-globals": "error",
|
||||
"no-restricted-imports": "error",
|
||||
"no-restricted-modules": "error",
|
||||
"no-restricted-properties": "error",
|
||||
"no-restricted-syntax": "error",
|
||||
"no-return-assign": "error",
|
||||
"no-return-await": "error",
|
||||
"no-script-url": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-sequences": "error",
|
||||
"no-shadow": "error",
|
||||
"no-shadow-restricted-names": "error",
|
||||
"no-spaced-func": "error",
|
||||
"no-sync": [
|
||||
"error",
|
||||
{
|
||||
"allowAtRootLevel": true
|
||||
}
|
||||
],
|
||||
"no-tabs": "error",
|
||||
"no-template-curly-in-string": "error",
|
||||
"no-ternary": "off",
|
||||
"no-throw-literal": "error",
|
||||
"no-trailing-spaces": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-undefined": "error",
|
||||
"no-underscore-dangle": "off",
|
||||
"no-unmodified-loop-condition": "error",
|
||||
"no-unneeded-ternary": "error",
|
||||
"no-unused-expressions": "error",
|
||||
"no-unused-vars": ["error", {"argsIgnorePattern": "^_"}],
|
||||
"no-use-before-define": "error",
|
||||
"no-useless-call": "error",
|
||||
"no-useless-computed-key": "error",
|
||||
"no-useless-concat": "error",
|
||||
"no-useless-constructor": "error",
|
||||
"no-useless-rename": "error",
|
||||
"no-useless-return": "error",
|
||||
"no-var": "error",
|
||||
"no-void": "error",
|
||||
"no-warning-comments": "error",
|
||||
"no-whitespace-before-property": "error",
|
||||
"no-with": "error",
|
||||
"nonblock-statement-body-position": [
|
||||
"error",
|
||||
"any"
|
||||
],
|
||||
"object-curly-newline": "off",
|
||||
"object-curly-spacing": "off",
|
||||
"object-property-newline": "off",
|
||||
"object-shorthand": "off",
|
||||
"one-var": "off",
|
||||
"one-var-declaration-per-line": "off",
|
||||
"operator-assignment": "error",
|
||||
"operator-linebreak": "error",
|
||||
"padded-blocks": "off",
|
||||
"padding-line-between-statements": "error",
|
||||
"prefer-arrow-callback": "off",
|
||||
"prefer-const": "off",
|
||||
"prefer-destructuring": "off",
|
||||
"prefer-numeric-literals": "error",
|
||||
"prefer-promise-reject-errors": "error",
|
||||
"prefer-reflect": "off",
|
||||
"prefer-rest-params": "error",
|
||||
"prefer-spread": "error",
|
||||
"prefer-template": "error",
|
||||
"quote-props": ["error", "as-needed"],
|
||||
"quotes": ["error", "double"],
|
||||
"radix": "error",
|
||||
"require-await": "error",
|
||||
"require-jsdoc": "off",
|
||||
"rest-spread-spacing": "error",
|
||||
"semi": ["error", "never"],
|
||||
"semi-spacing": "error",
|
||||
"semi-style": [
|
||||
"error",
|
||||
"last"
|
||||
],
|
||||
"sort-imports": "error",
|
||||
"sort-keys": "off",
|
||||
"sort-vars": "off",
|
||||
"space-before-blocks": "error",
|
||||
"space-before-function-paren": "off",
|
||||
"space-in-parens": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"space-infix-ops": "error",
|
||||
"space-unary-ops": "error",
|
||||
"spaced-comment": "off",
|
||||
"strict": "error",
|
||||
"switch-colon-spacing": "error",
|
||||
"symbol-description": "error",
|
||||
"template-curly-spacing": "error",
|
||||
"template-tag-spacing": "error",
|
||||
"unicode-bom": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"valid-jsdoc": "error",
|
||||
"vars-on-top": "off",
|
||||
"wrap-regex": "error",
|
||||
"yield-star-spacing": "error",
|
||||
"yoda": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"node/no-unpublished-require": "off"
|
||||
}
|
||||
}
|
25
node_modules/acorn-import-meta/CHANGELOG.md
generated
vendored
Normal file
25
node_modules/acorn-import-meta/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
## 1.1.0 (2020-04-20)
|
||||
|
||||
* Don't accept escape sequences in "import"
|
||||
* Mark as compatible with acorn@7
|
||||
|
||||
## 1.0.0 (2018-10-23)
|
||||
|
||||
* Don't accept escape sequences in "meta"
|
||||
|
||||
## 0.3.0 (2018-09-14)
|
||||
|
||||
* Update to new acorn 6 interface
|
||||
* Change license to MIT
|
||||
|
||||
## 0.2.1 (2018-02-13)
|
||||
|
||||
* Relicense under Apache-2.0 and AGPL-3.0-or-later
|
||||
|
||||
## 0.2.0 (2017-12-26)
|
||||
|
||||
* Improve compatibility with acorn-dynamic-import
|
||||
|
||||
## 0.1.0 (2017-12-19)
|
||||
|
||||
Initial release
|
19
node_modules/acorn-import-meta/LICENSE
generated
vendored
Normal file
19
node_modules/acorn-import-meta/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2017-2018 by Adrian Heine
|
||||
|
||||
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.
|
21
node_modules/acorn-import-meta/README.md
generated
vendored
Normal file
21
node_modules/acorn-import-meta/README.md
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Support for import.meta in Acorn
|
||||
|
||||
[](https://www.npmjs.org/package/acorn-import-meta)
|
||||
|
||||
This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript.
|
||||
|
||||
It implements support for import.meta as defined in the [corresponding stage 3 proposal](https://github.com/tc39/proposal-import-meta). The emitted AST follows [ESTree](https://github.com/estree/estree/blob/master/es2015.md#metaproperty).
|
||||
|
||||
## Usage
|
||||
|
||||
This module provides a plugin that extends the Acorn `Parser` class:
|
||||
|
||||
```javascript
|
||||
var acorn = require('acorn');
|
||||
var importMeta = require('acorn-import-meta');
|
||||
acorn.Parser.extend(importMeta).parse('console.log(import.meta.url)');
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This plugin is released under an [MIT License](./LICENSE).
|
47
node_modules/acorn-import-meta/index.js
generated
vendored
Normal file
47
node_modules/acorn-import-meta/index.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
"use strict"
|
||||
|
||||
const tt = require("acorn").tokTypes
|
||||
|
||||
const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
|
||||
|
||||
const nextTokenIsDot = parser => {
|
||||
skipWhiteSpace.lastIndex = parser.pos
|
||||
let skip = skipWhiteSpace.exec(parser.input)
|
||||
let next = parser.pos + skip[0].length
|
||||
return parser.input.slice(next, next + 1) === "."
|
||||
}
|
||||
|
||||
module.exports = function(Parser) {
|
||||
return class extends Parser {
|
||||
parseExprAtom(refDestructuringErrors) {
|
||||
if (this.type !== tt._import || !nextTokenIsDot(this)) return super.parseExprAtom(refDestructuringErrors)
|
||||
|
||||
if (!this.options.allowImportExportEverywhere && !this.inModule) {
|
||||
this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")
|
||||
}
|
||||
|
||||
let node = this.startNode()
|
||||
if (this.containsEsc) this.raiseRecoverable(this.start, "Escape sequence in keyword import")
|
||||
node.meta = this.parseIdent(true)
|
||||
this.expect(tt.dot)
|
||||
node.property = this.parseIdent(true)
|
||||
if (node.property.name !== "meta") {
|
||||
this.raiseRecoverable(node.property.start, "The only valid meta property for import is import.meta")
|
||||
}
|
||||
if (this.containsEsc) {
|
||||
this.raiseRecoverable(node.property.start, "\"meta\" in import.meta must not contain escape sequences")
|
||||
}
|
||||
return this.finishNode(node, "MetaProperty")
|
||||
}
|
||||
|
||||
parseStatement(context, topLevel, exports) {
|
||||
if (this.type !== tt._import || !nextTokenIsDot(this)) {
|
||||
return super.parseStatement(context, topLevel, exports)
|
||||
}
|
||||
|
||||
let node = this.startNode()
|
||||
let expr = this.parseExpression()
|
||||
return this.parseExpressionStatement(node, expr)
|
||||
}
|
||||
}
|
||||
}
|
68
node_modules/acorn-import-meta/package.json
generated
vendored
Normal file
68
node_modules/acorn-import-meta/package.json
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"acorn-import-meta@1.1.0",
|
||||
"D:\\Projects\\siag\\vanillajs-seed"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "acorn-import-meta@1.1.0",
|
||||
"_id": "acorn-import-meta@1.1.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-pshgiVR5mhpjFVdizKTN+kAGRqjJFUOEB3TvpQ6kiAutb1lvHrIVVcGoe5xzMpJkVNifCeymMG7/tsDkWn8CdQ==",
|
||||
"_location": "/acorn-import-meta",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "acorn-import-meta@1.1.0",
|
||||
"name": "acorn-import-meta",
|
||||
"escapedName": "acorn-import-meta",
|
||||
"rawSpec": "1.1.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.1.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/acorn-stage3"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/acorn-import-meta/-/acorn-import-meta-1.1.0.tgz",
|
||||
"_spec": "1.1.0",
|
||||
"_where": "D:\\Projects\\siag\\vanillajs-seed",
|
||||
"bugs": {
|
||||
"url": "https://github.com/adrianheine/acorn-import-meta/issues"
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Adrian Heine",
|
||||
"email": "mail@adrianheine.de"
|
||||
}
|
||||
],
|
||||
"description": "Support for import.meta in acorn",
|
||||
"devDependencies": {
|
||||
"acorn": "^7.0.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"mocha": "^7.1.1",
|
||||
"test262": "git+https://github.com/tc39/test262.git#57fa74b170e9554bfe89a29c10de2447fe7d3b27",
|
||||
"test262-parser-runner": "^0.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.8.2"
|
||||
},
|
||||
"homepage": "https://github.com/adrianheine/acorn-import-meta",
|
||||
"license": "MIT",
|
||||
"name": "acorn-import-meta",
|
||||
"peerDependencies": {
|
||||
"acorn": "^6.0.0 || ^7.0.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/adrianheine/acorn-import-meta.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint -c .eslintrc.json .",
|
||||
"test": "mocha",
|
||||
"test:test262": "node run_test262.js"
|
||||
},
|
||||
"version": "1.1.0"
|
||||
}
|
27
node_modules/acorn-import-meta/run_test262.js
generated
vendored
Normal file
27
node_modules/acorn-import-meta/run_test262.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict"
|
||||
|
||||
const path = require("path")
|
||||
const run = require("test262-parser-runner")
|
||||
const acorn = require("acorn")
|
||||
const acornImportMeta = require(".")
|
||||
const Parser = acorn.Parser.extend(acornImportMeta)
|
||||
|
||||
const unsupportedFeatures = [
|
||||
"BigInt",
|
||||
"class-fields",
|
||||
"class-fields-private",
|
||||
"class-fields-public",
|
||||
"dynamic-import",
|
||||
"optional-catch-binding",
|
||||
"regexp-lookbehind",
|
||||
"regexp-named-groups",
|
||||
"regexp-unicode-property-escapes"
|
||||
]
|
||||
|
||||
run(
|
||||
(content, options) => Parser.parse(content, {sourceType: options.sourceType, ecmaVersion: 10}),
|
||||
{
|
||||
testsDirectory: path.dirname(require.resolve("test262/package.json")),
|
||||
skip: test => !test.attrs.features || !test.attrs.features.includes("import.meta") || unsupportedFeatures.some(f => test.attrs.features.includes(f)),
|
||||
}
|
||||
)
|
5
node_modules/acorn-import-meta/test/.eslintrc.json
generated
vendored
Normal file
5
node_modules/acorn-import-meta/test/.eslintrc.json
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"env": {
|
||||
"mocha": true
|
||||
}
|
||||
}
|
245
node_modules/acorn-import-meta/test/test.js
generated
vendored
Normal file
245
node_modules/acorn-import-meta/test/test.js
generated
vendored
Normal file
@@ -0,0 +1,245 @@
|
||||
"use strict"
|
||||
|
||||
const assert = require("assert")
|
||||
const acorn = require("acorn")
|
||||
const importMeta = require("..")
|
||||
const Parser = acorn.Parser.extend(importMeta)
|
||||
|
||||
function testFail(text, expectedError, additionalOptions) {
|
||||
it(text, function () {
|
||||
let failed = false
|
||||
try {
|
||||
Parser.parse(text, Object.assign({ ecmaVersion: 9, sourceType: "module" }, additionalOptions))
|
||||
} catch (e) {
|
||||
if (expectedError) assert.strictEqual(e.message, expectedError)
|
||||
failed = true
|
||||
}
|
||||
assert(failed)
|
||||
})
|
||||
}
|
||||
function test(text, expectedResult, additionalOptions) {
|
||||
it(text, function () {
|
||||
const result = Parser.parse(text, Object.assign({ ecmaVersion: 9, sourceType: "module" }, additionalOptions))
|
||||
assert.deepStrictEqual(result, expectedResult)
|
||||
})
|
||||
testFail(text, null, { sourceType: "script" })
|
||||
}
|
||||
|
||||
const newNode = (start, props) => Object.assign(new acorn.Node({options: {}}, start), props)
|
||||
|
||||
describe("acorn-import-meta", function () {
|
||||
test("const response = fetch(import.meta.url);", newNode(0, {
|
||||
type: "Program",
|
||||
end: 40,
|
||||
body: [
|
||||
newNode(0, {
|
||||
type: "VariableDeclaration",
|
||||
end: 40,
|
||||
declarations: [
|
||||
newNode(6, {
|
||||
type: "VariableDeclarator",
|
||||
end: 39,
|
||||
id: newNode(6, {
|
||||
type: "Identifier",
|
||||
end: 14,
|
||||
name: "response"
|
||||
}),
|
||||
init: newNode(17, {
|
||||
type: "CallExpression",
|
||||
end: 39,
|
||||
callee: newNode(17, {
|
||||
type: "Identifier",
|
||||
end: 22,
|
||||
name: "fetch"
|
||||
}),
|
||||
arguments: [
|
||||
newNode(23, {
|
||||
type: "MemberExpression",
|
||||
end: 38,
|
||||
object: newNode(23, {
|
||||
type: "MetaProperty",
|
||||
end: 34,
|
||||
meta: newNode(23, {
|
||||
type: "Identifier",
|
||||
end: 29,
|
||||
name: "import"
|
||||
}),
|
||||
property: newNode(30, {
|
||||
type: "Identifier",
|
||||
end: 34,
|
||||
name: "meta"
|
||||
})
|
||||
}),
|
||||
property: newNode(35, {
|
||||
type: "Identifier",
|
||||
end: 38,
|
||||
name: "url"
|
||||
}),
|
||||
computed: false
|
||||
})
|
||||
]
|
||||
})
|
||||
})
|
||||
],
|
||||
kind: "const"
|
||||
})
|
||||
],
|
||||
sourceType: "module"
|
||||
}))
|
||||
test("const size = import.meta.scriptElement.dataset.size || 300;", newNode(0, {
|
||||
type: "Program",
|
||||
end: 59,
|
||||
body: [
|
||||
newNode(0, {
|
||||
type: "VariableDeclaration",
|
||||
end: 59,
|
||||
declarations: [
|
||||
newNode(6, {
|
||||
type: "VariableDeclarator",
|
||||
end: 58,
|
||||
id: newNode(6, {
|
||||
type: "Identifier",
|
||||
end: 10,
|
||||
name: "size"
|
||||
}),
|
||||
init: newNode(13, {
|
||||
type: "LogicalExpression",
|
||||
end: 58,
|
||||
left: newNode(13, {
|
||||
type: "MemberExpression",
|
||||
end: 51,
|
||||
object: newNode(13, {
|
||||
type: "MemberExpression",
|
||||
end: 46,
|
||||
object: newNode(13, {
|
||||
type: "MemberExpression",
|
||||
end: 38,
|
||||
object: newNode(13, {
|
||||
type: "MetaProperty",
|
||||
end: 24,
|
||||
meta: newNode(13, {
|
||||
type: "Identifier",
|
||||
end: 19,
|
||||
name: "import"
|
||||
}),
|
||||
property: newNode(20, {
|
||||
type: "Identifier",
|
||||
end: 24,
|
||||
name: "meta"
|
||||
})
|
||||
}),
|
||||
property: newNode(25, {
|
||||
type: "Identifier",
|
||||
end: 38,
|
||||
name: "scriptElement"
|
||||
}),
|
||||
computed: false
|
||||
}),
|
||||
property: newNode(39, {
|
||||
type: "Identifier",
|
||||
end: 46,
|
||||
name: "dataset"
|
||||
}),
|
||||
computed: false
|
||||
}),
|
||||
property: newNode(47, {
|
||||
type: "Identifier",
|
||||
end: 51,
|
||||
name: "size"
|
||||
}),
|
||||
computed: false
|
||||
}),
|
||||
operator: "||",
|
||||
right: newNode(55, {
|
||||
type: "Literal",
|
||||
end: 58,
|
||||
value: 300,
|
||||
raw: "300"
|
||||
})
|
||||
})
|
||||
})
|
||||
],
|
||||
kind: "const"
|
||||
})
|
||||
],
|
||||
sourceType: "module"
|
||||
}))
|
||||
test("import.meta.resolve('something')", newNode(0, {
|
||||
type: "Program",
|
||||
end: 32,
|
||||
body: [
|
||||
newNode(0, {
|
||||
type: "ExpressionStatement",
|
||||
end: 32,
|
||||
expression: newNode(0, {
|
||||
type: "CallExpression",
|
||||
end: 32,
|
||||
callee: newNode(0, {
|
||||
type: "MemberExpression",
|
||||
end: 19,
|
||||
object: newNode(0, {
|
||||
type: "MetaProperty",
|
||||
end: 11,
|
||||
meta: newNode(0, {
|
||||
type: "Identifier",
|
||||
end: 6,
|
||||
name: "import"
|
||||
}),
|
||||
property: newNode(7, {
|
||||
type: "Identifier",
|
||||
end: 11,
|
||||
name: "meta"
|
||||
})
|
||||
}),
|
||||
property: newNode(12, {
|
||||
type: "Identifier",
|
||||
end: 19,
|
||||
name: "resolve"
|
||||
}),
|
||||
computed: false
|
||||
}),
|
||||
arguments: [
|
||||
newNode(20, {
|
||||
type: "Literal",
|
||||
end: 31,
|
||||
value: "something",
|
||||
raw: "'something'"
|
||||
})
|
||||
]
|
||||
})
|
||||
})
|
||||
],
|
||||
sourceType: "module"
|
||||
}))
|
||||
|
||||
test("import x from 'y'", newNode(0, {
|
||||
type: "Program",
|
||||
end: 17,
|
||||
body: [
|
||||
newNode(0, {
|
||||
type: "ImportDeclaration",
|
||||
end: 17,
|
||||
specifiers: [
|
||||
newNode(7, {
|
||||
type: "ImportDefaultSpecifier",
|
||||
end: 8,
|
||||
local: newNode(7, {
|
||||
type: "Identifier",
|
||||
end: 8,
|
||||
name: "x"
|
||||
})
|
||||
})
|
||||
],
|
||||
source: newNode(14, {
|
||||
type: "Literal",
|
||||
end: 17,
|
||||
value: "y",
|
||||
raw: "'y'"
|
||||
})
|
||||
})
|
||||
],
|
||||
sourceType: "module"
|
||||
}))
|
||||
testFail("let x = import.anotherMeta", "The only valid meta property for import is import.meta (1:15)")
|
||||
testFail("import.m\\u0065ta;", "\"meta\" in import.meta must not contain escape sequences (1:7)")
|
||||
})
|
Reference in New Issue
Block a user