firefly-compiler 0.4.36 → 0.4.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.hintrc +4 -4
- package/.vscode/settings.json +4 -4
- package/bin/Release.ff +99 -49
- package/bin/firefly.mjs +1 -1
- package/compiler/Builder.ff +257 -257
- package/compiler/Compiler.ff +227 -227
- package/compiler/Dependencies.ff +186 -186
- package/compiler/DependencyLock.ff +17 -17
- package/compiler/JsEmitter.ff +946 -946
- package/compiler/LspHook.ff +202 -202
- package/compiler/ModuleCache.ff +178 -178
- package/compiler/Workspace.ff +88 -88
- package/core/.firefly/include/package-lock.json +394 -394
- package/core/.firefly/include/package.json +5 -5
- package/core/.firefly/include/prepare.sh +1 -1
- package/core/.firefly/package.ff +2 -2
- package/core/Array.ff +265 -265
- package/core/Atomic.ff +64 -64
- package/core/Box.ff +7 -7
- package/core/BrowserSystem.ff +40 -37
- package/core/Buffer.ff +3 -3
- package/core/BuildSystem.ff +148 -145
- package/core/Crypto.ff +96 -95
- package/core/Equal.ff +36 -36
- package/core/HttpClient.ff +87 -87
- package/core/Instant.ff +17 -0
- package/core/JsSystem.ff +69 -69
- package/core/Json.ff +434 -434
- package/core/List.ff +415 -415
- package/core/Lock.ff +144 -144
- package/core/NodeSystem.ff +189 -189
- package/core/Ordering.ff +161 -161
- package/core/Path.ff +401 -401
- package/core/Random.ff +134 -134
- package/core/RbMap.ff +216 -216
- package/core/Show.ff +43 -43
- package/core/SourceLocation.ff +68 -68
- package/core/Stream.ff +1 -1
- package/core/Task.ff +141 -141
- package/experimental/benchmarks/ListGrab.ff +23 -23
- package/experimental/benchmarks/ListGrab.java +55 -55
- package/experimental/benchmarks/Pyrotek45.ff +30 -30
- package/experimental/benchmarks/Pyrotek45.java +64 -64
- package/experimental/bidirectional/Bidi.ff +88 -88
- package/experimental/random/Index.ff +53 -53
- package/experimental/random/Process.ff +120 -120
- package/experimental/random/RunLength.ff +3 -3
- package/experimental/random/Scrape.ff +51 -51
- package/experimental/random/Symbols.ff +73 -73
- package/experimental/random/Tensor.ff +52 -52
- package/experimental/random/Units.ff +36 -36
- package/experimental/s3/S3TestAuthorizationHeader.ff +38 -38
- package/experimental/s3/S3TestPut.ff +15 -15
- package/experimental/tests/TestJson.ff +26 -26
- package/firefly.sh +0 -0
- package/fireflysite/Main.ff +13 -13
- package/lsp/.firefly/package.ff +1 -1
- package/lsp/CompletionHandler.ff +811 -811
- package/lsp/Handler.ff +714 -714
- package/lsp/HoverHandler.ff +79 -79
- package/lsp/LanguageServer.ff +272 -272
- package/lsp/SignatureHelpHandler.ff +55 -55
- package/lsp/SymbolHandler.ff +181 -181
- package/lsp/TestReferences.ff +16 -16
- package/lsp/TestReferencesCase.ff +7 -7
- package/lsp/stderr.txt +1 -1
- package/lsp/stdout.txt +34 -34
- package/lux/.firefly/package.ff +1 -1
- package/lux/Css.ff +648 -648
- package/lux/CssTest.ff +48 -48
- package/lux/Lux.ff +487 -487
- package/lux/LuxEvent.ff +116 -116
- package/lux/Main.ff +128 -128
- package/lux/Main2.ff +144 -144
- package/output/js/ff/compiler/Builder.mjs +43 -43
- package/output/js/ff/compiler/Dependencies.mjs +3 -3
- package/output/js/ff/core/Array.mjs +59 -59
- package/output/js/ff/core/Atomic.mjs +36 -36
- package/output/js/ff/core/BrowserSystem.mjs +19 -11
- package/output/js/ff/core/Buffer.mjs +7 -7
- package/output/js/ff/core/BuildSystem.mjs +38 -30
- package/output/js/ff/core/Crypto.mjs +67 -68
- package/output/js/ff/core/HttpClient.mjs +24 -24
- package/output/js/ff/core/Instant.mjs +38 -0
- package/output/js/ff/core/Json.mjs +147 -147
- package/output/js/ff/core/List.mjs +50 -50
- package/output/js/ff/core/Lock.mjs +97 -97
- package/output/js/ff/core/NodeSystem.mjs +77 -77
- package/output/js/ff/core/Ordering.mjs +8 -8
- package/output/js/ff/core/Path.mjs +231 -231
- package/output/js/ff/core/Random.mjs +56 -56
- package/output/js/ff/core/Stream.mjs +2 -2
- package/output/js/ff/core/Task.mjs +31 -31
- package/package.json +29 -29
- package/rpc/.firefly/package.ff +1 -1
- package/rpc/Rpc.ff +69 -69
- package/s3/.firefly/package.ff +1 -0
- package/{experimental/s3 → s3}/S3.ff +92 -92
- package/unsafejs/UnsafeJs.ff +19 -19
- package/vscode/LICENSE.txt +21 -21
- package/vscode/Prepublish.ff +15 -15
- package/vscode/README.md +16 -16
- package/vscode/client/package.json +22 -22
- package/vscode/client/src/extension.ts +104 -104
- package/vscode/icons/firefly-icon.svg +10 -10
- package/vscode/language-configuration.json +61 -61
- package/vscode/package-lock.json +3623 -3623
- package/vscode/package.json +160 -160
- package/vscode/snippets.json +241 -241
- package/webserver/.firefly/include/package-lock.json +16 -16
- package/webserver/.firefly/include/package.json +5 -5
- package/webserver/.firefly/package.ff +2 -2
- package/webserver/WebServer.ff +685 -685
- package/websocket/.firefly/package.ff +1 -1
- package/websocket/WebSocket.ff +131 -131
- package/crypto/SubtleCrypto.ff +0 -149
package/core/Equal.ff
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
trait T: Equal {
|
|
2
|
-
equals(x: T, y: T): Bool
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
notEquals[T: Equal](x: T, y: T): Bool {
|
|
6
|
-
!equals(x, y)
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
instance Nothing: Equal {
|
|
10
|
-
equals(x: Nothing, y: Nothing): Bool {True}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
instance Bool: Equal {
|
|
14
|
-
equals(x: Bool, y: Bool): Bool
|
|
15
|
-
target js sync """return x_ === y_"""
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
instance Char: Equal {
|
|
19
|
-
equals(x: Char, y: Char): Bool
|
|
20
|
-
target js sync """return x_ === y_"""
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
instance Int: Equal {
|
|
24
|
-
equals(x: Int, y: Int): Bool
|
|
25
|
-
target js sync """return x_ === y_"""
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
instance Float: Equal {
|
|
29
|
-
equals(x: Float, y: Float): Bool
|
|
30
|
-
target js sync """return x_ === y_"""
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
instance String: Equal {
|
|
34
|
-
equals(x: String, y: String): Bool
|
|
35
|
-
target js sync """return x_ === y_"""
|
|
36
|
-
}
|
|
1
|
+
trait T: Equal {
|
|
2
|
+
equals(x: T, y: T): Bool
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
notEquals[T: Equal](x: T, y: T): Bool {
|
|
6
|
+
!equals(x, y)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
instance Nothing: Equal {
|
|
10
|
+
equals(x: Nothing, y: Nothing): Bool {True}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
instance Bool: Equal {
|
|
14
|
+
equals(x: Bool, y: Bool): Bool
|
|
15
|
+
target js sync """return x_ === y_"""
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
instance Char: Equal {
|
|
19
|
+
equals(x: Char, y: Char): Bool
|
|
20
|
+
target js sync """return x_ === y_"""
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
instance Int: Equal {
|
|
24
|
+
equals(x: Int, y: Int): Bool
|
|
25
|
+
target js sync """return x_ === y_"""
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
instance Float: Equal {
|
|
29
|
+
equals(x: Float, y: Float): Bool
|
|
30
|
+
target js sync """return x_ === y_"""
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
instance String: Equal {
|
|
34
|
+
equals(x: String, y: String): Bool
|
|
35
|
+
target js sync """return x_ === y_"""
|
|
36
|
+
}
|
package/core/HttpClient.ff
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
capability HttpClient {}
|
|
2
|
-
capability FetchBody {}
|
|
3
|
-
capability FetchResponse {}
|
|
4
|
-
data FetchRedirect {
|
|
5
|
-
RedirectFollow
|
|
6
|
-
RedirectError
|
|
7
|
-
RedirectManual
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
extend self: HttpClient {
|
|
11
|
-
|
|
12
|
-
fetch(
|
|
13
|
-
url: String
|
|
14
|
-
method: String = "GET"
|
|
15
|
-
headers: List[Pair[String, String]] = emptyList
|
|
16
|
-
body: Option[FetchBody] = None
|
|
17
|
-
redirect: FetchRedirect = RedirectFollow
|
|
18
|
-
// The rest of the options are only respected by browsers - see the MDN fetch() documentation
|
|
19
|
-
referrer: Option[String] = None
|
|
20
|
-
integrity: Option[String] = None
|
|
21
|
-
mode: Option[String] = None
|
|
22
|
-
credentials: Option[String] = None
|
|
23
|
-
cache: Option[String] = None
|
|
24
|
-
throw: Bool = True
|
|
25
|
-
): FetchResponse
|
|
26
|
-
target js async """
|
|
27
|
-
try {
|
|
28
|
-
const options = {headers: {}, signal: $task.controller.signal}
|
|
29
|
-
options.method = method_
|
|
30
|
-
headers_.forEach(pair => {options.headers[pair.first_] = pair.second_})
|
|
31
|
-
if(body_.value_) options.body = body_.value_
|
|
32
|
-
if(redirect_.RedirectError) options.redirect = "error"
|
|
33
|
-
else if(redirect_.RedirectManual) options.redirect = "manual"
|
|
34
|
-
if(referrer_.value_) options.referrer = referrer_.value_
|
|
35
|
-
if(integrity_.value_) options.integrity = integrity_.value_
|
|
36
|
-
if(mode_.value_) options.mode = mode_.value_
|
|
37
|
-
if(credentials_.value_) options.credentials = credentials_.value_
|
|
38
|
-
if(cache_.value_) options.cache = cache_.value_
|
|
39
|
-
let result = await fetch(url_, options)
|
|
40
|
-
if(throw_ && !result.ok) throw new Error("Unexpected HTTP status code: " + result.status)
|
|
41
|
-
return result
|
|
42
|
-
} finally {
|
|
43
|
-
if($task.controller.signal.aborted) $task.controller = new AbortController()
|
|
44
|
-
}
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
emptyList: List[Pair[String, String]] = [] // TODO: Why won't this type check when inlined? Probably some dangling unification variable?
|
|
50
|
-
|
|
51
|
-
bodyText(body: String): FetchBody
|
|
52
|
-
target js sync "return body_"
|
|
53
|
-
target js async "return body_"
|
|
54
|
-
|
|
55
|
-
bodyBuffer(body: Buffer): FetchBody
|
|
56
|
-
target js sync "return body_"
|
|
57
|
-
target js async "return body_"
|
|
58
|
-
|
|
59
|
-
extend self: FetchResponse {
|
|
60
|
-
|
|
61
|
-
ok(): Bool
|
|
62
|
-
target js async "return self_.ok"
|
|
63
|
-
|
|
64
|
-
status(): Int
|
|
65
|
-
target js async "return self_.status"
|
|
66
|
-
|
|
67
|
-
statusText(): String
|
|
68
|
-
target js async "return self_.statusText"
|
|
69
|
-
|
|
70
|
-
header(name: String): Option[String]
|
|
71
|
-
target js async """
|
|
72
|
-
const header = self_.headers.get(name_)
|
|
73
|
-
return header != null
|
|
74
|
-
? ff_core_Option.Some(header)
|
|
75
|
-
: ff_core_Option.None()
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
readText(): String
|
|
79
|
-
target js async "return await self_.text()"
|
|
80
|
-
|
|
81
|
-
readJson(): Json
|
|
82
|
-
target js async "return await self_.json()"
|
|
83
|
-
|
|
84
|
-
readBuffer(): Buffer
|
|
85
|
-
target js async "return new DataView(await self_.arrayBuffer())"
|
|
86
|
-
|
|
87
|
-
}
|
|
1
|
+
capability HttpClient {}
|
|
2
|
+
capability FetchBody {}
|
|
3
|
+
capability FetchResponse {}
|
|
4
|
+
data FetchRedirect {
|
|
5
|
+
RedirectFollow
|
|
6
|
+
RedirectError
|
|
7
|
+
RedirectManual
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
extend self: HttpClient {
|
|
11
|
+
|
|
12
|
+
fetch(
|
|
13
|
+
url: String
|
|
14
|
+
method: String = "GET"
|
|
15
|
+
headers: List[Pair[String, String]] = emptyList
|
|
16
|
+
body: Option[FetchBody] = None
|
|
17
|
+
redirect: FetchRedirect = RedirectFollow
|
|
18
|
+
// The rest of the options are only respected by browsers - see the MDN fetch() documentation
|
|
19
|
+
referrer: Option[String] = None
|
|
20
|
+
integrity: Option[String] = None
|
|
21
|
+
mode: Option[String] = None
|
|
22
|
+
credentials: Option[String] = None
|
|
23
|
+
cache: Option[String] = None
|
|
24
|
+
throw: Bool = True
|
|
25
|
+
): FetchResponse
|
|
26
|
+
target js async """
|
|
27
|
+
try {
|
|
28
|
+
const options = {headers: {}, signal: $task.controller.signal}
|
|
29
|
+
options.method = method_
|
|
30
|
+
headers_.forEach(pair => {options.headers[pair.first_] = pair.second_})
|
|
31
|
+
if(body_.value_) options.body = body_.value_
|
|
32
|
+
if(redirect_.RedirectError) options.redirect = "error"
|
|
33
|
+
else if(redirect_.RedirectManual) options.redirect = "manual"
|
|
34
|
+
if(referrer_.value_) options.referrer = referrer_.value_
|
|
35
|
+
if(integrity_.value_) options.integrity = integrity_.value_
|
|
36
|
+
if(mode_.value_) options.mode = mode_.value_
|
|
37
|
+
if(credentials_.value_) options.credentials = credentials_.value_
|
|
38
|
+
if(cache_.value_) options.cache = cache_.value_
|
|
39
|
+
let result = await fetch(url_, options)
|
|
40
|
+
if(throw_ && !result.ok) throw new Error("Unexpected HTTP status code: " + result.status)
|
|
41
|
+
return result
|
|
42
|
+
} finally {
|
|
43
|
+
if($task.controller.signal.aborted) $task.controller = new AbortController()
|
|
44
|
+
}
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
emptyList: List[Pair[String, String]] = [] // TODO: Why won't this type check when inlined? Probably some dangling unification variable?
|
|
50
|
+
|
|
51
|
+
bodyText(body: String): FetchBody
|
|
52
|
+
target js sync "return body_"
|
|
53
|
+
target js async "return body_"
|
|
54
|
+
|
|
55
|
+
bodyBuffer(body: Buffer): FetchBody
|
|
56
|
+
target js sync "return body_"
|
|
57
|
+
target js async "return body_"
|
|
58
|
+
|
|
59
|
+
extend self: FetchResponse {
|
|
60
|
+
|
|
61
|
+
ok(): Bool
|
|
62
|
+
target js async "return self_.ok"
|
|
63
|
+
|
|
64
|
+
status(): Int
|
|
65
|
+
target js async "return self_.status"
|
|
66
|
+
|
|
67
|
+
statusText(): String
|
|
68
|
+
target js async "return self_.statusText"
|
|
69
|
+
|
|
70
|
+
header(name: String): Option[String]
|
|
71
|
+
target js async """
|
|
72
|
+
const header = self_.headers.get(name_)
|
|
73
|
+
return header != null
|
|
74
|
+
? ff_core_Option.Some(header)
|
|
75
|
+
: ff_core_Option.None()
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
readText(): String
|
|
79
|
+
target js async "return await self_.text()"
|
|
80
|
+
|
|
81
|
+
readJson(): Json
|
|
82
|
+
target js async "return await self_.json()"
|
|
83
|
+
|
|
84
|
+
readBuffer(): Buffer
|
|
85
|
+
target js async "return new DataView(await self_.arrayBuffer())"
|
|
86
|
+
|
|
87
|
+
}
|
package/core/Instant.ff
CHANGED
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
newtype Instant(since1970: Duration)
|
|
2
2
|
|
|
3
|
+
fromIso(date: String): Option[Instant] {
|
|
4
|
+
let zone = date.endsWith("Z") || date.contains("+") || date.dropWhile {_ != 'T'}.contains("-")
|
|
5
|
+
if(zone && date.takeWhile {_ != 'T'}.contains("-") && date.contains("T") && date.contains(":")) {
|
|
6
|
+
internalParseDate(date)
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
3
10
|
extend self: Instant {
|
|
4
11
|
|
|
5
12
|
add(duration: Duration): Instant {
|
|
6
13
|
Instant(Duration(self.since1970.seconds + duration.seconds))
|
|
7
14
|
}
|
|
15
|
+
|
|
16
|
+
toIso(): String
|
|
17
|
+
target js sync """
|
|
18
|
+
return new Date(self_ * 1000).toISOString();
|
|
19
|
+
"""
|
|
8
20
|
|
|
9
21
|
}
|
|
22
|
+
|
|
23
|
+
internalParseDate(date: String): Instant
|
|
24
|
+
target js sync """
|
|
25
|
+
return Date.parse(date_) * 0.001;
|
|
26
|
+
"""
|
package/core/JsSystem.ff
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
class JsSystem {} // TODO: It has to be async if the async ffi is to be called - solve in the compiler?
|
|
2
|
-
|
|
3
|
-
extend self: JsSystem {
|
|
4
|
-
|
|
5
|
-
global(): JsValue
|
|
6
|
-
target js sync "return self_"
|
|
7
|
-
|
|
8
|
-
parseJson(json: String): JsValue
|
|
9
|
-
target js sync "return JSON.parse(json_)"
|
|
10
|
-
|
|
11
|
-
null(): JsValue
|
|
12
|
-
target js sync "return null"
|
|
13
|
-
|
|
14
|
-
undefined(): JsValue
|
|
15
|
-
target js sync "return void 0"
|
|
16
|
-
|
|
17
|
-
value[T: IsJsValue](jsValue: T): JsValue
|
|
18
|
-
target js sync "return jsValue_"
|
|
19
|
-
|
|
20
|
-
object(): JsValue
|
|
21
|
-
target js sync "return {}"
|
|
22
|
-
|
|
23
|
-
array(values: List[JsValue]): JsValue
|
|
24
|
-
target js sync "return values_.slice()"
|
|
25
|
-
|
|
26
|
-
json(value: Json): JsValue
|
|
27
|
-
target js sync "return value_"
|
|
28
|
-
|
|
29
|
-
function0[R](body: () => R): JsValue
|
|
30
|
-
target js sync "return body_"
|
|
31
|
-
target js async "return () => body_($task)"
|
|
32
|
-
|
|
33
|
-
function1[R](body: JsValue => R): JsValue
|
|
34
|
-
target js sync "return body_"
|
|
35
|
-
target js async "return a1 => body_(a1, $task)"
|
|
36
|
-
|
|
37
|
-
function2[R](body: (JsValue, JsValue) => R): JsValue
|
|
38
|
-
target js sync "return body_"
|
|
39
|
-
target js async "return (a1, a2) => body_(a1, a2, $task)"
|
|
40
|
-
|
|
41
|
-
function3[R](body: (JsValue, JsValue, JsValue) => R): JsValue
|
|
42
|
-
target js sync "return body_"
|
|
43
|
-
target js async "return (a1, a2, a3) => body_(a1, a2, a3, $task)"
|
|
44
|
-
|
|
45
|
-
function4[R](body: (JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
46
|
-
target js sync "return body_"
|
|
47
|
-
target js async "return (a1, a2, a3, a4) => body_(a1, a2, a3, a4, $task)"
|
|
48
|
-
|
|
49
|
-
function5[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
50
|
-
target js sync "return body_"
|
|
51
|
-
target js async "return (a1, a2, a3, a4, a5) => body_(a1, a2, a3, a4, a5, $task)"
|
|
52
|
-
|
|
53
|
-
function6[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
54
|
-
target js sync "return body_"
|
|
55
|
-
target js async "return (a1, a2, a3, a4, a5, a6) => body_(a1, a2, a3, a4, a5, a6, $task)"
|
|
56
|
-
|
|
57
|
-
function7[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
58
|
-
target js sync "return body_"
|
|
59
|
-
target js async "return (a1, a2, a3, a4, a5, a6, a7) => body_(a1, a2, a3, a4, a5, a6, a7, $task)"
|
|
60
|
-
|
|
61
|
-
function8[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
62
|
-
target js sync "return body_"
|
|
63
|
-
target js async "return (a1, a2, a3, a4, a5, a6, a7, a8) => body_(a1, a2, a3, a4, a5, a6, a7, a8, $task)"
|
|
64
|
-
|
|
65
|
-
function9[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
66
|
-
target js sync "return body_"
|
|
67
|
-
target js async "return (a1, a2, a3, a4, a5, a6, a7, a8, a9) => body_(a1, a2, a3, a4, a5, a6, a7, a8, a9, $task)"
|
|
68
|
-
|
|
69
|
-
}
|
|
1
|
+
class JsSystem {} // TODO: It has to be async if the async ffi is to be called - solve in the compiler?
|
|
2
|
+
|
|
3
|
+
extend self: JsSystem {
|
|
4
|
+
|
|
5
|
+
global(): JsValue
|
|
6
|
+
target js sync "return self_"
|
|
7
|
+
|
|
8
|
+
parseJson(json: String): JsValue
|
|
9
|
+
target js sync "return JSON.parse(json_)"
|
|
10
|
+
|
|
11
|
+
null(): JsValue
|
|
12
|
+
target js sync "return null"
|
|
13
|
+
|
|
14
|
+
undefined(): JsValue
|
|
15
|
+
target js sync "return void 0"
|
|
16
|
+
|
|
17
|
+
value[T: IsJsValue](jsValue: T): JsValue
|
|
18
|
+
target js sync "return jsValue_"
|
|
19
|
+
|
|
20
|
+
object(): JsValue
|
|
21
|
+
target js sync "return {}"
|
|
22
|
+
|
|
23
|
+
array(values: List[JsValue]): JsValue
|
|
24
|
+
target js sync "return values_.slice()"
|
|
25
|
+
|
|
26
|
+
json(value: Json): JsValue
|
|
27
|
+
target js sync "return value_"
|
|
28
|
+
|
|
29
|
+
function0[R](body: () => R): JsValue
|
|
30
|
+
target js sync "return body_"
|
|
31
|
+
target js async "return () => body_($task)"
|
|
32
|
+
|
|
33
|
+
function1[R](body: JsValue => R): JsValue
|
|
34
|
+
target js sync "return body_"
|
|
35
|
+
target js async "return a1 => body_(a1, $task)"
|
|
36
|
+
|
|
37
|
+
function2[R](body: (JsValue, JsValue) => R): JsValue
|
|
38
|
+
target js sync "return body_"
|
|
39
|
+
target js async "return (a1, a2) => body_(a1, a2, $task)"
|
|
40
|
+
|
|
41
|
+
function3[R](body: (JsValue, JsValue, JsValue) => R): JsValue
|
|
42
|
+
target js sync "return body_"
|
|
43
|
+
target js async "return (a1, a2, a3) => body_(a1, a2, a3, $task)"
|
|
44
|
+
|
|
45
|
+
function4[R](body: (JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
46
|
+
target js sync "return body_"
|
|
47
|
+
target js async "return (a1, a2, a3, a4) => body_(a1, a2, a3, a4, $task)"
|
|
48
|
+
|
|
49
|
+
function5[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
50
|
+
target js sync "return body_"
|
|
51
|
+
target js async "return (a1, a2, a3, a4, a5) => body_(a1, a2, a3, a4, a5, $task)"
|
|
52
|
+
|
|
53
|
+
function6[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
54
|
+
target js sync "return body_"
|
|
55
|
+
target js async "return (a1, a2, a3, a4, a5, a6) => body_(a1, a2, a3, a4, a5, a6, $task)"
|
|
56
|
+
|
|
57
|
+
function7[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
58
|
+
target js sync "return body_"
|
|
59
|
+
target js async "return (a1, a2, a3, a4, a5, a6, a7) => body_(a1, a2, a3, a4, a5, a6, a7, $task)"
|
|
60
|
+
|
|
61
|
+
function8[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
62
|
+
target js sync "return body_"
|
|
63
|
+
target js async "return (a1, a2, a3, a4, a5, a6, a7, a8) => body_(a1, a2, a3, a4, a5, a6, a7, a8, $task)"
|
|
64
|
+
|
|
65
|
+
function9[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue
|
|
66
|
+
target js sync "return body_"
|
|
67
|
+
target js async "return (a1, a2, a3, a4, a5, a6, a7, a8, a9) => body_(a1, a2, a3, a4, a5, a6, a7, a8, a9, $task)"
|
|
68
|
+
|
|
69
|
+
}
|