Add support for import typeof, fixes #1975
This commit is contained in:
parent
04a29f8344
commit
f757ca01a1
@ -791,16 +791,15 @@ acorn.plugins.flow = function (instance) {
|
||||
|
||||
instance.extend("parseImportSpecifiers", function (inner) {
|
||||
return function (node) {
|
||||
node.isType = false
|
||||
if (this.isContextual("type")) {
|
||||
var start = this.markPosition()
|
||||
var typeId = this.parseIdent()
|
||||
if ((this.type === tt.name && this.value !== "from") || this.type === tt.braceL || this.type === tt.star) {
|
||||
node.isType = true
|
||||
} else {
|
||||
node.specifiers.push(this.parseImportSpecifierDefault(typeId, start))
|
||||
if (this.isContextual("from")) return
|
||||
this.eat(tt.comma)
|
||||
node.importKind = "value"
|
||||
var kind =
|
||||
(this.type === tt._typeof ? "typeof" :
|
||||
(this.isContextual("type") ? "type" : null))
|
||||
if (kind) {
|
||||
var lh = this.lookahead()
|
||||
if ((lh.type === tt.name && lh.value !== "from") || lh.type === tt.braceL || lh.type === tt.star) {
|
||||
this.next()
|
||||
node.importKind = kind
|
||||
}
|
||||
}
|
||||
inner.call(this, node)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import {has, isArray} from "./util"
|
||||
import {has} from "./util"
|
||||
import {SourceLocation} from "./location"
|
||||
|
||||
// A second optional argument can be given to further configure
|
||||
@ -94,11 +94,11 @@ export function getOptions(opts) {
|
||||
for (let opt in defaultOptions)
|
||||
options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]
|
||||
|
||||
if (isArray(options.onToken)) {
|
||||
if (Array.isArray(options.onToken)) {
|
||||
let tokens = options.onToken
|
||||
options.onToken = (token) => tokens.push(token)
|
||||
}
|
||||
if (isArray(options.onComment))
|
||||
if (Array.isArray(options.onComment))
|
||||
options.onComment = pushComment(options, options.onComment)
|
||||
|
||||
return options
|
||||
|
||||
@ -1,7 +1,3 @@
|
||||
export function isArray(obj) {
|
||||
return Object.prototype.toString.call(obj) === "[object Array]"
|
||||
}
|
||||
|
||||
// Checks if an object has a property.
|
||||
|
||||
export function has(obj, propName) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user