quickjs/examples/test_point.js

46 lines
905 B
JavaScript
Raw Normal View History

2020-09-07 00:53:08 +08:00
/* example of JS module importing a C module */
import { Point } from "./point.so";
import { PointEnumerable } from "./point.so";
2020-09-07 00:53:08 +08:00
function assert(b, str)
{
if (b) {
return;
} else {
throw Error("assertion failed: " + str);
}
}
class ColorPoint extends Point {
constructor(x, y, color) {
super(x, y);
this.color = color;
}
get_color() {
return this.color;
}
};
function main()
{
var pt, pt2, pt3;
2020-09-07 00:53:08 +08:00
pt = new Point(2, 3);
assert(pt.x === 2);
assert(pt.y === 3);
pt.x = 4;
assert(pt.x === 4);
assert(pt.norm() == 5);
pt2 = new ColorPoint(2, 3, 0xffffff);
assert(pt2.x === 2);
assert(pt2.color === 0xffffff);
assert(pt2.get_color() === 0xffffff);
pt3 = new PointEnumerable(2, 3);
assert(JSON.stringify(pt) === "{}");
assert(JSON.stringify(pt3) === "{\"x\":2,\"y\":3}");
2020-09-07 00:53:08 +08:00
}
main();