mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-05-02 10:22:15 +00:00
expose runtime id of exported class
This commit is contained in:
parent
50c49e4275
commit
cc1e4cd004
@ -605,10 +605,19 @@ export class Compiler extends DiagnosticEmitter {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ElementKind.CLASS: {
|
||||
// make the class name itself represent its runtime id
|
||||
if (!(<Class>element).type.isUnmanaged) {
|
||||
let module = this.module;
|
||||
let internalName = (<Class>element).internalName;
|
||||
module.addGlobal(internalName, NativeType.I32, false, module.createI32((<Class>element).ensureId()));
|
||||
module.addGlobalExport(internalName, prefix + name);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// just traverse members below
|
||||
case ElementKind.ENUM:
|
||||
case ElementKind.CLASS:
|
||||
case ElementKind.NAMESPACE:
|
||||
case ElementKind.FILE:
|
||||
case ElementKind.TYPEDEFINITION: break;
|
||||
|
@ -21,6 +21,8 @@
|
||||
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $exports/Car i32 (i32.const 1))
|
||||
(global $exports/vehicles.Car i32 (i32.const 3))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "add" (func $exports/add))
|
||||
@ -31,6 +33,7 @@
|
||||
(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" (global $exports/Car))
|
||||
(export "Car#get:doors" (func $exports/Car#get:numDoors))
|
||||
(export "Car#set:doors" (func $exports/Car#set:numDoors))
|
||||
(export "Car#constructor" (func $exports/Car#constructor|trampoline))
|
||||
@ -39,6 +42,7 @@
|
||||
(export "Car#openDoors" (func $exports/Car#openDoors))
|
||||
(export "Car.TIRES" (global $exports/Car.TIRES))
|
||||
(export "Car.getNumTires" (func $exports/Car.getNumTires))
|
||||
(export "vehicles.Car" (global $exports/vehicles.Car))
|
||||
(export "vehicles.Car#get:doors" (func $exports/Car#get:numDoors))
|
||||
(export "vehicles.Car#set:doors" (func $exports/Car#set:numDoors))
|
||||
(export "vehicles.Car#constructor" (func $exports/vehicles.Car#constructor|trampoline))
|
||||
|
@ -25,6 +25,8 @@
|
||||
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $exports/Car i32 (i32.const 1))
|
||||
(global $exports/vehicles.Car i32 (i32.const 3))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "add" (func $exports/add))
|
||||
@ -35,6 +37,7 @@
|
||||
(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" (global $exports/Car))
|
||||
(export "Car#get:doors" (func $Car#get:doors))
|
||||
(export "Car#set:doors" (func $Car#set:doors))
|
||||
(export "Car#constructor" (func $exports/Car#constructor|trampoline))
|
||||
@ -43,6 +46,7 @@
|
||||
(export "Car#openDoors" (func $exports/Car#openDoors))
|
||||
(export "Car.TIRES" (global $exports/Car.TIRES))
|
||||
(export "Car.getNumTires" (func $exports/Car.getNumTires))
|
||||
(export "vehicles.Car" (global $exports/vehicles.Car))
|
||||
(export "vehicles.Car#get:doors" (func $vehicles.Car#get:doors))
|
||||
(export "vehicles.Car#set:doors" (func $vehicles.Car#set:doors))
|
||||
(export "vehicles.Car#constructor" (func $exports/vehicles.Car#constructor|trampoline))
|
||||
|
@ -6,8 +6,12 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $resolve-nested/Outer.InnerClass i32 (i32.const 1))
|
||||
(global $resolve-nested/Outer.Inner.EvenInnerClass i32 (i32.const 2))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "Outer.InnerClass" (global $resolve-nested/Outer.InnerClass))
|
||||
(export "Outer.Inner.EvenInnerClass" (global $resolve-nested/Outer.Inner.EvenInnerClass))
|
||||
(export "Outer.Inner.evenInner" (func $resolve-nested/Outer.Inner.evenInner))
|
||||
(export "Outer.inner" (func $resolve-nested/Outer.inner))
|
||||
(export "outer" (func $resolve-nested/outer))
|
||||
|
@ -21,8 +21,12 @@
|
||||
(global $resolve-nested/b (mut i32) (i32.const 0))
|
||||
(global $resolve-nested/c (mut i32) (i32.const 0))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
|
||||
(global $resolve-nested/Outer.InnerClass i32 (i32.const 1))
|
||||
(global $resolve-nested/Outer.Inner.EvenInnerClass i32 (i32.const 2))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "Outer.InnerClass" (global $resolve-nested/Outer.InnerClass))
|
||||
(export "Outer.Inner.EvenInnerClass" (global $resolve-nested/Outer.Inner.EvenInnerClass))
|
||||
(export "Outer.Inner.evenInner" (func $resolve-nested/Outer.Inner.evenInner))
|
||||
(export "Outer.inner" (func $resolve-nested/Outer.inner))
|
||||
(export "outer" (func $resolve-nested/outer))
|
||||
|
Loading…
x
Reference in New Issue
Block a user