mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-05-10 22:27:15 +00:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
|
var assert = require("assert");
|
||
|
var inspect = require("util").inspect;
|
||
|
var demangle = require("..");
|
||
|
|
||
|
var __this = 8;
|
||
|
var __usualDoors = 3;
|
||
|
var __doors = -1;
|
||
|
|
||
|
var exports = demangle({
|
||
|
"vroom": function() { console.log("vroom", arguments); },
|
||
|
"Car.MAX_DOORS": 5,
|
||
|
"Car.get:usualDoors": function() { console.log("Car#get:usualDoors", arguments); return __usualDoors; },
|
||
|
"Car.set:usualDoors": function(value) { console.log("Car#set:usualDoors", arguments); __usualDoors = value; },
|
||
|
"Car#constructor": function(this_, doors) { console.log("Car#constructor", arguments); __doors = doors; return __this; },
|
||
|
"Car#openDoors": function(this_) { console.log("Car#openDoors", arguments); return true; },
|
||
|
"Car#get:doors": function(this_) { console.log("Car#get:doors", arguments); return __doors; },
|
||
|
"Car#set:doors": function(this_, value) { console.log("Car#set:doors", arguments); __doors = value; }
|
||
|
});
|
||
|
|
||
|
console.log(inspect(exports, true));
|
||
|
|
||
|
exports.vroom(1, 2, 3);
|
||
|
|
||
|
var Car = exports.Car;
|
||
|
|
||
|
assert(Car.usualDoors == 3);
|
||
|
exports.Car.usualDoors = exports.Car.usualDoors + 2;
|
||
|
assert(Car.usualDoors == 5);
|
||
|
|
||
|
var car = new exports.Car(2);
|
||
|
|
||
|
assert(car.this == 8);
|
||
|
|
||
|
assert(car.openDoors() == true);
|
||
|
assert(car.doors == 2);
|
||
|
car.doors = car.doors + 2;
|
||
|
assert(car.doors == 4);
|
||
|
|
||
|
console.log(inspect(car, true));
|
||
|
|
||
|
var wrappedCar = exports.Car.wrap(16);
|
||
|
|
||
|
assert(wrappedCar.this == 16);
|
||
|
|
||
|
console.log(inspect(wrappedCar, true));
|