firefly-compiler 0.5.35 → 0.5.37
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 +157 -154
- package/bin/firefly.mjs +1 -1
- package/compiler/Builder.ff +275 -277
- package/compiler/Compiler.ff +234 -233
- package/compiler/Dependencies.ff +186 -187
- package/compiler/DependencyLock.ff +17 -17
- package/compiler/Deriver.ff +23 -31
- package/compiler/Dictionaries.ff +1 -1
- package/compiler/Inference.ff +43 -20
- package/compiler/JsEmitter.ff +1437 -1282
- package/compiler/LspHook.ff +202 -202
- package/compiler/Main.ff +25 -24
- package/compiler/ModuleCache.ff +178 -178
- package/compiler/Parser.ff +36 -109
- package/compiler/Resolver.ff +5 -8
- package/compiler/Substitution.ff +1 -1
- package/compiler/Syntax.ff +1 -16
- package/compiler/Token.ff +9 -0
- package/compiler/Tokenizer.ff +4 -0
- package/compiler/Workspace.ff +88 -88
- package/core/.firefly/include/package.json +5 -5
- package/core/.firefly/package.ff +2 -2
- package/core/Any.ff +26 -30
- package/core/Array.ff +298 -265
- package/core/Atomic.ff +63 -64
- package/core/Box.ff +7 -7
- package/core/BrowserSystem.ff +40 -40
- package/core/Buffer.ff +185 -152
- package/core/BuildSystem.ff +156 -148
- package/core/Channel.ff +95 -92
- package/core/Char.ff +3 -2
- package/core/Core.ff +16 -23
- package/core/Crypto.ff +94 -96
- package/core/Equal.ff +41 -36
- package/core/Error.ff +15 -10
- package/core/FileHandle.ff +45 -37
- package/core/Float.ff +176 -200
- package/core/HttpClient.ff +142 -148
- package/core/Instant.ff +6 -8
- package/core/Int.ff +40 -24
- package/core/IntMap.ff +61 -39
- package/core/Js.ff +305 -0
- package/core/JsSystem.ff +135 -114
- package/core/JsValue.ff +303 -159
- package/core/Json.ff +423 -443
- package/core/List.ff +482 -486
- package/core/Lock.ff +108 -144
- package/core/Log.ff +25 -14
- package/core/NodeSystem.ff +198 -191
- package/core/Ordering.ff +160 -161
- package/core/Path.ff +377 -409
- package/core/Queue.ff +90 -0
- package/core/Random.ff +140 -134
- package/core/RbMap.ff +216 -216
- package/core/Serializable.ff +16 -13
- package/core/Show.ff +44 -43
- package/core/SourceLocation.ff +68 -68
- package/core/Stream.ff +1 -1
- package/core/String.ff +224 -202
- package/core/StringMap.ff +58 -36
- package/core/Task.ff +165 -149
- 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/lines/Main.ff +40 -0
- package/experimental/random/Index.ff +53 -53
- package/experimental/random/Process.ff +120 -120
- package/experimental/random/RunLength.ff +65 -65
- 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 +39 -39
- package/experimental/s3/S3TestPut.ff +16 -16
- package/experimental/tests/TestJson.ff +26 -26
- package/firefly.sh +0 -0
- package/fireflysite/.firefly/package.ff +4 -4
- package/fireflysite/CommunityOverview.ff +20 -20
- package/fireflysite/CountingButtonDemo.ff +58 -58
- package/fireflysite/DocumentParser.ff +325 -331
- package/fireflysite/ExamplesOverview.ff +40 -40
- package/fireflysite/FrontPage.ff +344 -344
- package/fireflysite/GettingStarted.ff +45 -45
- package/fireflysite/Guide.ff +456 -456
- package/fireflysite/Main.ff +163 -152
- package/fireflysite/MatchingPasswordsDemo.ff +82 -82
- package/fireflysite/PackagesOverview.ff +49 -49
- package/fireflysite/PostgresqlDemo.ff +34 -34
- package/fireflysite/ReferenceAll.ff +18 -18
- package/fireflysite/ReferenceIntroduction.ff +11 -11
- package/fireflysite/Styles.ff +567 -567
- package/fireflysite/Test.ff +121 -62
- package/fireflysite/assets/markdown/reference/BaseTypes.md +209 -209
- package/fireflysite/assets/markdown/reference/EmittedJavascript.md +65 -65
- package/fireflysite/assets/markdown/reference/Exceptions.md +101 -101
- package/fireflysite/assets/markdown/reference/FunctionsAndMethods.md +364 -364
- package/fireflysite/assets/markdown/reference/JavascriptInterop.md +235 -172
- package/fireflysite/assets/markdown/reference/ModulesAndPackages.md +162 -162
- package/fireflysite/assets/markdown/reference/OldStructuredConcurrency.md +48 -48
- package/fireflysite/assets/markdown/reference/PatternMatching.md +224 -224
- package/fireflysite/assets/markdown/reference/StatementsAndExpressions.md +86 -86
- package/fireflysite/assets/markdown/reference/StructuredConcurrency.md +99 -99
- package/fireflysite/assets/markdown/reference/TraitsAndInstances.md +100 -100
- package/fireflysite/assets/markdown/reference/UserDefinedTypes.md +184 -184
- package/fireflysite/assets/markdown/scratch/ControlFlow.md +136 -136
- package/fireflysite/assets/markdown/scratch/Toc.md +40 -40
- package/lsp/.firefly/package.ff +1 -1
- package/lsp/CompletionHandler.ff +827 -827
- 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 +17 -17
- 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 +608 -617
- package/lux/LuxEvent.ff +79 -116
- package/lux/Main.ff +123 -123
- package/lux/Main2.ff +143 -143
- package/lux/TestDry.ff +28 -28
- package/output/js/ff/compiler/Builder.mjs +72 -71
- package/output/js/ff/compiler/Compiler.mjs +19 -13
- package/output/js/ff/compiler/Dependencies.mjs +8 -7
- package/output/js/ff/compiler/DependencyLock.mjs +6 -4
- package/output/js/ff/compiler/Deriver.mjs +26 -24
- package/output/js/ff/compiler/Dictionaries.mjs +14 -18
- package/output/js/ff/compiler/Environment.mjs +6 -4
- package/output/js/ff/compiler/Inference.mjs +238 -164
- package/output/js/ff/compiler/JsEmitter.mjs +1160 -350
- package/output/js/ff/compiler/JsImporter.mjs +20 -18
- package/output/js/ff/compiler/LspHook.mjs +12 -10
- package/output/js/ff/compiler/Main.mjs +61 -41
- package/output/js/ff/compiler/ModuleCache.mjs +10 -8
- package/output/js/ff/compiler/Parser.mjs +153 -669
- package/output/js/ff/compiler/Patterns.mjs +12 -10
- package/output/js/ff/compiler/Resolver.mjs +52 -78
- package/output/js/ff/compiler/Substitution.mjs +12 -16
- package/output/js/ff/compiler/Syntax.mjs +50 -341
- package/output/js/ff/compiler/Token.mjs +126 -4
- package/output/js/ff/compiler/Tokenizer.mjs +62 -52
- package/output/js/ff/compiler/Unification.mjs +74 -90
- package/output/js/ff/compiler/Wildcards.mjs +4 -2
- package/output/js/ff/compiler/Workspace.mjs +26 -20
- package/output/js/ff/core/Any.mjs +20 -20
- package/output/js/ff/core/Array.mjs +268 -175
- package/output/js/ff/core/AssetSystem.mjs +8 -6
- package/output/js/ff/core/Atomic.mjs +84 -52
- package/output/js/ff/core/Bool.mjs +6 -4
- package/output/js/ff/core/BrowserSystem.mjs +38 -29
- package/output/js/ff/core/Buffer.mjs +285 -133
- package/output/js/ff/core/BuildSystem.mjs +36 -56
- package/output/js/ff/core/Channel.mjs +250 -97
- package/output/js/ff/core/Char.mjs +5 -3
- package/output/js/ff/core/Core.mjs +28 -34
- package/output/js/ff/core/Crypto.mjs +30 -52
- package/output/js/ff/core/Duration.mjs +4 -2
- package/output/js/ff/core/Equal.mjs +14 -12
- package/output/js/ff/core/Error.mjs +17 -11
- package/output/js/ff/core/FileHandle.mjs +76 -38
- package/output/js/ff/core/Float.mjs +92 -160
- package/output/js/ff/core/HttpClient.mjs +208 -76
- package/output/js/ff/core/Instant.mjs +8 -10
- package/output/js/ff/core/Int.mjs +36 -26
- package/output/js/ff/core/IntMap.mjs +79 -33
- package/output/js/ff/core/Js.mjs +751 -0
- package/output/js/ff/core/JsSystem.mjs +54 -60
- package/output/js/ff/core/JsValue.mjs +294 -143
- package/output/js/ff/core/Json.mjs +443 -253
- package/output/js/ff/core/List.mjs +262 -214
- package/output/js/ff/core/Lock.mjs +156 -125
- package/output/js/ff/core/Log.mjs +20 -10
- package/output/js/ff/core/Map.mjs +10 -8
- package/output/js/ff/core/NodeSystem.mjs +189 -123
- package/output/js/ff/core/Nothing.mjs +4 -2
- package/output/js/ff/core/Option.mjs +40 -38
- package/output/js/ff/core/Ordering.mjs +26 -20
- package/output/js/ff/core/Pair.mjs +4 -2
- package/output/js/ff/core/Path.mjs +517 -315
- package/output/js/ff/core/Queue.mjs +306 -0
- package/output/js/ff/core/Random.mjs +141 -77
- package/output/js/ff/core/RbMap.mjs +36 -34
- package/output/js/ff/core/Serializable.mjs +44 -28
- package/output/js/ff/core/Set.mjs +6 -4
- package/output/js/ff/core/Show.mjs +8 -6
- package/output/js/ff/core/SourceLocation.mjs +4 -2
- package/output/js/ff/core/Stream.mjs +30 -50
- package/output/js/ff/core/String.mjs +263 -172
- package/output/js/ff/core/StringMap.mjs +77 -31
- package/output/js/ff/core/Task.mjs +91 -76
- package/output/js/ff/core/Try.mjs +20 -18
- package/output/js/ff/core/Unit.mjs +4 -2
- package/package.json +1 -1
- package/postgresql/Pg.ff +53 -59
- package/rpc/.firefly/package.ff +1 -1
- package/rpc/Rpc.ff +70 -70
- package/s3/.firefly/package.ff +1 -1
- package/s3/S3.ff +92 -94
- package/vscode/LICENSE.txt +21 -21
- package/vscode/Prepublish.ff +15 -15
- package/vscode/README.md +16 -16
- package/vscode/client/package-lock.json +544 -544
- 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 +1 -1
- package/vscode/snippets.json +241 -241
- package/vscode/syntaxes/firefly-markdown-injection.json +45 -45
- package/webserver/.firefly/include/package.json +5 -5
- package/webserver/.firefly/package.ff +2 -2
- package/webserver/WebServer.ff +647 -685
- package/websocket/.firefly/package.ff +1 -1
- package/websocket/WebSocket.ff +100 -131
- package/core/UnsafeJs.ff +0 -42
- package/output/js/ff/core/UnsafeJs.mjs +0 -191
package/core/Js.ff
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
// The compiler may decide to access symbols by name instead of going through globalThis
|
|
2
|
+
|
|
3
|
+
jsSystem(): JsSystem {
|
|
4
|
+
panic("This call should have been eliminated by the compiler")
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
import(module: String): JsValue {
|
|
8
|
+
panic("This call should have been eliminated by the compiler")
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
browserImport(module: String): JsValue {
|
|
12
|
+
panic("This call should have been eliminated by the compiler")
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
dynamicImport(module: String): JsValue {
|
|
16
|
+
panic("This call should have been eliminated by the compiler")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
await(promise: JsValue): JsValue {
|
|
20
|
+
panic("This call should have been eliminated by the compiler")
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async0[R](body: () => JsValue): JsValue {
|
|
24
|
+
panic("This call should have been eliminated by the compiler")
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async1[R](body: (JsValue) => JsValue): JsValue {
|
|
28
|
+
panic("This call should have been eliminated by the compiler")
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async2[R](body: (JsValue, JsValue) => JsValue): JsValue {
|
|
32
|
+
panic("This call should have been eliminated by the compiler")
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async3[R](body: (JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
36
|
+
panic("This call should have been eliminated by the compiler")
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async4[R](body: (JsValue, JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
40
|
+
panic("This call should have been eliminated by the compiler")
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async5[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
44
|
+
panic("This call should have been eliminated by the compiler")
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async6[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
48
|
+
panic("This call should have been eliminated by the compiler")
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async7[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
52
|
+
panic("This call should have been eliminated by the compiler")
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async8[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
56
|
+
panic("This call should have been eliminated by the compiler")
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async9[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => JsValue): JsValue {
|
|
60
|
+
panic("This call should have been eliminated by the compiler")
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
inAsync(): Bool {
|
|
64
|
+
panic("This call should have been eliminated by the compiler")
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
inBrowser(): Bool {
|
|
68
|
+
panic("This call should have been eliminated by the compiler")
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
inNode(): Bool {
|
|
72
|
+
panic("This call should have been eliminated by the compiler")
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
inBuild(): Bool {
|
|
76
|
+
panic("This call should have been eliminated by the compiler")
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
currentTask(): Task {
|
|
80
|
+
panic("This call should have been eliminated by the compiler")
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
throwIfCancelled(): Unit {
|
|
84
|
+
panic("This call should have been eliminated by the compiler")
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
cancelled(): Bool {
|
|
88
|
+
if(inAsync()) {
|
|
89
|
+
currentTask().controller->signal->aborted?
|
|
90
|
+
} else {
|
|
91
|
+
False
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
controller(): JsValue {
|
|
96
|
+
currentTask().controller
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
setController(controller: JsValue) {
|
|
100
|
+
currentTask().controller = controller
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
withSignal[T](body: JsValue => T): T {
|
|
104
|
+
let controller = Js.controller()
|
|
105
|
+
try {
|
|
106
|
+
body(controller->signal)
|
|
107
|
+
} finally {
|
|
108
|
+
if(controller->signal->aborted?) {Js.setController(Js->AbortController->())}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
awaitCancellablePromise[T](body: (T => Unit, Error => Unit, (Bool => Unit) => Unit) => Unit): T {
|
|
113
|
+
Js.throwIfCancelled()
|
|
114
|
+
Js.await(Js->Promise->(Js->{resolve, reject =>
|
|
115
|
+
mutable settled = False
|
|
116
|
+
let cleanups = Array.new[Bool => Unit]()
|
|
117
|
+
let doResolve: T => Unit = {v =>
|
|
118
|
+
if(!settled) {
|
|
119
|
+
settled = True
|
|
120
|
+
try {
|
|
121
|
+
cleanups.each {c => c(True)}
|
|
122
|
+
resolve.callValue1(v!)
|
|
123
|
+
} catchAny {e =>
|
|
124
|
+
reject.callValue1(e!)
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
let doReject: Error => Unit = {v =>
|
|
129
|
+
if(!settled) {
|
|
130
|
+
settled = True
|
|
131
|
+
try {
|
|
132
|
+
cleanups.each {c => c(False)}
|
|
133
|
+
reject.callValue1(v!)
|
|
134
|
+
} catchAny {e =>
|
|
135
|
+
reject.callValue1(e!)
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
let jsReject = Js->{e => doReject(e?)}
|
|
140
|
+
let controller = Js.controller()
|
|
141
|
+
controller->signal->addEventListener("abort", jsReject)
|
|
142
|
+
cleanups.push({_ => controller->signal->removeEventListener("abort", jsReject)})
|
|
143
|
+
body(doResolve, doReject, {cleanup => cleanups.push(cleanup)})
|
|
144
|
+
}))?
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
value[T](value: T): JsValue {
|
|
148
|
+
panic("This call should have been eliminated by the compiler")
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
fromValue[T](value: JsValue): T {
|
|
152
|
+
panic("This call should have been eliminated by the compiler")
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
throw[T](value: JsValue): T {
|
|
156
|
+
panic("This call should have been eliminated by the compiler")
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
unaryOperator[T1: IsJsValue](operator: String, a1: T1): JsValue {
|
|
160
|
+
panic("This call should have been eliminated by the compiler")
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
binaryOperator[T1: IsJsValue, T2: IsJsValue](operator: String, a1: T1, a2: T2): JsValue {
|
|
164
|
+
panic("This call should have been eliminated by the compiler")
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
shortCircuitingOperator[T1: IsJsValue, T2: IsJsValue](operator: String, a1: T1, a2: () => T2): JsValue {
|
|
168
|
+
panic("This call should have been eliminated by the compiler")
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
rawIdentifier(operator: String): JsValue {
|
|
172
|
+
panic("This call should have been eliminated by the compiler")
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
globalThis(): JsValue {
|
|
177
|
+
panic("This call should have been eliminated by the compiler")
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
get(key: String): JsValue {
|
|
181
|
+
panic("This call should have been eliminated by the compiler")
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
set[V: IsJsValue](key: String, value: V): Unit {
|
|
185
|
+
panic("This call should have been eliminated by the compiler")
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
increment[V: IsJsValue](key: String, value: V): Unit {
|
|
189
|
+
panic("This call should have been eliminated by the compiler")
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
decrement[V: IsJsValue](key: String, value: V): Unit {
|
|
193
|
+
panic("This call should have been eliminated by the compiler")
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
call0(name: String): JsValue {
|
|
197
|
+
panic("This call should have been eliminated by the compiler")
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
call1[A1: IsJsValue](name: String, a1: A1): JsValue {
|
|
201
|
+
panic("This call should have been eliminated by the compiler")
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
call2[A1: IsJsValue, A2: IsJsValue](name: String, a1: A1, a2: A2): JsValue {
|
|
205
|
+
panic("This call should have been eliminated by the compiler")
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
call3[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue](name: String, a1: A1, a2: A2, a3: A3): JsValue {
|
|
209
|
+
panic("This call should have been eliminated by the compiler")
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
call4[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4): JsValue {
|
|
213
|
+
panic("This call should have been eliminated by the compiler")
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
call5[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5): JsValue {
|
|
217
|
+
panic("This call should have been eliminated by the compiler")
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
call6[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6): JsValue {
|
|
221
|
+
panic("This call should have been eliminated by the compiler")
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
call7[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue, A7: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6, a7: A7): JsValue {
|
|
225
|
+
panic("This call should have been eliminated by the compiler")
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
call8[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue, A7: IsJsValue, A8: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6, a7: A7, a8: A8): JsValue {
|
|
229
|
+
panic("This call should have been eliminated by the compiler")
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
call9[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue, A7: IsJsValue, A8: IsJsValue, A9: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6, a7: A7, a8: A8, a9: A9): JsValue {
|
|
233
|
+
panic("This call should have been eliminated by the compiler")
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
null(): JsValue {
|
|
237
|
+
panic("This call should have been eliminated by the compiler")
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
undefined(): JsValue {
|
|
241
|
+
panic("This call should have been eliminated by the compiler")
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
orUndefined[T: IsJsValue](value: Option[T]): JsValue {
|
|
245
|
+
value.{
|
|
246
|
+
| None => Js.undefined()
|
|
247
|
+
| Some(v) => v!
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
object(): JsValue {
|
|
252
|
+
panic("This call should have been eliminated by the compiler")
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
new0(): JsValue {
|
|
256
|
+
panic("This call should have been eliminated by the compiler")
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
array(values: List[JsValue]): JsValue {
|
|
260
|
+
values!
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
json(value: Json): JsValue {
|
|
264
|
+
value.jsValue
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
function0[R](body: () => R): JsValue {
|
|
268
|
+
panic("This call should have been eliminated by the compiler")
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function1[R](body: JsValue => R): JsValue {
|
|
272
|
+
panic("This call should have been eliminated by the compiler")
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function2[R](body: (JsValue, JsValue) => R): JsValue {
|
|
276
|
+
panic("This call should have been eliminated by the compiler")
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function3[R](body: (JsValue, JsValue, JsValue) => R): JsValue {
|
|
280
|
+
panic("This call should have been eliminated by the compiler")
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
function4[R](body: (JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
284
|
+
panic("This call should have been eliminated by the compiler")
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function5[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
288
|
+
panic("This call should have been eliminated by the compiler")
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function6[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
292
|
+
panic("This call should have been eliminated by the compiler")
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
function7[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
296
|
+
panic("This call should have been eliminated by the compiler")
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
function8[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
300
|
+
panic("This call should have been eliminated by the compiler")
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
function9[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
304
|
+
panic("This call should have been eliminated by the compiler")
|
|
305
|
+
}
|
package/core/JsSystem.ff
CHANGED
|
@@ -1,114 +1,135 @@
|
|
|
1
|
-
class JsSystem {}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
1
|
+
class JsSystem {}
|
|
2
|
+
|
|
3
|
+
// The compiler may decide to access symbols by name instead of going through globalThis
|
|
4
|
+
|
|
5
|
+
extend self: JsSystem {
|
|
6
|
+
|
|
7
|
+
globalThis(): JsValue {
|
|
8
|
+
Js.globalThis()
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
get(key: String): JsValue {
|
|
12
|
+
Js.get(key)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
set[V: IsJsValue](key: String, value: V): Unit {
|
|
16
|
+
Js.set(key, value)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
increment[V: IsJsValue](key: String, value: V): Unit {
|
|
20
|
+
Js.increment(key, value)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
decrement[V: IsJsValue](key: String, value: V): Unit {
|
|
24
|
+
Js.decrement(key, value)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
call0(name: String): JsValue {
|
|
28
|
+
Js.call0(name)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
call1[A1: IsJsValue](name: String, a1: A1): JsValue {
|
|
32
|
+
Js.call1(name, a1)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
call2[A1: IsJsValue, A2: IsJsValue](name: String, a1: A1, a2: A2): JsValue {
|
|
36
|
+
Js.call2(name, a1, a2)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
call3[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue](name: String, a1: A1, a2: A2, a3: A3): JsValue {
|
|
40
|
+
Js.call3(name, a1, a2, a3)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
call4[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4): JsValue {
|
|
44
|
+
Js.call4(name, a1, a2, a3, a4)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
call5[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5): JsValue {
|
|
48
|
+
Js.call5(name, a1, a2, a3, a4, a5)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
call6[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6): JsValue {
|
|
52
|
+
Js.call6(name, a1, a2, a3, a4, a5, a6)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
call7[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue, A7: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6, a7: A7): JsValue {
|
|
56
|
+
Js.call7(name, a1, a2, a3, a4, a5, a6, a7)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
call8[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue, A7: IsJsValue, A8: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6, a7: A7, a8: A8): JsValue {
|
|
60
|
+
Js.call8(name, a1, a2, a3, a4, a5, a6, a7, a8)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
call9[A1: IsJsValue, A2: IsJsValue, A3: IsJsValue, A4: IsJsValue, A5: IsJsValue, A6: IsJsValue, A7: IsJsValue, A8: IsJsValue, A9: IsJsValue](name: String, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5, a6: A6, a7: A7, a8: A8, a9: A9): JsValue {
|
|
64
|
+
Js.call9(name, a1, a2, a3, a4, a5, a6, a7, a8, a9)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
null(): JsValue {
|
|
68
|
+
Js.null()
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
undefined(): JsValue {
|
|
72
|
+
Js.undefined()
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
value[T: IsJsValue](jsValue: T): JsValue {
|
|
76
|
+
Js.value(jsValue)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
object(): JsValue {
|
|
80
|
+
Js.object()
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
new0(): JsValue {
|
|
84
|
+
Js.new0()
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
array(values: List[JsValue]): JsValue {
|
|
88
|
+
Js.array(values)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
json(value: Json): JsValue {
|
|
92
|
+
Js.json(value)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function0[R](body: () => R): JsValue {
|
|
96
|
+
Js.function0(body)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function1[R](body: JsValue => R): JsValue {
|
|
100
|
+
Js.function1(body)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function2[R](body: (JsValue, JsValue) => R): JsValue {
|
|
104
|
+
Js.function2(body)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function3[R](body: (JsValue, JsValue, JsValue) => R): JsValue {
|
|
108
|
+
Js.function3(body)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function4[R](body: (JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
112
|
+
Js.function4(body)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function5[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
116
|
+
Js.function5(body)
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function6[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
120
|
+
Js.function6(body)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function7[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
124
|
+
Js.function7(body)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function8[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
128
|
+
Js.function8(body)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function9[R](body: (JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) => R): JsValue {
|
|
132
|
+
Js.function9(body)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
}
|