You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
varinitial=(typeofcfg.initial=='string') ? {state: cfg.initial} : cfg.initial;// allow for a simple string, or an object with { state: 'foo', event: 'setup', defer: true|false }
41
-
varterminal=cfg.terminal||cfg['final'];
42
-
varfsm=target||cfg.target||{};
43
-
varevents=cfg.events||[];
44
-
varcallbacks=cfg.callbacks||{};
45
-
varmap={};
40
+
varinitial=(typeofcfg.initial=='string') ? {state: cfg.initial} : cfg.initial;// allow for a simple string, or an object with { state: 'foo', event: 'setup', defer: true|false }
41
+
varterminal=cfg.terminal||cfg['final'];
42
+
varfsm=target||cfg.target||{};
43
+
varevents=cfg.events||[];
44
+
varcallbacks=cfg.callbacks||{};
45
+
varmap={};// track state transitions allowed for an event { event: { from: [ to ] }}
46
+
vartransitions={};// track events allowed from a state { state: [ event ] }
46
47
47
48
varadd=function(e){
48
49
varfrom=(e.frominstanceofArray) ? e.from : (e.from ? [e.from] : [StateMachine.WILDCARD]);// allow 'wildcard' transition if 'from' is not specified
49
50
map[e.name]=map[e.name]||{};
50
-
for(varn=0;n<from.length;n++)
51
+
for(varn=0;n<from.length;n++){
52
+
transitions[from[n]]=transitions[from[n]]||[];
53
+
transitions[from[n]].push(e.name);
54
+
51
55
map[e.name][from[n]]=e.to||from[n];// allow no-op transition if 'to' is not specified
fsm.error=cfg.error||function(name,from,to,args,error,msg,e){throwe||msg;};// default behavior when something unexpected happens is to throw an exception, but caller can override this behavior if desired (see github issue #3 and #17)
fsm.error=cfg.error||function(name,from,to,args,error,msg,e){throwe||msg;};// default behavior when something unexpected happens is to throw an exception, but caller can override this behavior if desired (see github issue #3 and #17)
0 commit comments