mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-24 12:11:50 +00:00
Fix external names of class exports and similar; Support a few more kinds in TSDBuilder, see #74
This commit is contained in:
@ -18,20 +18,20 @@
|
||||
(global $enum/SelfReference.ZERO i32 (i32.const 0))
|
||||
(global $enum/SelfReference.ONE i32 (i32.const 1))
|
||||
(memory $0 1)
|
||||
(export "enum/Implicit.ZERO" (global $enum/Implicit.ZERO))
|
||||
(export "enum/Implicit.ONE" (global $enum/Implicit.ONE))
|
||||
(export "enum/Implicit.TWO" (global $enum/Implicit.TWO))
|
||||
(export "enum/Implicit.THREE" (global $enum/Implicit.THREE))
|
||||
(export "enum/Explicit.ZERO" (global $enum/Explicit.ZERO))
|
||||
(export "enum/Explicit.ONE" (global $enum/Explicit.ONE))
|
||||
(export "enum/Explicit.TWO" (global $enum/Explicit.TWO))
|
||||
(export "enum/Explicit.THREE" (global $enum/Explicit.THREE))
|
||||
(export "enum/Mixed.ZERO" (global $enum/Mixed.ZERO))
|
||||
(export "enum/Mixed.ONE" (global $enum/Mixed.ONE))
|
||||
(export "enum/Mixed.THREE" (global $enum/Mixed.THREE))
|
||||
(export "enum/Mixed.FOUR" (global $enum/Mixed.FOUR))
|
||||
(export "enum/SelfReference.ZERO" (global $enum/SelfReference.ZERO))
|
||||
(export "enum/SelfReference.ONE" (global $enum/SelfReference.ONE))
|
||||
(export "Implicit.ZERO" (global $enum/Implicit.ZERO))
|
||||
(export "Implicit.ONE" (global $enum/Implicit.ONE))
|
||||
(export "Implicit.TWO" (global $enum/Implicit.TWO))
|
||||
(export "Implicit.THREE" (global $enum/Implicit.THREE))
|
||||
(export "Explicit.ZERO" (global $enum/Explicit.ZERO))
|
||||
(export "Explicit.ONE" (global $enum/Explicit.ONE))
|
||||
(export "Explicit.TWO" (global $enum/Explicit.TWO))
|
||||
(export "Explicit.THREE" (global $enum/Explicit.THREE))
|
||||
(export "Mixed.ZERO" (global $enum/Mixed.ZERO))
|
||||
(export "Mixed.ONE" (global $enum/Mixed.ONE))
|
||||
(export "Mixed.THREE" (global $enum/Mixed.THREE))
|
||||
(export "Mixed.FOUR" (global $enum/Mixed.FOUR))
|
||||
(export "SelfReference.ZERO" (global $enum/SelfReference.ZERO))
|
||||
(export "SelfReference.ONE" (global $enum/SelfReference.ONE))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $enum/getZero (; 0 ;) (type $i) (result i32)
|
||||
|
@ -19,20 +19,20 @@
|
||||
(global $enum/SelfReference.ONE i32 (i32.const 1))
|
||||
(global $HEAP_BASE i32 (i32.const 4))
|
||||
(memory $0 1)
|
||||
(export "enum/Implicit.ZERO" (global $enum/Implicit.ZERO))
|
||||
(export "enum/Implicit.ONE" (global $enum/Implicit.ONE))
|
||||
(export "enum/Implicit.TWO" (global $enum/Implicit.TWO))
|
||||
(export "enum/Implicit.THREE" (global $enum/Implicit.THREE))
|
||||
(export "enum/Explicit.ZERO" (global $enum/Explicit.ZERO))
|
||||
(export "enum/Explicit.ONE" (global $enum/Explicit.ONE))
|
||||
(export "enum/Explicit.TWO" (global $enum/Explicit.TWO))
|
||||
(export "enum/Explicit.THREE" (global $enum/Explicit.THREE))
|
||||
(export "enum/Mixed.ZERO" (global $enum/Mixed.ZERO))
|
||||
(export "enum/Mixed.ONE" (global $enum/Mixed.ONE))
|
||||
(export "enum/Mixed.THREE" (global $enum/Mixed.THREE))
|
||||
(export "enum/Mixed.FOUR" (global $enum/Mixed.FOUR))
|
||||
(export "enum/SelfReference.ZERO" (global $enum/SelfReference.ZERO))
|
||||
(export "enum/SelfReference.ONE" (global $enum/SelfReference.ONE))
|
||||
(export "Implicit.ZERO" (global $enum/Implicit.ZERO))
|
||||
(export "Implicit.ONE" (global $enum/Implicit.ONE))
|
||||
(export "Implicit.TWO" (global $enum/Implicit.TWO))
|
||||
(export "Implicit.THREE" (global $enum/Implicit.THREE))
|
||||
(export "Explicit.ZERO" (global $enum/Explicit.ZERO))
|
||||
(export "Explicit.ONE" (global $enum/Explicit.ONE))
|
||||
(export "Explicit.TWO" (global $enum/Explicit.TWO))
|
||||
(export "Explicit.THREE" (global $enum/Explicit.THREE))
|
||||
(export "Mixed.ZERO" (global $enum/Mixed.ZERO))
|
||||
(export "Mixed.ONE" (global $enum/Mixed.ONE))
|
||||
(export "Mixed.THREE" (global $enum/Mixed.THREE))
|
||||
(export "Mixed.FOUR" (global $enum/Mixed.FOUR))
|
||||
(export "SelfReference.ZERO" (global $enum/SelfReference.ZERO))
|
||||
(export "SelfReference.ONE" (global $enum/SelfReference.ONE))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $enum/getZero (; 0 ;) (type $i) (result i32)
|
||||
|
@ -11,7 +11,7 @@
|
||||
(export "a" (global $export/a))
|
||||
(export "b" (global $export/b))
|
||||
(export "renamed_c" (global $export/c))
|
||||
(export "two" (func $export/ns.two))
|
||||
(export "ns.two" (func $export/ns.two))
|
||||
(export "memory" (memory $0))
|
||||
(func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(i32.add
|
||||
|
@ -12,7 +12,7 @@
|
||||
(export "a" (global $export/a))
|
||||
(export "b" (global $export/b))
|
||||
(export "renamed_c" (global $export/c))
|
||||
(export "two" (func $export/ns.two))
|
||||
(export "ns.two" (func $export/ns.two))
|
||||
(export "memory" (memory $0))
|
||||
(func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
|
66
tests/compiler/exports.optimized.wat
Normal file
66
tests/compiler/exports.optimized.wat
Normal file
@ -0,0 +1,66 @@
|
||||
(module
|
||||
(type $iii (func (param i32 i32) (result i32)))
|
||||
(type $i (func (result i32)))
|
||||
(type $ii (func (param i32) (result i32)))
|
||||
(type $iiv (func (param i32 i32)))
|
||||
(type $iv (func (param i32)))
|
||||
(global $exports/Animal.CAT i32 (i32.const 0))
|
||||
(global $exports/Animal.DOG i32 (i32.const 1))
|
||||
(global $exports/animals.Animal.CAT i32 (i32.const 0))
|
||||
(global $exports/animals.Animal.DOG i32 (i32.const 1))
|
||||
(global $exports/Car.TIRES i32 (i32.const 4))
|
||||
(global $exports/vehicles.Car.TIRES i32 (i32.const 4))
|
||||
(global $exports/outer.inner.a i32 (i32.const 42))
|
||||
(memory $0 1)
|
||||
(export "add" (func $exports/add))
|
||||
(export "math.sub" (func $exports/math.sub))
|
||||
(export "Animal.CAT" (global $exports/Animal.CAT))
|
||||
(export "Animal.DOG" (global $exports/Animal.DOG))
|
||||
(export "animals.Animal.CAT" (global $exports/animals.Animal.CAT))
|
||||
(export "animals.Animal.DOG" (global $exports/animals.Animal.DOG))
|
||||
(export "Car.TIRES" (global $exports/Car.TIRES))
|
||||
(export "Car.getNumTires" (func $exports/Car.getNumTires))
|
||||
(export "Car#get:doors" (func $Car#get:doors))
|
||||
(export "Car#set:doors" (func $Car#set:doors))
|
||||
(export "Car#get:numDoors" (func $Car#get:doors))
|
||||
(export "Car#set:numDoors" (func $Car#set:doors))
|
||||
(export "Car#openDoors" (func $exports/Car#openDoors))
|
||||
(export "vehicles.Car.TIRES" (global $exports/vehicles.Car.TIRES))
|
||||
(export "vehicles.Car.getNumTires" (func $exports/Car.getNumTires))
|
||||
(export "vehicles.Car#get:doors" (func $Car#get:doors))
|
||||
(export "vehicles.Car#set:doors" (func $Car#set:doors))
|
||||
(export "vehicles.Car#get:numDoors" (func $Car#get:doors))
|
||||
(export "vehicles.Car#set:numDoors" (func $Car#set:doors))
|
||||
(export "vehicles.Car#openDoors" (func $exports/Car#openDoors))
|
||||
(export "outer.inner.a" (global $exports/outer.inner.a))
|
||||
(export "memory" (memory $0))
|
||||
(func $exports/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(i32.add
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/math.sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(i32.sub
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/Car.getNumTires (; 2 ;) (type $i) (result i32)
|
||||
(i32.const 4)
|
||||
)
|
||||
(func $Car#get:doors (; 3 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(i32.load
|
||||
(get_local $0)
|
||||
)
|
||||
)
|
||||
(func $Car#set:doors (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32)
|
||||
(i32.store
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/Car#openDoors (; 5 ;) (type $iv) (param $0 i32)
|
||||
(nop)
|
||||
)
|
||||
)
|
54
tests/compiler/exports.ts
Normal file
54
tests/compiler/exports.ts
Normal file
@ -0,0 +1,54 @@
|
||||
// top-level function
|
||||
export function add(a: i32, b: i32): i32 {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
// namespaced function
|
||||
export namespace math {
|
||||
export function sub(a: i32, b: i32): i32 {
|
||||
return a - b;
|
||||
}
|
||||
}
|
||||
|
||||
// top-level enum
|
||||
export enum Animal {
|
||||
CAT,
|
||||
DOG
|
||||
}
|
||||
|
||||
// namespaced enum
|
||||
export namespace animals {
|
||||
export enum Animal {
|
||||
CAT,
|
||||
DOG
|
||||
}
|
||||
}
|
||||
|
||||
// top-level class
|
||||
export class Car {
|
||||
static readonly TIRES: i32 = 4;
|
||||
static getNumTires(): i32 { return this.TIRES; }
|
||||
constructor(public doors: i32 = 2) { this.doors = doors; }
|
||||
get numDoors(): i32 { return this.doors; }
|
||||
set numDoors(doors: i32) { this.doors = doors; }
|
||||
openDoors(): void {}
|
||||
}
|
||||
|
||||
// namespaced class
|
||||
export namespace vehicles {
|
||||
export class Car {
|
||||
static readonly TIRES: i32 = 4;
|
||||
static getNumTires(): i32 { return this.TIRES; }
|
||||
constructor(public doors: i32 = 2) { this.doors = doors; }
|
||||
get numDoors(): i32 { return this.doors; }
|
||||
set numDoors(doors: i32) { this.doors = doors; }
|
||||
openDoors(): void {}
|
||||
}
|
||||
}
|
||||
|
||||
// namespaced namespace
|
||||
export namespace outer {
|
||||
export namespace inner {
|
||||
export const a = 42;
|
||||
}
|
||||
}
|
116
tests/compiler/exports.untouched.wat
Normal file
116
tests/compiler/exports.untouched.wat
Normal file
@ -0,0 +1,116 @@
|
||||
(module
|
||||
(type $iii (func (param i32 i32) (result i32)))
|
||||
(type $i (func (result i32)))
|
||||
(type $ii (func (param i32) (result i32)))
|
||||
(type $iiv (func (param i32 i32)))
|
||||
(type $iv (func (param i32)))
|
||||
(global $exports/Animal.CAT i32 (i32.const 0))
|
||||
(global $exports/Animal.DOG i32 (i32.const 1))
|
||||
(global $exports/animals.Animal.CAT i32 (i32.const 0))
|
||||
(global $exports/animals.Animal.DOG i32 (i32.const 1))
|
||||
(global $exports/Car.TIRES i32 (i32.const 4))
|
||||
(global $exports/vehicles.Car.TIRES i32 (i32.const 4))
|
||||
(global $exports/outer.inner.a i32 (i32.const 42))
|
||||
(global $HEAP_BASE i32 (i32.const 4))
|
||||
(memory $0 1)
|
||||
(export "add" (func $exports/add))
|
||||
(export "math.sub" (func $exports/math.sub))
|
||||
(export "Animal.CAT" (global $exports/Animal.CAT))
|
||||
(export "Animal.DOG" (global $exports/Animal.DOG))
|
||||
(export "animals.Animal.CAT" (global $exports/animals.Animal.CAT))
|
||||
(export "animals.Animal.DOG" (global $exports/animals.Animal.DOG))
|
||||
(export "Car.TIRES" (global $exports/Car.TIRES))
|
||||
(export "Car.getNumTires" (func $exports/Car.getNumTires))
|
||||
(export "Car#get:doors" (func $Car#get:doors))
|
||||
(export "Car#set:doors" (func $Car#set:doors))
|
||||
(export "Car#get:numDoors" (func $exports/Car#get:numDoors))
|
||||
(export "Car#set:numDoors" (func $exports/Car#set:numDoors))
|
||||
(export "Car#openDoors" (func $exports/Car#openDoors))
|
||||
(export "vehicles.Car.TIRES" (global $exports/vehicles.Car.TIRES))
|
||||
(export "vehicles.Car.getNumTires" (func $exports/vehicles.Car.getNumTires))
|
||||
(export "vehicles.Car#get:doors" (func $vehicles.Car#get:doors))
|
||||
(export "vehicles.Car#set:doors" (func $vehicles.Car#set:doors))
|
||||
(export "vehicles.Car#get:numDoors" (func $exports/vehicles.Car#get:numDoors))
|
||||
(export "vehicles.Car#set:numDoors" (func $exports/vehicles.Car#set:numDoors))
|
||||
(export "vehicles.Car#openDoors" (func $exports/vehicles.Car#openDoors))
|
||||
(export "outer.inner.a" (global $exports/outer.inner.a))
|
||||
(export "memory" (memory $0))
|
||||
(func $exports/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.add
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $exports/math.sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.sub
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $exports/Car.getNumTires (; 2 ;) (type $i) (result i32)
|
||||
(return
|
||||
(i32.const 4)
|
||||
)
|
||||
)
|
||||
(func $Car#get:doors (; 3 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(i32.load
|
||||
(get_local $0)
|
||||
)
|
||||
)
|
||||
(func $Car#set:doors (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32)
|
||||
(i32.store
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/Car#get:numDoors (; 5 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(return
|
||||
(i32.load
|
||||
(get_local $0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $exports/Car#set:numDoors (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32)
|
||||
(i32.store
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/Car#openDoors (; 7 ;) (type $iv) (param $0 i32)
|
||||
)
|
||||
(func $exports/vehicles.Car.getNumTires (; 8 ;) (type $i) (result i32)
|
||||
(return
|
||||
(i32.const 4)
|
||||
)
|
||||
)
|
||||
(func $vehicles.Car#get:doors (; 9 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(i32.load
|
||||
(get_local $0)
|
||||
)
|
||||
)
|
||||
(func $vehicles.Car#set:doors (; 10 ;) (type $iiv) (param $0 i32) (param $1 i32)
|
||||
(i32.store
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/vehicles.Car#get:numDoors (; 11 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(return
|
||||
(i32.load
|
||||
(get_local $0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $exports/vehicles.Car#set:numDoors (; 12 ;) (type $iiv) (param $0 i32) (param $1 i32)
|
||||
(i32.store
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
(func $exports/vehicles.Car#openDoors (; 13 ;) (type $iv) (param $0 i32)
|
||||
)
|
||||
)
|
@ -54,10 +54,10 @@
|
||||
(export "anExportedConstantGlobal" (global $showcase/anExportedConstantGlobal))
|
||||
(export "aConstantGlobal" (global $showcase/aConstantGlobal))
|
||||
(export "anAliasedConstantGlobal" (global $showcase/anExportedConstantGlobal))
|
||||
(export "showcase/AnEnum.ONE" (global $showcase/AnEnum.ONE))
|
||||
(export "showcase/AnEnum.TWO" (global $showcase/AnEnum.TWO))
|
||||
(export "showcase/AnEnum.FOUR" (global $showcase/AnEnum.FOUR))
|
||||
(export "showcase/AnEnum.FIVE" (global $showcase/AnEnum.FIVE))
|
||||
(export "AnEnum.ONE" (global $showcase/AnEnum.ONE))
|
||||
(export "AnEnum.TWO" (global $showcase/AnEnum.TWO))
|
||||
(export "AnEnum.FOUR" (global $showcase/AnEnum.FOUR))
|
||||
(export "AnEnum.FIVE" (global $showcase/AnEnum.FIVE))
|
||||
(export "anExportedFunction" (func $showcase/anExportedFunction))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
|
@ -64,10 +64,10 @@
|
||||
(export "anExportedConstantGlobal" (global $showcase/anExportedConstantGlobal))
|
||||
(export "aConstantGlobal" (global $showcase/aConstantGlobal))
|
||||
(export "anAliasedConstantGlobal" (global $showcase/anExportedConstantGlobal))
|
||||
(export "showcase/AnEnum.ONE" (global $showcase/AnEnum.ONE))
|
||||
(export "showcase/AnEnum.TWO" (global $showcase/AnEnum.TWO))
|
||||
(export "showcase/AnEnum.FOUR" (global $showcase/AnEnum.FOUR))
|
||||
(export "showcase/AnEnum.FIVE" (global $showcase/AnEnum.FIVE))
|
||||
(export "AnEnum.ONE" (global $showcase/AnEnum.ONE))
|
||||
(export "AnEnum.TWO" (global $showcase/AnEnum.TWO))
|
||||
(export "AnEnum.FOUR" (global $showcase/AnEnum.FOUR))
|
||||
(export "AnEnum.FIVE" (global $showcase/AnEnum.FIVE))
|
||||
(export "anExportedFunction" (func $showcase/anExportedFunction))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
|
Reference in New Issue
Block a user