UNPKG

@webqit/quantum-js

Version:

Runtime extension to JavaScript that let's us do Imperative Reactive Programming (IRP) in the very language.

24 lines (18 loc) 720 B
/** * @imports */ import Observer from "@webqit/observer"; export default class State { constructor( runtime ) { Object.defineProperty( this, 'runtime', { value: runtime } ); const events = { statechange: () => { Observer.defineProperty( this, 'value', { value: runtime.flowControl.get( 'return' )?.arg, enumerable: true, configurable: true } ); }, }; for ( const name in events ) { runtime.on( name, events[ name ] ); events[ name ](); } if ( runtime.$params.sourceType === 'module' ) { Object.defineProperty( this, 'exports', { value: runtime.exports } ); } } dispose() { return this.runtime.abort( true ); } }