@@ -6,27 +6,11 @@ import org.scalajs.ir.{Types => IRTypes}
6
6
import wasm .converters .WasmTextWriter
7
7
8
8
object Names {
9
- // private[wasm4s] because we don't wanna access it from converters
10
- sealed abstract class WasmName (private [wasm4s] val name : String ) {
11
- def show : String =
12
- s " $$ ${WasmName .sanitizeWatIdentifier(this .name)}"
13
- }
14
- object WasmName {
15
-
16
- /** @see https://webassembly.github.io/spec/core/text/values.html#text-id */
17
- def sanitizeWatIdentifier (indent : String ): String =
18
- if (indent.isEmpty) " _"
19
- else if (indent.forall(isValidWatIdentifierChar)) indent
20
- else indent.map(c => if (isValidWatIdentifierChar(c)) c else '_' ).mkString
21
-
22
- private def isValidWatIdentifierChar (c : Char ): Boolean =
23
- c.isDigit || c.isLetter ||
24
- " !#$%&'*+-./:<=>?@\\ ^_`|~" .contains(c) ||
25
- " $.@_" .contains(c)
9
+ sealed abstract class WasmName {
10
+ val name : String
26
11
}
27
12
28
- final case class WasmLocalName private (override private [wasm4s] val name : String )
29
- extends WasmName (name)
13
+ final case class WasmLocalName private (name : String ) extends WasmName
30
14
object WasmLocalName {
31
15
def fromIR (name : IRNames .LocalName ) = new WasmLocalName (name.nameString)
32
16
def fromStr (str : String ) = new WasmLocalName (str)
@@ -36,14 +20,12 @@ object Names {
36
20
val receiver = new WasmLocalName (" ___<this>" )
37
21
}
38
22
39
- final case class WasmLabelName private (override private [wasm4s] val name : String )
40
- extends WasmName (name)
23
+ final case class WasmLabelName private (name : String ) extends WasmName
41
24
object WasmLabelName {
42
25
def synthetic (id : Int ): WasmLabelName = new WasmLabelName (id.toString())
43
26
}
44
27
45
- final case class WasmGlobalName private (override private [wasm4s] val name : String )
46
- extends WasmName (name)
28
+ final case class WasmGlobalName private (name : String ) extends WasmName
47
29
object WasmGlobalName {
48
30
def forImportedModule (moduleName : String ): WasmGlobalName =
49
31
new WasmGlobalName (s " imported. $moduleName" )
@@ -87,10 +69,12 @@ object Names {
87
69
new WasmGlobalName (" idHashCodeMap" )
88
70
}
89
71
90
- case class WasmFunctionName private (
72
+ final case class WasmFunctionName private (
91
73
val namespace : String ,
92
74
val simpleName : String
93
- ) extends WasmName (namespace + " #" + simpleName)
75
+ ) extends WasmName {
76
+ val name = namespace + " #" + simpleName
77
+ }
94
78
95
79
object WasmFunctionName {
96
80
def apply (
@@ -287,8 +271,7 @@ object Names {
287
271
val searchReflectiveProxy = helper(" searchReflectiveProxy" )
288
272
}
289
273
290
- final case class WasmFieldName private (override private [wasm4s] val name : String )
291
- extends WasmName (name)
274
+ final case class WasmFieldName private (name : String ) extends WasmName
292
275
object WasmFieldName {
293
276
def forClassInstanceField (name : IRNames .FieldName ): WasmFieldName =
294
277
new WasmFieldName (name.nameString)
@@ -441,8 +424,7 @@ object Names {
441
424
}
442
425
443
426
// GC types ====
444
- final case class WasmTypeName private (override private [wasm4s] val name : String )
445
- extends WasmName (name)
427
+ final case class WasmTypeName private (name : String ) extends WasmName
446
428
object WasmTypeName {
447
429
object WasmStructTypeName {
448
430
def forClass (name : IRNames .ClassName ): WasmTypeName =
@@ -533,20 +515,17 @@ object Names {
533
515
534
516
}
535
517
536
- final case class WasmTagName private (override private [wasm4s] val name : String )
537
- extends WasmName (name)
518
+ final case class WasmTagName private (name : String ) extends WasmName
538
519
object WasmTagName {
539
520
def fromStr (str : String ): WasmTagName = new WasmTagName (str)
540
521
}
541
522
542
- final case class WasmDataName private (override private [wasm4s] val name : String )
543
- extends WasmName (name)
523
+ final case class WasmDataName private (name : String ) extends WasmName
544
524
object WasmDataName {
545
525
val string = WasmDataName (" string" )
546
526
}
547
527
548
- final case class WasmExportName private (override private [wasm4s] val name : String )
549
- extends WasmName (name)
528
+ final case class WasmExportName private (name : String ) extends WasmName
550
529
object WasmExportName {
551
530
def fromStr (str : String ) = new WasmExportName (str)
552
531
}
0 commit comments