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
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
// type Array
|
|
96
98
|
|
|
97
99
|
|
|
@@ -102,21 +104,15 @@ return {array: []}
|
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
export function fill_(size_, value_) {
|
|
105
|
-
|
|
106
|
-
return {array: new Array(size_).fill(value_)};
|
|
107
|
-
|
|
107
|
+
return {array: ff_core_List.fill_(size_, value_)}
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
export function fillBy_(size_, body_) {
|
|
111
|
-
|
|
112
|
-
return {array: Array.from({length: size_}, (_, i) => body_(i))};
|
|
113
|
-
|
|
111
|
+
return {array: ff_core_List.fillBy_(size_, body_)}
|
|
114
112
|
}
|
|
115
113
|
|
|
116
114
|
export function range_(size_) {
|
|
117
|
-
|
|
118
|
-
return {array: Array.from({length: size_}, (_, i) => i)};
|
|
119
|
-
|
|
115
|
+
return {array: ff_core_List.range_(size_)}
|
|
120
116
|
}
|
|
121
117
|
|
|
122
118
|
export function sortRange_(array_, compare_, start_, end_) {
|
|
@@ -129,13 +125,13 @@ ff_core_Array.sortRange_(array_, compare_, middle_, end_);
|
|
|
129
125
|
let i_ = start_;
|
|
130
126
|
let j_ = middle_;
|
|
131
127
|
while(((i_ < middle_) && (j_ < end_))) {
|
|
132
|
-
if((compare_((array_.array[i_] ?? ff_core_Array.
|
|
128
|
+
if((compare_((array_.array[i_] ?? ff_core_Array.Array_grab(array_, i_)), (array_.array[j_] ?? ff_core_Array.Array_grab(array_, j_))) !== ff_core_Ordering.OrderingAfter())) {
|
|
133
129
|
i_ += 1
|
|
134
130
|
} else {
|
|
135
|
-
const value_ = (array_.array[j_] ?? ff_core_Array.
|
|
131
|
+
const value_ = (array_.array[j_] ?? ff_core_Array.Array_grab(array_, j_));
|
|
136
132
|
let k_ = j_;
|
|
137
133
|
while((k_ > i_)) {
|
|
138
|
-
ff_core_Array.Array_set(array_, k_,
|
|
134
|
+
ff_core_Array.Array_set(array_, k_, ff_core_Array.Array_grab(array_, (k_ - 1)));
|
|
139
135
|
k_ -= 1
|
|
140
136
|
};
|
|
141
137
|
ff_core_Array.Array_set(array_, i_, value_);
|
|
@@ -147,26 +143,20 @@ j_ += 1
|
|
|
147
143
|
}
|
|
148
144
|
}
|
|
149
145
|
|
|
150
|
-
export function internalGrab_(self_, index_) {
|
|
151
|
-
|
|
152
|
-
return index_ < 0 || index_ >= self_.array.length ? ff_core_Try.internalThrowGrabException_() : self_.array[index_];
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
146
|
export async function new_$($task) {
|
|
157
|
-
|
|
147
|
+
return {array: []}
|
|
158
148
|
}
|
|
159
149
|
|
|
160
150
|
export async function fill_$(size_, value_, $task) {
|
|
161
|
-
|
|
151
|
+
return {array: ff_core_List.fill_(size_, value_)}
|
|
162
152
|
}
|
|
163
153
|
|
|
164
154
|
export async function fillBy_$(size_, body_, $task) {
|
|
165
|
-
|
|
155
|
+
return {array: (await ff_core_List.fillBy_$(size_, body_, $task))}
|
|
166
156
|
}
|
|
167
157
|
|
|
168
158
|
export async function range_$(size_, $task) {
|
|
169
|
-
|
|
159
|
+
return {array: ff_core_List.range_(size_)}
|
|
170
160
|
}
|
|
171
161
|
|
|
172
162
|
export async function sortRange_$(array_, compare_, start_, end_, $task) {
|
|
@@ -179,13 +169,13 @@ let middle_ = (start_ + ff_core_Int.Int_div((end_ - start_), 2));
|
|
|
179
169
|
let i_ = start_;
|
|
180
170
|
let j_ = middle_;
|
|
181
171
|
while(((i_ < middle_) && (j_ < end_))) {
|
|
182
|
-
if(((await compare_((array_.array[i_] ?? ff_core_Array.
|
|
172
|
+
if(((await compare_((array_.array[i_] ?? ff_core_Array.Array_grab(array_, i_)), (array_.array[j_] ?? ff_core_Array.Array_grab(array_, j_)), $task)) !== ff_core_Ordering.OrderingAfter())) {
|
|
183
173
|
i_ += 1
|
|
184
174
|
} else {
|
|
185
|
-
const value_ = (array_.array[j_] ?? ff_core_Array.
|
|
175
|
+
const value_ = (array_.array[j_] ?? ff_core_Array.Array_grab(array_, j_));
|
|
186
176
|
let k_ = j_;
|
|
187
177
|
while((k_ > i_)) {
|
|
188
|
-
ff_core_Array.Array_set(array_, k_,
|
|
178
|
+
ff_core_Array.Array_set(array_, k_, ff_core_Array.Array_grab(array_, (k_ - 1)));
|
|
189
179
|
k_ -= 1
|
|
190
180
|
};
|
|
191
181
|
ff_core_Array.Array_set(array_, i_, value_);
|
|
@@ -197,12 +187,8 @@ j_ += 1
|
|
|
197
187
|
}
|
|
198
188
|
}
|
|
199
189
|
|
|
200
|
-
export async function internalGrab_$(self_, index_, $task) {
|
|
201
|
-
throw new Error('Function internalGrab is missing on this target in async context.');
|
|
202
|
-
}
|
|
203
|
-
|
|
204
190
|
export function Array_isEmpty(self_) {
|
|
205
|
-
return self_.array.length === 0
|
|
191
|
+
return (self_.array.length === 0)
|
|
206
192
|
}
|
|
207
193
|
|
|
208
194
|
export function Array_size(self_) {
|
|
@@ -210,41 +196,34 @@ return self_.array.length
|
|
|
210
196
|
}
|
|
211
197
|
|
|
212
198
|
export function Array_get(self_, index_) {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
199
|
+
if(((index_ >= 0) && (index_ < self_.array.length))) {
|
|
200
|
+
return ff_core_Option.Some(self_.array[index_])
|
|
201
|
+
} else {
|
|
202
|
+
return ff_core_Option.None()
|
|
203
|
+
}
|
|
218
204
|
}
|
|
219
205
|
|
|
220
206
|
export function Array_grab(self_, index_) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
207
|
+
if(((index_ < 0) || (index_ >= self_.array.length))) {
|
|
208
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
209
|
+
};
|
|
210
|
+
return self_.array[index_]
|
|
224
211
|
}
|
|
225
212
|
|
|
226
|
-
export function
|
|
227
|
-
return
|
|
213
|
+
export function Array_first(self_) {
|
|
214
|
+
return ff_core_Array.Array_get(self_, 0)
|
|
228
215
|
}
|
|
229
216
|
|
|
230
|
-
export function
|
|
231
|
-
return
|
|
217
|
+
export function Array_last(self_) {
|
|
218
|
+
return ff_core_Array.Array_get(self_, (self_.array.length - 1))
|
|
232
219
|
}
|
|
233
220
|
|
|
234
|
-
export function
|
|
235
|
-
|
|
236
|
-
return self_.array.length > 0
|
|
237
|
-
? ff_core_Option.Some(self_.array[0])
|
|
238
|
-
: ff_core_Option.None()
|
|
239
|
-
|
|
221
|
+
export function Array_grabFirst(self_) {
|
|
222
|
+
return (self_.array[0] ?? ff_core_Array.Array_grab(self_, 0))
|
|
240
223
|
}
|
|
241
224
|
|
|
242
|
-
export function
|
|
243
|
-
|
|
244
|
-
return self_.array.length > 0
|
|
245
|
-
? ff_core_Option.Some(self_.array[self_.array.length - 1])
|
|
246
|
-
: ff_core_Option.None()
|
|
247
|
-
|
|
225
|
+
export function Array_grabLast(self_) {
|
|
226
|
+
return ff_core_Array.Array_grab(self_, (self_.array.length - 1))
|
|
248
227
|
}
|
|
249
228
|
|
|
250
229
|
export function Array_push(self_, value_) {
|
|
@@ -252,131 +231,168 @@ self_.array.push(value_)
|
|
|
252
231
|
}
|
|
253
232
|
|
|
254
233
|
export function Array_pushArray(self_, value_) {
|
|
255
|
-
|
|
234
|
+
ff_core_Array.Array_pushList(self_, value_.array)
|
|
256
235
|
}
|
|
257
236
|
|
|
258
|
-
export function Array_pushList(self_,
|
|
259
|
-
self_.array.
|
|
237
|
+
export function Array_pushList(self_, list_) {
|
|
238
|
+
const originalLength_ = self_.array.length;
|
|
239
|
+
self_.array.length += list_.length;
|
|
240
|
+
for(let for_i = 0, for_e = list_.length; for_i < for_e; for_i++) {
|
|
241
|
+
const i_ = for_i;
|
|
242
|
+
self_.array[(originalLength_ + i_)] = list_[i_]
|
|
243
|
+
}
|
|
260
244
|
}
|
|
261
245
|
|
|
262
246
|
export function Array_pop(self_) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
: ff_core_Option.None()
|
|
267
|
-
|
|
247
|
+
if((self_.array.length > 0)) {
|
|
248
|
+
return ff_core_Option.Some(self_.array.pop())
|
|
249
|
+
} else return ff_core_Option.None()
|
|
268
250
|
}
|
|
269
251
|
|
|
270
252
|
export function Array_set(self_, index_, value_) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
self_.array[index_] = value_
|
|
276
|
-
|
|
253
|
+
if(((index_ < 0) || (index_ >= self_.array.length))) {
|
|
254
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
255
|
+
};
|
|
256
|
+
self_.array[index_] = value_
|
|
277
257
|
}
|
|
278
258
|
|
|
279
259
|
export function Array_modify(self_, index_, body_) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
self_.array[index_] = body_(self_.array[index_])
|
|
285
|
-
|
|
260
|
+
if(((index_ < 0) || (index_ >= self_.array.length))) {
|
|
261
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
262
|
+
};
|
|
263
|
+
self_.array[index_] = body_(self_.array[index_])
|
|
286
264
|
}
|
|
287
265
|
|
|
288
266
|
export function Array_fill(self_, value_, start_ = 0, end_ = 9007199254740991) {
|
|
289
|
-
|
|
290
|
-
self_.array.fill(value_, start_, end_);
|
|
291
|
-
|
|
267
|
+
self_.array.fill(value_, start_, end_)
|
|
292
268
|
}
|
|
293
269
|
|
|
294
270
|
export function Array_copy(self_, target_, start_, end_) {
|
|
295
|
-
|
|
296
|
-
self_.array.copyWithin(target_, start_, end_);
|
|
297
|
-
|
|
271
|
+
self_.array.copyWithin(target_, start_, end_)
|
|
298
272
|
}
|
|
299
273
|
|
|
300
274
|
export function Array_delete(self_, start_, deleteCount_) {
|
|
301
|
-
|
|
302
|
-
self_.array.splice(start_, deleteCount_);
|
|
303
|
-
|
|
275
|
+
self_.array.splice(start_, deleteCount_)
|
|
304
276
|
}
|
|
305
277
|
|
|
306
278
|
export function Array_insert(self_, start_, value_, deleteCount_ = 0) {
|
|
307
|
-
|
|
308
|
-
self_.array.splice(start_, deleteCount_, value_);
|
|
309
|
-
|
|
279
|
+
self_.array.splice(start_, deleteCount_, value_)
|
|
310
280
|
}
|
|
311
281
|
|
|
312
|
-
export function Array_insertArray(self_, start_,
|
|
313
|
-
|
|
314
|
-
self_.array.splice(start_, deleteCount_, ...value_.array);
|
|
315
|
-
|
|
282
|
+
export function Array_insertArray(self_, start_, array_, deleteCount_ = 0) {
|
|
283
|
+
ff_core_Array.Array_insertList(self_, start_, array_.array, deleteCount_)
|
|
316
284
|
}
|
|
317
285
|
|
|
318
|
-
export function Array_insertList(self_, start_,
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
286
|
+
export function Array_insertList(self_, start_, list_, deleteCount_ = 0) {
|
|
287
|
+
if(((start_ < 0) || (start_ > self_.array.length))) {
|
|
288
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
289
|
+
};
|
|
290
|
+
const deleteEnd_ = (start_ + deleteCount_);
|
|
291
|
+
if(((deleteEnd_ < 0) || (deleteEnd_ > self_.array.length))) {
|
|
292
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
293
|
+
};
|
|
294
|
+
const insertCount_ = list_.length;
|
|
295
|
+
const delta_ = (insertCount_ - deleteCount_);
|
|
296
|
+
if((delta_ > 0)) {
|
|
297
|
+
self_.array.length += delta_;
|
|
298
|
+
self_.array.copyWithin((start_ + insertCount_), deleteEnd_)
|
|
299
|
+
} else if((delta_ < 0)) {
|
|
300
|
+
self_.array.copyWithin((start_ + insertCount_), deleteEnd_);
|
|
301
|
+
self_.array.length += delta_
|
|
302
|
+
} else {};
|
|
303
|
+
for(let for_i = 0, for_e = insertCount_; for_i < for_e; for_i++) {
|
|
304
|
+
const i_ = for_i;
|
|
305
|
+
self_.array[(start_ + i_)] = list_[i_]
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export function Array_mapInPlace(self_, body_) {
|
|
310
|
+
let i_ = 0;
|
|
311
|
+
while((i_ < self_.array.length)) {
|
|
312
|
+
self_.array[i_] = body_(self_.array[i_]);
|
|
313
|
+
i_ += 1
|
|
314
|
+
}
|
|
322
315
|
}
|
|
323
316
|
|
|
324
317
|
export function Array_each(self_, body_) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
318
|
+
let i_ = 0;
|
|
319
|
+
while((i_ < self_.array.length)) {
|
|
320
|
+
body_(self_.array[i_]);
|
|
321
|
+
i_ += 1
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export function Array_eachWithIndex(self_, body_) {
|
|
326
|
+
let i_ = 0;
|
|
327
|
+
while((i_ < self_.array.length)) {
|
|
328
|
+
body_(i_, self_.array[i_]);
|
|
329
|
+
i_ += 1
|
|
330
|
+
}
|
|
328
331
|
}
|
|
329
332
|
|
|
330
333
|
export function Array_eachWhile(self_, body_) {
|
|
331
|
-
|
|
334
|
+
let i_ = 0;
|
|
335
|
+
while((i_ < self_.array.length)) {
|
|
336
|
+
if(body_(self_.array[i_])) {
|
|
337
|
+
i_ += 1
|
|
338
|
+
} else {
|
|
339
|
+
i_ = self_.array.length
|
|
340
|
+
}
|
|
341
|
+
}
|
|
332
342
|
}
|
|
333
343
|
|
|
334
344
|
export function Array_all(self_, body_) {
|
|
335
345
|
let result_ = true;
|
|
336
|
-
|
|
346
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
347
|
+
const x_ = for_a[for_i];
|
|
337
348
|
result_ = body_(x_);
|
|
338
|
-
|
|
339
|
-
}
|
|
349
|
+
if(!result_) break
|
|
350
|
+
};
|
|
340
351
|
return result_
|
|
341
352
|
}
|
|
342
353
|
|
|
343
354
|
export function Array_any(self_, body_) {
|
|
344
355
|
let result_ = false;
|
|
345
|
-
|
|
356
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
357
|
+
const x_ = for_a[for_i];
|
|
346
358
|
result_ = body_(x_);
|
|
347
|
-
|
|
348
|
-
}
|
|
359
|
+
if(!(!result_)) break
|
|
360
|
+
};
|
|
349
361
|
return result_
|
|
350
362
|
}
|
|
351
363
|
|
|
352
364
|
export function Array_find(self_, body_) {
|
|
353
365
|
let result_ = ff_core_Option.None();
|
|
354
|
-
|
|
366
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
367
|
+
const x_ = for_a[for_i];
|
|
355
368
|
if(body_(x_)) {
|
|
356
369
|
result_ = ff_core_Option.Some(x_);
|
|
357
|
-
|
|
370
|
+
if(!false) break
|
|
358
371
|
} else {
|
|
359
|
-
|
|
372
|
+
if(!true) break
|
|
360
373
|
}
|
|
361
|
-
}
|
|
374
|
+
};
|
|
362
375
|
return result_
|
|
363
376
|
}
|
|
364
377
|
|
|
365
378
|
export function Array_indexWhere(self_, body_) {
|
|
366
379
|
let i_ = (-1);
|
|
367
380
|
let result_ = false;
|
|
368
|
-
|
|
381
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
382
|
+
const x_ = for_a[for_i];
|
|
369
383
|
i_ += 1;
|
|
370
384
|
result_ = body_(x_);
|
|
371
|
-
|
|
372
|
-
}
|
|
385
|
+
if(!(!result_)) break
|
|
386
|
+
};
|
|
373
387
|
if(result_) {
|
|
374
388
|
return ff_core_Option.Some(i_)
|
|
375
389
|
} else return ff_core_Option.None()
|
|
376
390
|
}
|
|
377
391
|
|
|
378
392
|
export function Array_drain(self_) {
|
|
379
|
-
const
|
|
393
|
+
const result_ = self_.array;
|
|
394
|
+
self_.array = [];
|
|
395
|
+
return result_
|
|
380
396
|
}
|
|
381
397
|
|
|
382
398
|
export function Array_toList(self_, start_ = 0, end_ = 9007199254740991) {
|
|
@@ -398,156 +414,225 @@ return ff_core_Ordering_Order$S.compare_(body_(_w1), body_(_w2))
|
|
|
398
414
|
}
|
|
399
415
|
|
|
400
416
|
export function Array_sortWith(self_, ordering_) {
|
|
401
|
-
|
|
417
|
+
if(false) {
|
|
418
|
+
ff_core_Array.sortRange_(self_, ordering_, 0, self_.array.length)
|
|
419
|
+
} else {
|
|
420
|
+
self_.array.sort(((x_, y_) => {
|
|
421
|
+
return ff_core_Ordering.Ordering_toInt(ordering_(x_, y_))
|
|
422
|
+
}))
|
|
423
|
+
}
|
|
402
424
|
}
|
|
403
425
|
|
|
404
426
|
export async function Array_isEmpty$(self_, $task) {
|
|
405
|
-
|
|
427
|
+
return (self_.array.length === 0)
|
|
406
428
|
}
|
|
407
429
|
|
|
408
430
|
export async function Array_size$(self_, $task) {
|
|
409
|
-
|
|
431
|
+
return self_.array.length
|
|
410
432
|
}
|
|
411
433
|
|
|
412
434
|
export async function Array_get$(self_, index_, $task) {
|
|
413
|
-
|
|
435
|
+
if(((index_ >= 0) && (index_ < self_.array.length))) {
|
|
436
|
+
return ff_core_Option.Some(self_.array[index_])
|
|
437
|
+
} else {
|
|
438
|
+
return ff_core_Option.None()
|
|
439
|
+
}
|
|
414
440
|
}
|
|
415
441
|
|
|
416
442
|
export async function Array_grab$(self_, index_, $task) {
|
|
417
|
-
|
|
443
|
+
if(((index_ < 0) || (index_ >= self_.array.length))) {
|
|
444
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
445
|
+
};
|
|
446
|
+
return self_.array[index_]
|
|
418
447
|
}
|
|
419
448
|
|
|
420
|
-
export async function
|
|
421
|
-
return
|
|
449
|
+
export async function Array_first$(self_, $task) {
|
|
450
|
+
return ff_core_Array.Array_get(self_, 0)
|
|
422
451
|
}
|
|
423
452
|
|
|
424
|
-
export async function
|
|
425
|
-
return
|
|
453
|
+
export async function Array_last$(self_, $task) {
|
|
454
|
+
return ff_core_Array.Array_get(self_, (self_.array.length - 1))
|
|
426
455
|
}
|
|
427
456
|
|
|
428
|
-
export async function
|
|
429
|
-
|
|
457
|
+
export async function Array_grabFirst$(self_, $task) {
|
|
458
|
+
return (self_.array[0] ?? ff_core_Array.Array_grab(self_, 0))
|
|
430
459
|
}
|
|
431
460
|
|
|
432
|
-
export async function
|
|
433
|
-
|
|
461
|
+
export async function Array_grabLast$(self_, $task) {
|
|
462
|
+
return ff_core_Array.Array_grab(self_, (self_.array.length - 1))
|
|
434
463
|
}
|
|
435
464
|
|
|
436
465
|
export async function Array_push$(self_, value_, $task) {
|
|
437
|
-
|
|
466
|
+
self_.array.push(value_)
|
|
438
467
|
}
|
|
439
468
|
|
|
440
469
|
export async function Array_pushArray$(self_, value_, $task) {
|
|
441
|
-
|
|
470
|
+
ff_core_Array.Array_pushList(self_, value_.array)
|
|
442
471
|
}
|
|
443
472
|
|
|
444
|
-
export async function Array_pushList$(self_,
|
|
445
|
-
|
|
473
|
+
export async function Array_pushList$(self_, list_, $task) {
|
|
474
|
+
const originalLength_ = self_.array.length;
|
|
475
|
+
self_.array.length += list_.length;
|
|
476
|
+
for(let for_i = 0, for_e = list_.length; for_i < for_e; for_i++) {
|
|
477
|
+
const i_ = for_i;
|
|
478
|
+
self_.array[(originalLength_ + i_)] = list_[i_]
|
|
479
|
+
}
|
|
446
480
|
}
|
|
447
481
|
|
|
448
482
|
export async function Array_pop$(self_, $task) {
|
|
449
|
-
|
|
483
|
+
if((self_.array.length > 0)) {
|
|
484
|
+
return ff_core_Option.Some(self_.array.pop())
|
|
485
|
+
} else return ff_core_Option.None()
|
|
450
486
|
}
|
|
451
487
|
|
|
452
488
|
export async function Array_set$(self_, index_, value_, $task) {
|
|
453
|
-
|
|
489
|
+
if(((index_ < 0) || (index_ >= self_.array.length))) {
|
|
490
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
491
|
+
};
|
|
492
|
+
self_.array[index_] = value_
|
|
454
493
|
}
|
|
455
494
|
|
|
456
495
|
export async function Array_modify$(self_, index_, body_, $task) {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
self_.array[index_] = await body_(self_.array[index_], $task)
|
|
462
|
-
|
|
496
|
+
if(((index_ < 0) || (index_ >= self_.array.length))) {
|
|
497
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
498
|
+
};
|
|
499
|
+
self_.array[index_] = (await body_(self_.array[index_], $task))
|
|
463
500
|
}
|
|
464
501
|
|
|
465
502
|
export async function Array_fill$(self_, value_, start_ = 0, end_ = 9007199254740991, $task) {
|
|
466
|
-
|
|
503
|
+
self_.array.fill(value_, start_, end_)
|
|
467
504
|
}
|
|
468
505
|
|
|
469
506
|
export async function Array_copy$(self_, target_, start_, end_, $task) {
|
|
470
|
-
|
|
507
|
+
self_.array.copyWithin(target_, start_, end_)
|
|
471
508
|
}
|
|
472
509
|
|
|
473
510
|
export async function Array_delete$(self_, start_, deleteCount_, $task) {
|
|
474
|
-
|
|
511
|
+
self_.array.splice(start_, deleteCount_)
|
|
475
512
|
}
|
|
476
513
|
|
|
477
514
|
export async function Array_insert$(self_, start_, value_, deleteCount_ = 0, $task) {
|
|
478
|
-
|
|
515
|
+
self_.array.splice(start_, deleteCount_, value_)
|
|
479
516
|
}
|
|
480
517
|
|
|
481
|
-
export async function Array_insertArray$(self_, start_,
|
|
482
|
-
|
|
518
|
+
export async function Array_insertArray$(self_, start_, array_, deleteCount_ = 0, $task) {
|
|
519
|
+
ff_core_Array.Array_insertList(self_, start_, array_.array, deleteCount_)
|
|
483
520
|
}
|
|
484
521
|
|
|
485
|
-
export async function Array_insertList$(self_, start_,
|
|
486
|
-
|
|
522
|
+
export async function Array_insertList$(self_, start_, list_, deleteCount_ = 0, $task) {
|
|
523
|
+
if(((start_ < 0) || (start_ > self_.array.length))) {
|
|
524
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
525
|
+
};
|
|
526
|
+
const deleteEnd_ = (start_ + deleteCount_);
|
|
527
|
+
if(((deleteEnd_ < 0) || (deleteEnd_ > self_.array.length))) {
|
|
528
|
+
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Core.GrabException(), ff_core_Core.ff_core_Any_HasAnyTag$ff_core_Core_GrabException)})
|
|
529
|
+
};
|
|
530
|
+
const insertCount_ = list_.length;
|
|
531
|
+
const delta_ = (insertCount_ - deleteCount_);
|
|
532
|
+
if((delta_ > 0)) {
|
|
533
|
+
self_.array.length += delta_;
|
|
534
|
+
self_.array.copyWithin((start_ + insertCount_), deleteEnd_)
|
|
535
|
+
} else if((delta_ < 0)) {
|
|
536
|
+
self_.array.copyWithin((start_ + insertCount_), deleteEnd_);
|
|
537
|
+
self_.array.length += delta_
|
|
538
|
+
} else {};
|
|
539
|
+
for(let for_i = 0, for_e = insertCount_; for_i < for_e; for_i++) {
|
|
540
|
+
const i_ = for_i;
|
|
541
|
+
self_.array[(start_ + i_)] = list_[i_]
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
export async function Array_mapInPlace$(self_, body_, $task) {
|
|
546
|
+
let i_ = 0;
|
|
547
|
+
while((i_ < self_.array.length)) {
|
|
548
|
+
self_.array[i_] = (await body_(self_.array[i_], $task));
|
|
549
|
+
i_ += 1
|
|
550
|
+
}
|
|
487
551
|
}
|
|
488
552
|
|
|
489
553
|
export async function Array_each$(self_, body_, $task) {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
554
|
+
let i_ = 0;
|
|
555
|
+
while((i_ < self_.array.length)) {
|
|
556
|
+
(await body_(self_.array[i_], $task));
|
|
557
|
+
i_ += 1
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
export async function Array_eachWithIndex$(self_, body_, $task) {
|
|
562
|
+
let i_ = 0;
|
|
563
|
+
while((i_ < self_.array.length)) {
|
|
564
|
+
(await body_(i_, self_.array[i_], $task));
|
|
565
|
+
i_ += 1
|
|
566
|
+
}
|
|
495
567
|
}
|
|
496
568
|
|
|
497
569
|
export async function Array_eachWhile$(self_, body_, $task) {
|
|
498
|
-
|
|
570
|
+
let i_ = 0;
|
|
571
|
+
while((i_ < self_.array.length)) {
|
|
572
|
+
if((await body_(self_.array[i_], $task))) {
|
|
573
|
+
i_ += 1
|
|
574
|
+
} else {
|
|
575
|
+
i_ = self_.array.length
|
|
576
|
+
}
|
|
577
|
+
}
|
|
499
578
|
}
|
|
500
579
|
|
|
501
580
|
export async function Array_all$(self_, body_, $task) {
|
|
502
581
|
let result_ = true;
|
|
503
|
-
(
|
|
582
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
583
|
+
const x_ = for_a[for_i];
|
|
504
584
|
result_ = (await body_(x_, $task));
|
|
505
|
-
|
|
506
|
-
}
|
|
585
|
+
if(!result_) break
|
|
586
|
+
};
|
|
507
587
|
return result_
|
|
508
588
|
}
|
|
509
589
|
|
|
510
590
|
export async function Array_any$(self_, body_, $task) {
|
|
511
591
|
let result_ = false;
|
|
512
|
-
(
|
|
592
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
593
|
+
const x_ = for_a[for_i];
|
|
513
594
|
result_ = (await body_(x_, $task));
|
|
514
|
-
|
|
515
|
-
}
|
|
595
|
+
if(!(!result_)) break
|
|
596
|
+
};
|
|
516
597
|
return result_
|
|
517
598
|
}
|
|
518
599
|
|
|
519
600
|
export async function Array_find$(self_, body_, $task) {
|
|
520
601
|
let result_ = ff_core_Option.None();
|
|
521
|
-
(
|
|
602
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
603
|
+
const x_ = for_a[for_i];
|
|
522
604
|
if((await body_(x_, $task))) {
|
|
523
605
|
result_ = ff_core_Option.Some(x_);
|
|
524
|
-
|
|
606
|
+
if(!false) break
|
|
525
607
|
} else {
|
|
526
|
-
|
|
608
|
+
if(!true) break
|
|
527
609
|
}
|
|
528
|
-
}
|
|
610
|
+
};
|
|
529
611
|
return result_
|
|
530
612
|
}
|
|
531
613
|
|
|
532
614
|
export async function Array_indexWhere$(self_, body_, $task) {
|
|
533
615
|
let i_ = (-1);
|
|
534
616
|
let result_ = false;
|
|
535
|
-
(
|
|
617
|
+
for(let for_a = self_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
618
|
+
const x_ = for_a[for_i];
|
|
536
619
|
i_ += 1;
|
|
537
620
|
result_ = (await body_(x_, $task));
|
|
538
|
-
|
|
539
|
-
}
|
|
621
|
+
if(!(!result_)) break
|
|
622
|
+
};
|
|
540
623
|
if(result_) {
|
|
541
624
|
return ff_core_Option.Some(i_)
|
|
542
625
|
} else return ff_core_Option.None()
|
|
543
626
|
}
|
|
544
627
|
|
|
545
628
|
export async function Array_drain$(self_, $task) {
|
|
546
|
-
|
|
629
|
+
const result_ = self_.array;
|
|
630
|
+
self_.array = [];
|
|
631
|
+
return result_
|
|
547
632
|
}
|
|
548
633
|
|
|
549
634
|
export async function Array_toList$(self_, start_ = 0, end_ = 9007199254740991, $task) {
|
|
550
|
-
|
|
635
|
+
return self_.array.slice(start_, end_)
|
|
551
636
|
}
|
|
552
637
|
|
|
553
638
|
export async function Array_toStream$(self_, start_ = 0, end_ = 9007199254740991, $task) {
|
|
@@ -555,7 +640,7 @@ return (await ff_core_List.List_toStream$(ff_core_Array.Array_toList(self_, star
|
|
|
555
640
|
}
|
|
556
641
|
|
|
557
642
|
export async function Array_reverse$(self_, $task) {
|
|
558
|
-
|
|
643
|
+
self_.array.reverse()
|
|
559
644
|
}
|
|
560
645
|
|
|
561
646
|
export async function Array_sortBy$(self_, body_, ff_core_Ordering_Order$S, $task) {
|
|
@@ -565,7 +650,13 @@ return ff_core_Ordering_Order$S.compare_((await body_(_w1, $task)), (await body_
|
|
|
565
650
|
}
|
|
566
651
|
|
|
567
652
|
export async function Array_sortWith$(self_, ordering_, $task) {
|
|
568
|
-
|
|
653
|
+
if(true) {
|
|
654
|
+
(await ff_core_Array.sortRange_$(self_, ordering_, 0, self_.array.length, $task))
|
|
655
|
+
} else {
|
|
656
|
+
self_.array.sort((async (a_1, a_2) => await (async (x_, y_, $task) => {
|
|
657
|
+
return ff_core_Ordering.Ordering_toInt((await ordering_(x_, y_, $task)))
|
|
658
|
+
})(a_1, a_2, $task)))
|
|
659
|
+
}
|
|
569
660
|
}
|
|
570
661
|
|
|
571
662
|
export function Array_sort(self_, ff_core_Ordering_Order$T) {
|
|
@@ -585,31 +676,33 @@ return self_.array.join(separator_)
|
|
|
585
676
|
}
|
|
586
677
|
|
|
587
678
|
export async function Array_join$(self_, separator_ = "", $task) {
|
|
588
|
-
|
|
679
|
+
return self_.array.join(separator_)
|
|
589
680
|
}
|
|
590
681
|
|
|
591
682
|
export function ff_core_Show_Show$ff_core_Array_Array(ff_core_Show_Show$T) { return {
|
|
592
683
|
show_(value_) {
|
|
593
684
|
const array_ = ff_core_Array.new_();
|
|
594
685
|
array_.array.push("[");
|
|
595
|
-
|
|
686
|
+
for(let for_a = value_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
687
|
+
const x_ = for_a[for_i];
|
|
596
688
|
if((array_.array.length > 1)) {
|
|
597
689
|
array_.array.push(", ")
|
|
598
690
|
};
|
|
599
691
|
array_.array.push(ff_core_Show_Show$T.show_(x_))
|
|
600
|
-
}
|
|
692
|
+
};
|
|
601
693
|
array_.array.push("].toArray()");
|
|
602
694
|
return ff_core_Array.Array_join(array_, "")
|
|
603
695
|
},
|
|
604
696
|
async show_$(value_, $task) {
|
|
605
697
|
const array_ = ff_core_Array.new_();
|
|
606
698
|
array_.array.push("[");
|
|
607
|
-
|
|
699
|
+
for(let for_a = value_.array, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
700
|
+
const x_ = for_a[for_i];
|
|
608
701
|
if((array_.array.length > 1)) {
|
|
609
702
|
array_.array.push(", ")
|
|
610
703
|
};
|
|
611
704
|
array_.array.push(ff_core_Show_Show$T.show_(x_))
|
|
612
|
-
}
|
|
705
|
+
};
|
|
613
706
|
array_.array.push("].toArray()");
|
|
614
707
|
return ff_core_Array.Array_join(array_, "")
|
|
615
708
|
}
|