firefly-compiler 0.5.76 → 0.5.78

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.
Files changed (157) hide show
  1. package/bin/firefly.mjs +1 -1
  2. package/compiler/Builder.ff +3 -1
  3. package/compiler/Compiler.ff +7 -3
  4. package/compiler/JsEmitter.ff +1564 -623
  5. package/compiler/Main.ff +1 -1
  6. package/compiler/SourceMap.ff +149 -0
  7. package/core/Buffer.ff +2 -1
  8. package/core/BuildSystem.ff +3 -1
  9. package/core/Js.ff +6 -0
  10. package/firefly.sh +1 -1
  11. package/fireflysite/Main.ff +2 -1
  12. package/output/js/ff/compiler/Builder.mjs +8 -44
  13. package/output/js/ff/compiler/Builder.mjs.map +181 -0
  14. package/output/js/ff/compiler/Compiler.mjs +23 -16
  15. package/output/js/ff/compiler/Compiler.mjs.map +155 -0
  16. package/output/js/ff/compiler/Dependencies.mjs +12 -14
  17. package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
  18. package/output/js/ff/compiler/DependencyLock.mjs +1 -4
  19. package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
  20. package/output/js/ff/compiler/Deriver.mjs +10 -11
  21. package/output/js/ff/compiler/Deriver.mjs.map +204 -0
  22. package/output/js/ff/compiler/Dictionaries.mjs +12 -13
  23. package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
  24. package/output/js/ff/compiler/Environment.mjs +24 -27
  25. package/output/js/ff/compiler/Environment.mjs.map +141 -0
  26. package/output/js/ff/compiler/Inference.mjs +83 -92
  27. package/output/js/ff/compiler/Inference.mjs.map +355 -0
  28. package/output/js/ff/compiler/JsEmitter.mjs +3689 -1687
  29. package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
  30. package/output/js/ff/compiler/JsImporter.mjs +9 -12
  31. package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
  32. package/output/js/ff/compiler/LspHook.mjs +17 -18
  33. package/output/js/ff/compiler/LspHook.mjs.map +140 -0
  34. package/output/js/ff/compiler/Main.mjs +57 -67
  35. package/output/js/ff/compiler/Main.mjs.map +226 -0
  36. package/output/js/ff/compiler/ModuleCache.mjs +1 -4
  37. package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
  38. package/output/js/ff/compiler/Parser.mjs +54 -57
  39. package/output/js/ff/compiler/Parser.mjs.map +406 -0
  40. package/output/js/ff/compiler/Patterns.mjs +19 -22
  41. package/output/js/ff/compiler/Patterns.mjs.map +119 -0
  42. package/output/js/ff/compiler/Resolver.mjs +40 -39
  43. package/output/js/ff/compiler/Resolver.mjs.map +294 -0
  44. package/output/js/ff/compiler/SourceMap.mjs +402 -0
  45. package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
  46. package/output/js/ff/compiler/Substitution.mjs +1 -4
  47. package/output/js/ff/compiler/Substitution.mjs.map +138 -0
  48. package/output/js/ff/compiler/Syntax.mjs +250 -249
  49. package/output/js/ff/compiler/Syntax.mjs.map +351 -0
  50. package/output/js/ff/compiler/Token.mjs +17 -22
  51. package/output/js/ff/compiler/Token.mjs.map +113 -0
  52. package/output/js/ff/compiler/Tokenizer.mjs +5 -12
  53. package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
  54. package/output/js/ff/compiler/Unification.mjs +32 -33
  55. package/output/js/ff/compiler/Unification.mjs.map +135 -0
  56. package/output/js/ff/compiler/Wildcards.mjs +1 -4
  57. package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
  58. package/output/js/ff/compiler/Workspace.mjs +17 -16
  59. package/output/js/ff/compiler/Workspace.mjs.map +96 -0
  60. package/output/js/ff/core/Any.mjs +1 -4
  61. package/output/js/ff/core/Any.mjs.map +21 -0
  62. package/output/js/ff/core/Array.mjs +14 -15
  63. package/output/js/ff/core/Array.mjs.map +90 -0
  64. package/output/js/ff/core/AssetSystem.mjs +1 -4
  65. package/output/js/ff/core/AssetSystem.mjs.map +56 -0
  66. package/output/js/ff/core/Atomic.mjs +1 -4
  67. package/output/js/ff/core/Atomic.mjs.map +24 -0
  68. package/output/js/ff/core/Bool.mjs +4 -9
  69. package/output/js/ff/core/Bool.mjs.map +19 -0
  70. package/output/js/ff/core/BrowserSystem.mjs +1 -8
  71. package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
  72. package/output/js/ff/core/Buffer.mjs +18 -17
  73. package/output/js/ff/core/Buffer.mjs.map +123 -0
  74. package/output/js/ff/core/BuildSystem.mjs +7 -10
  75. package/output/js/ff/core/BuildSystem.mjs.map +87 -0
  76. package/output/js/ff/core/Channel.mjs +1 -4
  77. package/output/js/ff/core/Channel.mjs.map +67 -0
  78. package/output/js/ff/core/Char.mjs +1 -8
  79. package/output/js/ff/core/Char.mjs.map +21 -0
  80. package/output/js/ff/core/Core.mjs +5 -8
  81. package/output/js/ff/core/Core.mjs.map +40 -0
  82. package/output/js/ff/core/Crypto.mjs +1 -4
  83. package/output/js/ff/core/Crypto.mjs.map +65 -0
  84. package/output/js/ff/core/Date.mjs +8 -7
  85. package/output/js/ff/core/Date.mjs.map +168 -0
  86. package/output/js/ff/core/Duration.mjs +4 -9
  87. package/output/js/ff/core/Duration.mjs.map +18 -0
  88. package/output/js/ff/core/Equal.mjs +9 -14
  89. package/output/js/ff/core/Equal.mjs.map +22 -0
  90. package/output/js/ff/core/Error.mjs +1 -8
  91. package/output/js/ff/core/Error.mjs.map +21 -0
  92. package/output/js/ff/core/FileHandle.mjs +1 -8
  93. package/output/js/ff/core/FileHandle.mjs.map +32 -0
  94. package/output/js/ff/core/Float.mjs +4 -5
  95. package/output/js/ff/core/Float.mjs.map +93 -0
  96. package/output/js/ff/core/HttpClient.mjs +1 -4
  97. package/output/js/ff/core/HttpClient.mjs.map +62 -0
  98. package/output/js/ff/core/Int.mjs +4 -9
  99. package/output/js/ff/core/Int.mjs.map +49 -0
  100. package/output/js/ff/core/IntMap.mjs +3 -6
  101. package/output/js/ff/core/IntMap.mjs.map +52 -0
  102. package/output/js/ff/core/Js.mjs +13 -8
  103. package/output/js/ff/core/Js.mjs.map +121 -0
  104. package/output/js/ff/core/JsSystem.mjs +1 -8
  105. package/output/js/ff/core/JsSystem.mjs.map +59 -0
  106. package/output/js/ff/core/JsValue.mjs +23 -42
  107. package/output/js/ff/core/JsValue.mjs.map +155 -0
  108. package/output/js/ff/core/Json.mjs +25 -26
  109. package/output/js/ff/core/Json.mjs.map +134 -0
  110. package/output/js/ff/core/List.mjs +11 -12
  111. package/output/js/ff/core/List.mjs.map +123 -0
  112. package/output/js/ff/core/Lock.mjs +7 -14
  113. package/output/js/ff/core/Lock.mjs.map +52 -0
  114. package/output/js/ff/core/Log.mjs +1 -8
  115. package/output/js/ff/core/Log.mjs.map +26 -0
  116. package/output/js/ff/core/Map.mjs +6 -7
  117. package/output/js/ff/core/Map.mjs.map +67 -0
  118. package/output/js/ff/core/NodeSystem.mjs +11 -14
  119. package/output/js/ff/core/NodeSystem.mjs.map +137 -0
  120. package/output/js/ff/core/Nothing.mjs +1 -10
  121. package/output/js/ff/core/Nothing.mjs.map +11 -0
  122. package/output/js/ff/core/Option.mjs +10 -15
  123. package/output/js/ff/core/Option.mjs.map +67 -0
  124. package/output/js/ff/core/Ordering.mjs +12 -13
  125. package/output/js/ff/core/Ordering.mjs.map +48 -0
  126. package/output/js/ff/core/Pair.mjs +8 -13
  127. package/output/js/ff/core/Pair.mjs.map +48 -0
  128. package/output/js/ff/core/Path.mjs +5 -14
  129. package/output/js/ff/core/Path.mjs.map +178 -0
  130. package/output/js/ff/core/Queue.mjs +1 -4
  131. package/output/js/ff/core/Queue.mjs.map +45 -0
  132. package/output/js/ff/core/Random.mjs +1 -4
  133. package/output/js/ff/core/Random.mjs.map +79 -0
  134. package/output/js/ff/core/RbMap.mjs +1 -16
  135. package/output/js/ff/core/RbMap.mjs.map +92 -0
  136. package/output/js/ff/core/Serializable.mjs +17 -22
  137. package/output/js/ff/core/Serializable.mjs.map +73 -0
  138. package/output/js/ff/core/Set.mjs +6 -7
  139. package/output/js/ff/core/Set.mjs.map +45 -0
  140. package/output/js/ff/core/Show.mjs +11 -20
  141. package/output/js/ff/core/Show.mjs.map +29 -0
  142. package/output/js/ff/core/SourceLocation.mjs +7 -8
  143. package/output/js/ff/core/SourceLocation.mjs.map +41 -0
  144. package/output/js/ff/core/Stream.mjs +1 -4
  145. package/output/js/ff/core/Stream.mjs.map +92 -0
  146. package/output/js/ff/core/String.mjs +14 -19
  147. package/output/js/ff/core/String.mjs.map +106 -0
  148. package/output/js/ff/core/StringMap.mjs +3 -6
  149. package/output/js/ff/core/StringMap.mjs.map +52 -0
  150. package/output/js/ff/core/Task.mjs +1 -8
  151. package/output/js/ff/core/Task.mjs.map +79 -0
  152. package/output/js/ff/core/Try.mjs +3 -6
  153. package/output/js/ff/core/Try.mjs.map +41 -0
  154. package/output/js/ff/core/Unit.mjs +5 -12
  155. package/output/js/ff/core/Unit.mjs.map +18 -0
  156. package/package.json +1 -1
  157. package/vscode/package.json +1 -1
