Provide dynamic operations currying for Algebra<T> instead of eager calls and add JS code generation support #162

Merged
CommanderTvis merged 44 commits from feature/dynamic-ops-currying into dev 2021-01-05 16:36:51 +03:00
14 changed files with 230 additions and 260 deletions
Showing only changes of commit 4294bc1b97 - Show all commits

View File

@ -1,17 +0,0 @@
@file:JsQualifier("global")
@file:Suppress(
"INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation", "PackageDirectoryMismatch", "ClassName"
)
package global
import Generator
@Suppress("EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE")
external interface astring {
var generate: (dynamic, dynamic) -> dynamic
var baseGenerator: Generator
companion object : astring by definedExternally
}

View File

@ -1,3 +0,0 @@
@file:Suppress("NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation")
typealias Generator = Any

View File

@ -1,67 +0,0 @@
@file:Suppress(
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation",
"NO_EXPLICIT_RETURN_TYPE_IN_API_MODE_WARNING", "PackageDirectoryMismatch"
)
package estree
fun Program(sourceType: String, vararg body: dynamic) = object : Program {
override var type = "Program"
override var sourceType = sourceType
override var body = body
}
fun VariableDeclaration(kind: String, vararg declarations: VariableDeclarator) = object : VariableDeclaration {
override var type = "VariableDeclaration"
override var declarations = declarations.toList().toTypedArray()
override var kind = kind
}
fun VariableDeclarator(id: dynamic, init: dynamic) = object : VariableDeclarator {
override var type = "VariableDeclarator"
override var id = id
override var init = init
}
fun Identifier(name: String) = object : Identifier {
override var type = "Identifier"
override var name = name
}
fun FunctionExpression(params: Array<dynamic>, body: BlockStatement) = object : FunctionExpression {
override var params = params
override var type = "FunctionExpression"
override var body = body
}
fun BlockStatement(vararg body: dynamic) = object : BlockStatement {
override var type = "BlockStatement"
override var body = body
}
fun ReturnStatement(argument: dynamic) = object : ReturnStatement {
override var type = "ReturnStatement"
override var argument = argument
}
fun SimpleLiteral(value: dynamic) = object : SimpleLiteral {
override var type = "Literal"
override var value = value
}
fun MemberExpression(computed: Boolean, optional: Boolean, `object`: dynamic, property: dynamic) =
object : MemberExpression {
override var type = "MemberExpression"
override var computed = computed
override var optional = optional
override var `object` = `object`
override var property = property
}
fun SimpleCallExpression(optional: Boolean, callee: dynamic, vararg arguments: dynamic) =
object : SimpleCallExpression {
override var type = "CallExpression"
override var optional = optional
override var callee = callee
override var arguments = arguments
}

View File

