jam/test/test-fork-subclass.js

54 lines
956 B
JavaScript
Raw Normal View History

2024-08-27 00:15:15 +02:00
function master(xy) {
this.data=xy;
this.z=0;
this.child=null;
this.act = {
start : () => {
log('start');
this.child = create({
z:0,
data:{
x:random(1,50),
y:random(1,50)
},
act : [compA,end],
trans : {
start:compA
}
})
log(this.child)
},
compA: () => {
this.z=this.data.x+this.data.y;
log('z='+this.z)
},
compB: () => {
this.z=this.data.x*this.data.y;
log('z='+this.z);
},
end : () => {
log(keys(this))
log(keys(this.act))
log(keys(this.trans))
if (this.on) log(keys(this.on))
kill()
}
}
this.trans = {
start:() => {
return this.data.x<10 && this.data.y<10?compB:compA
},
compA:end,
compB:end
}
this.on = {
SIG1: () => {
log('got SIG1')
}
}
this.next=start
}
compile(master)
create('master',{x:5,y:7})
start()