package/bin/firefly.mjs CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env -S node --harmony-temporal
1
+ #!/usr/bin/env -S node --harmony-temporal --enable-source-maps
2
2
  import * as firefly from '../output/js/ff/compiler/Main.run.mjs';
@@ -44,7 +44,9 @@ build(
44
44
  resolvedDependencies.packagePaths.each {packagePair, packagePath =>
45
45
  resolvedDependencies.packages.get(packagePair).each {packageInfo =>
46
46
  processNodeModules(system, jsPathFile, packagePath, packageInfo)
47
- processIncludes(jsPathFile, packagePath, packageInfo)
47
+ if(emitTarget != EmitBrowser) {
48
+ processIncludes(jsPathFile, packagePath, packageInfo)
49
+ }
48
50
  }
49
51
  }
50
52
  True
@@ -222,14 +222,18 @@ extend self: Compiler {
222
222
  compilerModuleFileUrl = self.compilerModulePath.map {_.url()}
223
223
  moduleKey = moduleKey
224
224
  )
225
- let js = emitter.emitModule(module)
225
+ emitter.emitModule(module)
226
226
  let packagePath = self.jsOutputPath.slash(moduleKey.packagePair.group).slash(moduleKey.packagePair.name)
227
227
  let jsPath = moduleKey.folders.foldLeft(packagePath) {p, f => p.slash(f)}
228
228
  let jsFile = jsPath.slash(moduleKey.name + ".mjs")
229
+ let sourceMapFile = jsPath.slash(moduleKey.name + ".mjs.map")
230
+ let source = Some(path.readText())
231
+ let jsAndSourceMap = emitter.makeOutputAndSourceMap(path.relativeListTo(jsPath).join("/"), source)
229
232
  jsPath.createDirectory(createParentDirectories = True)
230
- jsFile.writeText(js)
233
+ jsFile.writeText(jsAndSourceMap.first + "\n\n//# sourceMappingURL=" + sourceMapFile.base())
234
+ sourceMapFile.writeText(jsAndSourceMap.second.write(Some(" ")))
231
235
  if(isMainModule) {
232
- let runJs = emitter.emitRun(
236
+ let runJs = emitter.makeRun(
233
237
  moduleKey.name
234
238
  module.functions
235
239
  moduleKey.packagePair