@ -1,18 +1,29 @@
package kscience.kmath.estree.internal package kscience.kmath.estree.internal
import astring.generate import kscience.kmath.estree.internal.astring.generate
import estree.* import estree.*
import kscience.kmath.estree.internal.estree.*
import kscience.kmath.estree.internal.estree.BlockStatement
import kscience.kmath.estree.internal.estree.FunctionExpression
import kscience.kmath.estree.internal.estree.Identifier
import kscience.kmath.estree.internal.estree.MemberExpression
import kscience.kmath.estree.internal.estree.Program
import kscience.kmath.estree.internal.estree.ReturnStatement
import kscience.kmath.estree.internal.estree.SimpleCallExpression
import kscience.kmath.estree.internal.estree.SimpleLiteral
import kscience.kmath.estree.internal.estree.VariableDeclaration
import kscience.kmath.estree.internal.estree.VariableDeclarator
import kscience.kmath.expressions.Expression import kscience.kmath.expressions.Expression
import kscience.kmath.expressions.Symbol import kscience.kmath.expressions.Symbol
internal class JSBuilder<T>(val bodyCallback: JSBuilder<T>.() -> BaseExpression) { internal class JSBuilder<T>(val bodyCallback: JSBuilder<T>.() -> BaseExpression) {
private class GeneratedExpression<T>(val executable: dynamic, val constants: Array<dynamic>) : Expression<T> { private class GeneratedExpression<T>(val executable: dynamic, val constants: Array<dynamic>) : Expression<T> {
@Suppress("UNUSED_VARIABLE", "PARAMETER_NAME_CHANGED_ON_OVERRIDE") @Suppress("UNUSED_VARIABLE", "PARAMETER_NAME_CHANGED_ON_OVERRIDE")
override fun invoke(map: Map<Symbol, T>): T { override fun invoke(arguments: Map<Symbol, T>): T {
val e = executable val e = executable
val c = constants val c = constants
val a = js("{}") val a = js("{}")
map.forEach { (key, value) -> a[key.identity] = value } arguments.forEach { (key, value) -> a[key.identity] = value }
return js("e(c, a)").unsafeCast<T>() return js("e(c, a)").unsafeCast<T>()
} }
} }

View File

@ -1,16 +1,11 @@
@file:Suppress(
"INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation", "PackageDirectoryMismatch"
)
@file:JsModule("astring") @file:JsModule("astring")
@file:JsNonModule @file:JsNonModule
package astring
import Generator package kscience.kmath.estree.internal.astring
import estree.BaseNode import estree.BaseNode
external interface Options { internal external interface Options {
var indent: String? var indent: String?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
@ -31,8 +26,8 @@ external interface Options {
set(value) = definedExternally set(value) = definedExternally
} }
external fun generate(node: BaseNode, options: Options /* Options & `T$0` */ = definedExternally): String internal external fun generate(node: BaseNode, options: Options /* Options & `T$0` */ = definedExternally): String
external fun generate(node: BaseNode): String internal external fun generate(node: BaseNode): String
external var baseGenerator: Generator internal external var baseGenerator: Generator

View File

@ -0,0 +1,3 @@
package kscience.kmath.estree.internal.astring
internal typealias Generator = Any

View File

@ -1,14 +1,6 @@
@file:Suppress( package kscience.kmath.estree.internal.emitter
"INTERFACE_WITH_SUPERCLASS",
"OVERRIDING_FINAL_MEMBER",
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
"CONFLICTING_OVERLOADS", "NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation", "SortModifiers",
"PackageDirectoryMismatch"
)
package emitter internal open external class Emitter {
external open class Emitter {
constructor(obj: Any) constructor(obj: Any)
constructor() constructor()

View File

@ -0,0 +1,74 @@
package kscience.kmath.estree.internal.estree
import estree.*
import estree.BlockStatement
import estree.FunctionExpression
import estree.Identifier
import estree.MemberExpression
import estree.Program
import estree.ReturnStatement
import estree.SimpleCallExpression
import estree.SimpleLiteral
import estree.VariableDeclaration
import estree.VariableDeclarator
internal fun Program(sourceType: String, vararg body: dynamic) = object : Program {
override var type = "Program"
override var sourceType = sourceType
override var body = body
}
internal fun VariableDeclaration(kind: String, vararg declarations: VariableDeclarator) = object : VariableDeclaration {
override var type = "VariableDeclaration"
override var declarations = declarations.toList().toTypedArray()
override var kind = kind
}
internal fun VariableDeclarator(id: dynamic, init: dynamic) = object : VariableDeclarator {
override var type = "VariableDeclarator"
override var id = id
override var init = init
}
internal fun Identifier(name: String) = object : Identifier {
override var type = "Identifier"
override var name = name
}
internal fun FunctionExpression(params: Array<dynamic>, body: BlockStatement) = object : FunctionExpression {
override var params = params
override var type = "FunctionExpression"
override var body = body
}
internal fun BlockStatement(vararg body: dynamic) = object : BlockStatement {
override var type = "BlockStatement"
override var body = body
}
internal fun ReturnStatement(argument: dynamic) = object : ReturnStatement {
override var type = "ReturnStatement"
override var argument = argument
}
internal fun SimpleLiteral(value: dynamic) = object : SimpleLiteral {
override var type = "Literal"
override var value = value
}
internal fun MemberExpression(computed: Boolean, optional: Boolean, `object`: dynamic, property: dynamic) =
object : MemberExpression {
override var type = "MemberExpression"
override var computed = computed
override var optional = optional
override var `object` = `object`
override var property = property
}
internal fun SimpleCallExpression(optional: Boolean, callee: dynamic, vararg arguments: dynamic) =
object : SimpleCallExpression {
override var type = "CallExpression"
override var optional = optional
override var callee = callee
override var arguments = arguments
}

View File

@ -1,13 +1,8 @@
@file:Suppress(
"INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation", "ClassName", "PackageDirectoryMismatch",
)
package estree package estree
import kotlin.js.RegExp import kotlin.js.RegExp
external interface BaseNodeWithoutComments { internal external interface BaseNodeWithoutComments {
var type: String var type: String
var loc: SourceLocation? var loc: SourceLocation?
get() = definedExternally get() = definedExternally
@ -17,7 +12,7 @@ external interface BaseNodeWithoutComments {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BaseNode : BaseNodeWithoutComments { internal external interface BaseNode : BaseNodeWithoutComments {
var leadingComments: Array<Comment>? var leadingComments: Array<Comment>?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
@ -26,12 +21,12 @@ external interface BaseNode : BaseNodeWithoutComments {
set(value) = definedExternally set(value) = definedExternally
} }
external interface Comment : BaseNodeWithoutComments { internal external interface Comment : BaseNodeWithoutComments {
override var type: String /* "Line" | "Block" */ override var type: String /* "Line" | "Block" */
var value: String var value: String
} }
external interface SourceLocation { internal external interface SourceLocation {
var source: String? var source: String?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
@ -39,12 +34,12 @@ external interface SourceLocation {
var end: Position var end: Position
} }
external interface Position { internal external interface Position {
var line: Number var line: Number
var column: Number var column: Number
} }
external interface Program : BaseNode { internal external interface Program : BaseNode {
override var type: String /* "Program" */ override var type: String /* "Program" */
var sourceType: String /* "script" | "module" */ var sourceType: String /* "script" | "module" */
var body: Array<dynamic /* Directive | ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration | ImportDeclaration | ExportNamedDeclaration | ExportDefaultDeclaration | ExportAllDeclaration */> var body: Array<dynamic /* Directive | ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration | ImportDeclaration | ExportNamedDeclaration | ExportDefaultDeclaration | ExportAllDeclaration */>
@ -53,7 +48,7 @@ external interface Program : BaseNode {
set(value) = definedExternally set(value) = definedExternally
} }
external interface Directive : BaseNode { internal external interface Directive : BaseNode {
override var type: String /* "ExpressionStatement" */ override var type: String /* "ExpressionStatement" */
var expression: dynamic /* SimpleLiteral | RegExpLiteral */ var expression: dynamic /* SimpleLiteral | RegExpLiteral */
get() = definedExternally get() = definedExternally
@ -61,7 +56,7 @@ external interface Directive : BaseNode {
var directive: String var directive: String
} }
external interface BaseFunction : BaseNode { internal external interface BaseFunction : BaseNode {
var params: Array<dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */> var params: Array<dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */>
var generator: Boolean? var generator: Boolean?
get() = definedExternally get() = definedExternally
@ -74,13 +69,13 @@ external interface BaseFunction : BaseNode {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BaseStatement : BaseNode internal external interface BaseStatement : BaseNode
external interface EmptyStatement : BaseStatement { internal external interface EmptyStatement : BaseStatement {
override var type: String /* "EmptyStatement" */ override var type: String /* "EmptyStatement" */
} }
external interface BlockStatement : BaseStatement { internal external interface BlockStatement : BaseStatement {
override var type: String /* "BlockStatement" */ override var type: String /* "BlockStatement" */
var body: Array<dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */> var body: Array<dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */>
var innerComments: Array<Comment>? var innerComments: Array<Comment>?
@ -88,14 +83,14 @@ external interface BlockStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ExpressionStatement : BaseStatement { internal external interface ExpressionStatement : BaseStatement {
override var type: String /* "ExpressionStatement" */ override var type: String /* "ExpressionStatement" */
var expression: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var expression: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface IfStatement : BaseStatement { internal external interface IfStatement : BaseStatement {
override var type: String /* "IfStatement" */ override var type: String /* "IfStatement" */
var test: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var test: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -108,7 +103,7 @@ external interface IfStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface LabeledStatement : BaseStatement { internal external interface LabeledStatement : BaseStatement {
override var type: String /* "LabeledStatement" */ override var type: String /* "LabeledStatement" */
var label: Identifier var label: Identifier
var body: dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */ var body: dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */
@ -116,21 +111,21 @@ external interface LabeledStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BreakStatement : BaseStatement { internal external interface BreakStatement : BaseStatement {
override var type: String /* "BreakStatement" */ override var type: String /* "BreakStatement" */
var label: Identifier? var label: Identifier?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface ContinueStatement : BaseStatement { internal external interface ContinueStatement : BaseStatement {
override var type: String /* "ContinueStatement" */ override var type: String /* "ContinueStatement" */
var label: Identifier? var label: Identifier?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface WithStatement : BaseStatement { internal external interface WithStatement : BaseStatement {
override var type: String /* "WithStatement" */ override var type: String /* "WithStatement" */
var `object`: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var `object`: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -140,7 +135,7 @@ external interface WithStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface SwitchStatement : BaseStatement { internal external interface SwitchStatement : BaseStatement {
override var type: String /* "SwitchStatement" */ override var type: String /* "SwitchStatement" */
var discriminant: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var discriminant: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -148,21 +143,21 @@ external interface SwitchStatement : BaseStatement {
var cases: Array<SwitchCase> var cases: Array<SwitchCase>
} }
external interface ReturnStatement : BaseStatement { internal external interface ReturnStatement : BaseStatement {
override var type: String /* "ReturnStatement" */ override var type: String /* "ReturnStatement" */
var argument: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */ var argument: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface ThrowStatement : BaseStatement { internal external interface ThrowStatement : BaseStatement {
override var type: String /* "ThrowStatement" */ override var type: String /* "ThrowStatement" */
var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface TryStatement : BaseStatement { internal external interface TryStatement : BaseStatement {
override var type: String /* "TryStatement" */ override var type: String /* "TryStatement" */
var block: BlockStatement var block: BlockStatement
var handler: CatchClause? var handler: CatchClause?
@ -173,7 +168,7 @@ external interface TryStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface WhileStatement : BaseStatement { internal external interface WhileStatement : BaseStatement {
override var type: String /* "WhileStatement" */ override var type: String /* "WhileStatement" */
var test: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var test: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -183,7 +178,7 @@ external interface WhileStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface DoWhileStatement : BaseStatement { internal external interface DoWhileStatement : BaseStatement {
override var type: String /* "DoWhileStatement" */ override var type: String /* "DoWhileStatement" */
var body: dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */ var body: dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */
get() = definedExternally get() = definedExternally
@ -193,7 +188,7 @@ external interface DoWhileStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ForStatement : BaseStatement { internal external interface ForStatement : BaseStatement {
override var type: String /* "ForStatement" */ override var type: String /* "ForStatement" */
var init: dynamic /* VariableDeclaration? | ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */ var init: dynamic /* VariableDeclaration? | ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */
get() = definedExternally get() = definedExternally
@ -209,7 +204,7 @@ external interface ForStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BaseForXStatement : BaseStatement { internal external interface BaseForXStatement : BaseStatement {
var left: dynamic /* VariableDeclaration | Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */ var left: dynamic /* VariableDeclaration | Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
@ -221,29 +216,29 @@ external interface BaseForXStatement : BaseStatement {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ForInStatement : BaseForXStatement { internal external interface ForInStatement : BaseForXStatement {
override var type: String /* "ForInStatement" */ override var type: String /* "ForInStatement" */
} }
external interface DebuggerStatement : BaseStatement { internal external interface DebuggerStatement : BaseStatement {
override var type: String /* "DebuggerStatement" */ override var type: String /* "DebuggerStatement" */
} }
external interface BaseDeclaration : BaseStatement internal external interface BaseDeclaration : BaseStatement
external interface FunctionDeclaration : BaseFunction, BaseDeclaration { internal external interface FunctionDeclaration : BaseFunction, BaseDeclaration {
override var type: String /* "FunctionDeclaration" */ override var type: String /* "FunctionDeclaration" */
var id: Identifier? var id: Identifier?
override var body: BlockStatement override var body: BlockStatement
} }
external interface VariableDeclaration : BaseDeclaration { internal external interface VariableDeclaration : BaseDeclaration {
override var type: String /* "VariableDeclaration" */ override var type: String /* "VariableDeclaration" */
var declarations: Array<VariableDeclarator> var declarations: Array<VariableDeclarator>
var kind: String /* "var" | "let" | "const" */ var kind: String /* "var" | "let" | "const" */
} }
external interface VariableDeclarator : BaseNode { internal external interface VariableDeclarator : BaseNode {
override var type: String /* "VariableDeclarator" */ override var type: String /* "VariableDeclarator" */
var id: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */ var id: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */
get() = definedExternally get() = definedExternally
@ -253,30 +248,30 @@ external interface VariableDeclarator : BaseNode {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BaseExpression : BaseNode internal external interface BaseExpression : BaseNode
external interface ChainExpression : BaseExpression { internal external interface ChainExpression : BaseExpression {
override var type: String /* "ChainExpression" */ override var type: String /* "ChainExpression" */
var expression: dynamic /* SimpleCallExpression | MemberExpression */ var expression: dynamic /* SimpleCallExpression | MemberExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface ThisExpression : BaseExpression { internal external interface ThisExpression : BaseExpression {
override var type: String /* "ThisExpression" */ override var type: String /* "ThisExpression" */
} }
external interface ArrayExpression : BaseExpression { internal external interface ArrayExpression : BaseExpression {
override var type: String /* "ArrayExpression" */ override var type: String /* "ArrayExpression" */
var elements: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | SpreadElement */> var elements: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | SpreadElement */>
} }
external interface ObjectExpression : BaseExpression { internal external interface ObjectExpression : BaseExpression {
override var type: String /* "ObjectExpression" */ override var type: String /* "ObjectExpression" */
var properties: Array<dynamic /* Property | SpreadElement */> var properties: Array<dynamic /* Property | SpreadElement */>
} }
external interface Property : BaseNode { internal external interface Property : BaseNode {
override var type: String /* "Property" */ override var type: String /* "Property" */
var key: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var key: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -290,7 +285,7 @@ external interface Property : BaseNode {
var computed: Boolean var computed: Boolean
} }
external interface FunctionExpression : BaseFunction, BaseExpression { internal external interface FunctionExpression : BaseFunction, BaseExpression {
var id: Identifier? var id: Identifier?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
@ -298,12 +293,12 @@ external interface FunctionExpression : BaseFunction, BaseExpression {
override var body: BlockStatement override var body: BlockStatement
} }
external interface SequenceExpression : BaseExpression { internal external interface SequenceExpression : BaseExpression {
override var type: String /* "SequenceExpression" */ override var type: String /* "SequenceExpression" */
var expressions: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */> var expressions: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */>
} }
external interface UnaryExpression : BaseExpression { internal external interface UnaryExpression : BaseExpression {
override var type: String /* "UnaryExpression" */ override var type: String /* "UnaryExpression" */
var operator: String /* "-" | "+" | "!" | "~" | "typeof" | "void" | "delete" */ var operator: String /* "-" | "+" | "!" | "~" | "typeof" | "void" | "delete" */
var prefix: Boolean var prefix: Boolean
@ -312,7 +307,7 @@ external interface UnaryExpression : BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BinaryExpression : BaseExpression { internal external interface BinaryExpression : BaseExpression {
override var type: String /* "BinaryExpression" */ override var type: String /* "BinaryExpression" */
var operator: String /* "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "**" | "|" | "^" | "&" | "in" | "instanceof" */ var operator: String /* "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "**" | "|" | "^" | "&" | "in" | "instanceof" */
var left: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var left: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
@ -323,7 +318,7 @@ external interface BinaryExpression : BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface AssignmentExpression : BaseExpression { internal external interface AssignmentExpression : BaseExpression {
override var type: String /* "AssignmentExpression" */ override var type: String /* "AssignmentExpression" */
var operator: String /* "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "**=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" */ var operator: String /* "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "**=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" */
var left: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */ var left: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */
@ -334,7 +329,7 @@ external interface AssignmentExpression : BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface UpdateExpression : BaseExpression { internal external interface UpdateExpression : BaseExpression {
override var type: String /* "UpdateExpression" */ override var type: String /* "UpdateExpression" */
var operator: String /* "++" | "--" */ var operator: String /* "++" | "--" */
var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
@ -343,7 +338,7 @@ external interface UpdateExpression : BaseExpression {
var prefix: Boolean var prefix: Boolean
} }
external interface LogicalExpression : BaseExpression { internal external interface LogicalExpression : BaseExpression {
override var type: String /* "LogicalExpression" */ override var type: String /* "LogicalExpression" */
var operator: String /* "||" | "&&" | "??" */ var operator: String /* "||" | "&&" | "??" */
var left: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var left: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
@ -354,7 +349,7 @@ external interface LogicalExpression : BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ConditionalExpression : BaseExpression { internal external interface ConditionalExpression : BaseExpression {
override var type: String /* "ConditionalExpression" */ override var type: String /* "ConditionalExpression" */
var test: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var test: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -367,23 +362,23 @@ external interface ConditionalExpression : BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BaseCallExpression : BaseExpression { internal external interface BaseCallExpression : BaseExpression {
var callee: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | Super */ var callee: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | Super */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
var arguments: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | SpreadElement */> var arguments: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | SpreadElement */>
} }
external interface SimpleCallExpression : BaseCallExpression { internal external interface SimpleCallExpression : BaseCallExpression {
override var type: String /* "CallExpression" */ override var type: String /* "CallExpression" */
var optional: Boolean var optional: Boolean
} }
external interface NewExpression : BaseCallExpression { internal external interface NewExpression : BaseCallExpression {
override var type: String /* "NewExpression" */ override var type: String /* "NewExpression" */
} }
external interface MemberExpression : BaseExpression, BasePattern { internal external interface MemberExpression : BaseExpression, BasePattern {
override var type: String /* "MemberExpression" */ override var type: String /* "MemberExpression" */
var `object`: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | Super */ var `object`: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression | Super */
get() = definedExternally get() = definedExternally
@ -395,9 +390,9 @@ external interface MemberExpression : BaseExpression, BasePattern {
var optional: Boolean var optional: Boolean
} }
external interface BasePattern : BaseNode internal external interface BasePattern : BaseNode
external interface SwitchCase : BaseNode { internal external interface SwitchCase : BaseNode {
override var type: String /* "SwitchCase" */ override var type: String /* "SwitchCase" */
var test: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */ var test: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */
get() = definedExternally get() = definedExternally
@ -405,7 +400,7 @@ external interface SwitchCase : BaseNode {
var consequent: Array<dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */> var consequent: Array<dynamic /* ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | FunctionDeclaration | VariableDeclaration | ClassDeclaration */>
} }
external interface CatchClause : BaseNode { internal external interface CatchClause : BaseNode {
override var type: String /* "CatchClause" */ override var type: String /* "CatchClause" */
var param: dynamic /* Identifier? | ObjectPattern? | ArrayPattern? | RestElement? | AssignmentPattern? | MemberExpression? */ var param: dynamic /* Identifier? | ObjectPattern? | ArrayPattern? | RestElement? | AssignmentPattern? | MemberExpression? */
get() = definedExternally get() = definedExternally
@ -413,12 +408,12 @@ external interface CatchClause : BaseNode {
var body: BlockStatement var body: BlockStatement
} }
external interface Identifier : BaseNode, BaseExpression, BasePattern { internal external interface Identifier : BaseNode, BaseExpression, BasePattern {
override var type: String /* "Identifier" */ override var type: String /* "Identifier" */
var name: String var name: String
} }
external interface SimpleLiteral : BaseNode, BaseExpression { internal external interface SimpleLiteral : BaseNode, BaseExpression {
override var type: String /* "Literal" */ override var type: String /* "Literal" */
var value: dynamic /* String? | Boolean? | Number? */ var value: dynamic /* String? | Boolean? | Number? */
get() = definedExternally get() = definedExternally
@ -428,12 +423,12 @@ external interface SimpleLiteral : BaseNode, BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface `T$1` { internal external interface `T$1` {
var pattern: String var pattern: String
var flags: String var flags: String
} }
external interface RegExpLiteral : BaseNode, BaseExpression { internal external interface RegExpLiteral : BaseNode, BaseExpression {
override var type: String /* "Literal" */ override var type: String /* "Literal" */
var value: RegExp? var value: RegExp?
get() = definedExternally get() = definedExternally
@ -444,23 +439,23 @@ external interface RegExpLiteral : BaseNode, BaseExpression {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ForOfStatement : BaseForXStatement { internal external interface ForOfStatement : BaseForXStatement {
override var type: String /* "ForOfStatement" */ override var type: String /* "ForOfStatement" */
var await: Boolean var await: Boolean
} }
external interface Super : BaseNode { internal external interface Super : BaseNode {
override var type: String /* "Super" */ override var type: String /* "Super" */
} }
external interface SpreadElement : BaseNode { internal external interface SpreadElement : BaseNode {
override var type: String /* "SpreadElement" */ override var type: String /* "SpreadElement" */
var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface ArrowFunctionExpression : BaseExpression, BaseFunction { internal external interface ArrowFunctionExpression : BaseExpression, BaseFunction {
override var type: String /* "ArrowFunctionExpression" */ override var type: String /* "ArrowFunctionExpression" */
var expression: Boolean var expression: Boolean
override var body: dynamic /* BlockStatement | ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ override var body: dynamic /* BlockStatement | ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
@ -468,7 +463,7 @@ external interface ArrowFunctionExpression : BaseExpression, BaseFunction {
set(value) = definedExternally set(value) = definedExternally
} }
external interface YieldExpression : BaseExpression { internal external interface YieldExpression : BaseExpression {
override var type: String /* "YieldExpression" */ override var type: String /* "YieldExpression" */
var argument: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */ var argument: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */
get() = definedExternally get() = definedExternally
@ -476,13 +471,13 @@ external interface YieldExpression : BaseExpression {
var delegate: Boolean var delegate: Boolean
} }
external interface TemplateLiteral : BaseExpression { internal external interface TemplateLiteral : BaseExpression {
override var type: String /* "TemplateLiteral" */ override var type: String /* "TemplateLiteral" */
var quasis: Array<TemplateElement> var quasis: Array<TemplateElement>
var expressions: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */> var expressions: Array<dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */>
} }
external interface TaggedTemplateExpression : BaseExpression { internal external interface TaggedTemplateExpression : BaseExpression {
override var type: String /* "TaggedTemplateExpression" */ override var type: String /* "TaggedTemplateExpression" */
var tag: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var tag: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -490,18 +485,18 @@ external interface TaggedTemplateExpression : BaseExpression {
var quasi: TemplateLiteral var quasi: TemplateLiteral
} }
external interface `T$2` { internal external interface `T$2` {
var cooked: String var cooked: String
var raw: String var raw: String
} }
external interface TemplateElement : BaseNode { internal external interface TemplateElement : BaseNode {
override var type: String /* "TemplateElement" */ override var type: String /* "TemplateElement" */
var tail: Boolean var tail: Boolean
var value: `T$2` var value: `T$2`
} }
external interface AssignmentProperty : Property { internal external interface AssignmentProperty : Property {
override var value: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */ override var value: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
@ -509,24 +504,24 @@ external interface AssignmentProperty : Property {
override var method: Boolean override var method: Boolean
} }
external interface ObjectPattern : BasePattern { internal external interface ObjectPattern : BasePattern {
override var type: String /* "ObjectPattern" */ override var type: String /* "ObjectPattern" */
var properties: Array<dynamic /* AssignmentProperty | RestElement */> var properties: Array<dynamic /* AssignmentProperty | RestElement */>
} }
external interface ArrayPattern : BasePattern { internal external interface ArrayPattern : BasePattern {
override var type: String /* "ArrayPattern" */ override var type: String /* "ArrayPattern" */
var elements: Array<dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */> var elements: Array<dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */>
} }
external interface RestElement : BasePattern { internal external interface RestElement : BasePattern {
override var type: String /* "RestElement" */ override var type: String /* "RestElement" */
var argument: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */ var argument: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface AssignmentPattern : BasePattern { internal external interface AssignmentPattern : BasePattern {
override var type: String /* "AssignmentPattern" */ override var type: String /* "AssignmentPattern" */
var left: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */ var left: dynamic /* Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression */
get() = definedExternally get() = definedExternally
@ -536,19 +531,19 @@ external interface AssignmentPattern : BasePattern {
set(value) = definedExternally set(value) = definedExternally
} }
external interface BaseClass : BaseNode { internal external interface BaseClass : BaseNode {
var superClass: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */ var superClass: dynamic /* ThisExpression? | ArrayExpression? | ObjectExpression? | FunctionExpression? | ArrowFunctionExpression? | YieldExpression? | SimpleLiteral? | RegExpLiteral? | UnaryExpression? | UpdateExpression? | BinaryExpression? | AssignmentExpression? | LogicalExpression? | MemberExpression? | ConditionalExpression? | SimpleCallExpression? | NewExpression? | SequenceExpression? | TemplateLiteral? | TaggedTemplateExpression? | ClassExpression? | MetaProperty? | Identifier? | AwaitExpression? | ImportExpression? | ChainExpression? */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
var body: ClassBody var body: ClassBody
} }
external interface ClassBody : BaseNode { internal external interface ClassBody : BaseNode {
override var type: String /* "ClassBody" */ override var type: String /* "ClassBody" */
var body: Array<MethodDefinition> var body: Array<MethodDefinition>
} }
external interface MethodDefinition : BaseNode { internal external interface MethodDefinition : BaseNode {
override var type: String /* "MethodDefinition" */ override var type: String /* "MethodDefinition" */
var key: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var key: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
@ -559,31 +554,31 @@ external interface MethodDefinition : BaseNode {
var static: Boolean var static: Boolean
} }
external interface ClassDeclaration : BaseClass, BaseDeclaration { internal external interface ClassDeclaration : BaseClass, BaseDeclaration {
override var type: String /* "ClassDeclaration" */ override var type: String /* "ClassDeclaration" */
var id: Identifier? var id: Identifier?
} }
external interface ClassExpression : BaseClass, BaseExpression { internal external interface ClassExpression : BaseClass, BaseExpression {
override var type: String /* "ClassExpression" */ override var type: String /* "ClassExpression" */
var id: Identifier? var id: Identifier?
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface MetaProperty : BaseExpression { internal external interface MetaProperty : BaseExpression {
override var type: String /* "MetaProperty" */ override var type: String /* "MetaProperty" */
var meta: Identifier var meta: Identifier
var property: Identifier var property: Identifier
} }
external interface BaseModuleDeclaration : BaseNode internal external interface BaseModuleDeclaration : BaseNode
external interface BaseModuleSpecifier : BaseNode { internal external interface BaseModuleSpecifier : BaseNode {
var local: Identifier var local: Identifier
} }
external interface ImportDeclaration : BaseModuleDeclaration { internal external interface ImportDeclaration : BaseModuleDeclaration {
override var type: String /* "ImportDeclaration" */ override var type: String /* "ImportDeclaration" */
var specifiers: Array<dynamic /* ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier */> var specifiers: Array<dynamic /* ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier */>
var source: dynamic /* SimpleLiteral | RegExpLiteral */ var source: dynamic /* SimpleLiteral | RegExpLiteral */
@ -591,27 +586,27 @@ external interface ImportDeclaration : BaseModuleDeclaration {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ImportSpecifier : BaseModuleSpecifier { internal external interface ImportSpecifier : BaseModuleSpecifier {
override var type: String /* "ImportSpecifier" */ override var type: String /* "ImportSpecifier" */
var imported: Identifier var imported: Identifier
} }
external interface ImportExpression : BaseExpression { internal external interface ImportExpression : BaseExpression {
override var type: String /* "ImportExpression" */ override var type: String /* "ImportExpression" */
var source: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var source: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface ImportDefaultSpecifier : BaseModuleSpecifier { internal external interface ImportDefaultSpecifier : BaseModuleSpecifier {
override var type: String /* "ImportDefaultSpecifier" */ override var type: String /* "ImportDefaultSpecifier" */
} }
external interface ImportNamespaceSpecifier : BaseModuleSpecifier { internal external interface ImportNamespaceSpecifier : BaseModuleSpecifier {
override var type: String /* "ImportNamespaceSpecifier" */ override var type: String /* "ImportNamespaceSpecifier" */
} }
external interface ExportNamedDeclaration : BaseModuleDeclaration { internal external interface ExportNamedDeclaration : BaseModuleDeclaration {
override var type: String /* "ExportNamedDeclaration" */ override var type: String /* "ExportNamedDeclaration" */
var declaration: dynamic /* FunctionDeclaration? | VariableDeclaration? | ClassDeclaration? */ var declaration: dynamic /* FunctionDeclaration? | VariableDeclaration? | ClassDeclaration? */
get() = definedExternally get() = definedExternally
@ -622,26 +617,26 @@ external interface ExportNamedDeclaration : BaseModuleDeclaration {
set(value) = definedExternally set(value) = definedExternally
} }
external interface ExportSpecifier : BaseModuleSpecifier { internal external interface ExportSpecifier : BaseModuleSpecifier {
override var type: String /* "ExportSpecifier" */ override var type: String /* "ExportSpecifier" */
var exported: Identifier var exported: Identifier
} }
external interface ExportDefaultDeclaration : BaseModuleDeclaration { internal external interface ExportDefaultDeclaration : BaseModuleDeclaration {
override var type: String /* "ExportDefaultDeclaration" */ override var type: String /* "ExportDefaultDeclaration" */
var declaration: dynamic /* FunctionDeclaration | VariableDeclaration | ClassDeclaration | ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var declaration: dynamic /* FunctionDeclaration | VariableDeclaration | ClassDeclaration | ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface ExportAllDeclaration : BaseModuleDeclaration { internal external interface ExportAllDeclaration : BaseModuleDeclaration {
override var type: String /* "ExportAllDeclaration" */ override var type: String /* "ExportAllDeclaration" */
var source: dynamic /* SimpleLiteral | RegExpLiteral */ var source: dynamic /* SimpleLiteral | RegExpLiteral */
get() = definedExternally get() = definedExternally
set(value) = definedExternally set(value) = definedExternally
} }
external interface AwaitExpression : BaseExpression { internal external interface AwaitExpression : BaseExpression {
override var type: String /* "AwaitExpression" */ override var type: String /* "AwaitExpression" */
var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */ var argument: dynamic /* ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | SimpleLiteral | RegExpLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | SimpleCallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression | ImportExpression | ChainExpression */
get() = definedExternally get() = definedExternally

View File

@ -0,0 +1,7 @@
package kscience.kmath.estree.internal.stream
import kscience.kmath.estree.internal.emitter.Emitter
internal open external class Stream : Emitter {
open fun pipe(dest: Any, options: Any): Any
}

View File

@ -0,0 +1,25 @@
package kscience.kmath.estree.internal.tsstdlib
internal external interface IteratorYieldResult<TYield> {
var done: Boolean?
get() = definedExternally
set(value) = definedExternally
var value: TYield
}
internal external interface IteratorReturnResult<TReturn> {
var done: Boolean
var value: TReturn
}
internal external interface Iterator<T, TReturn, TNext> {
fun next(vararg args: Any /* JsTuple<> | JsTuple<TNext> */): dynamic /* IteratorYieldResult<T> | IteratorReturnResult<TReturn> */
val `return`: ((value: TReturn) -> dynamic)?
val `throw`: ((e: Any) -> dynamic)?
}
internal typealias Iterator__1<T> = Iterator<T, Any, Nothing?>
internal external interface Iterable<T>
internal external interface IterableIterator<T> : Iterator__1<T>

View File

@ -1,18 +1,14 @@
@file:Suppress( @file:Suppress("UNUSED_TYPEALIAS_PARAMETER", "DEPRECATION")
"INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "DEPRECATION", "PackageDirectoryMismatch", "KDocMissingDocumentation",
"PropertyName"
)
package tsstdlib package kscience.kmath.estree.internal.tsstdlib
import kotlin.js.RegExp import kotlin.js.RegExp
typealias RegExpMatchArray = Array<String> internal typealias RegExpMatchArray = Array<String>
typealias RegExpExecArray = Array<String> internal typealias RegExpExecArray = Array<String>
external interface RegExpConstructor { internal external interface RegExpConstructor {
@nativeInvoke @nativeInvoke
operator fun invoke(pattern: RegExp, flags: String = definedExternally): RegExp operator fun invoke(pattern: RegExp, flags: String = definedExternally): RegExp
@ -37,7 +33,7 @@ external interface RegExpConstructor {
var lastMatch: String var lastMatch: String
} }
external interface ConcatArray<T> { internal external interface ConcatArray<T> {
var length: Number var length: Number
@nativeGetter @nativeGetter
@ -49,7 +45,7 @@ external interface ConcatArray<T> {
fun slice(start: Number = definedExternally, end: Number = definedExternally): Array<T> fun slice(start: Number = definedExternally, end: Number = definedExternally): Array<T>
} }
external interface ArrayConstructor { internal external interface ArrayConstructor {
fun <T> from(iterable: Iterable<T>): Array<T> fun <T> from(iterable: Iterable<T>): Array<T>
fun <T> from(iterable: ArrayLike<T>): Array<T> fun <T> from(iterable: ArrayLike<T>): Array<T>
fun <T, U> from(iterable: Iterable<T>, mapfn: (v: T, k: Number) -> U, thisArg: Any = definedExternally): Array<U> fun <T, U> from(iterable: Iterable<T>, mapfn: (v: T, k: Number) -> U, thisArg: Any = definedExternally): Array<U>
@ -73,7 +69,7 @@ external interface ArrayConstructor {
var prototype: Array<Any> var prototype: Array<Any>
} }
external interface ArrayLike<T> { internal external interface ArrayLike<T> {
var length: Number var length: Number
@nativeGetter @nativeGetter
@ -83,4 +79,4 @@ external interface ArrayLike<T> {
operator fun set(n: Number, value: T) operator fun set(n: Number, value: T)
} }
typealias Extract<T, U> = Any internal typealias Extract<T, U> = Any

View File

@ -1,28 +0,0 @@
@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "KDocMissingDocumentation", "PackageDirectoryMismatch"
)
package tsstdlib
external interface IteratorYieldResult<TYield> {
var done: Boolean?
get() = definedExternally
set(value) = definedExternally
var value: TYield
}
external interface IteratorReturnResult<TReturn> {
var done: Boolean
var value: TReturn
}
external interface Iterator<T, TReturn, TNext> {
fun next(vararg args: Any /* JsTuple<> | JsTuple<TNext> */): dynamic /* IteratorYieldResult<T> | IteratorReturnResult<TReturn> */
val `return`: ((value: TReturn) -> dynamic)?
val `throw`: ((e: Any) -> dynamic)?
}
typealias Iterator__1<T> = Iterator<T, Any, Nothing?>
external interface Iterable<T>
external interface IterableIterator<T> : Iterator__1<T>

View File

@ -1,13 +0,0 @@
@file:Suppress(
"INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING", "SortModifiers",
"KDocMissingDocumentation", "PackageDirectoryMismatch"
)
package stream
import emitter.Emitter
external open class Stream : Emitter {
open fun pipe(dest: Any, options: Any): Any
}