@scion-scxml/core 2.6.24 → 2.6.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["core.js"],"names":["f","exports","module","define","amd","g","window","global","self","core","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","setImmediate","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_toConsumableArray","arr","Array","isArray","arr2","from","_classCallCheck","instance","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","value","setPrototypeOf","__proto__","base","helpers","query","transitionComparator","Statechart","_base$BaseInterpreter","modelOrModelFactory","opts","legacySemantics","getPrototypeOf","_selectTransitions","currentEvent","selectEventlessTransitions","transitionSelector","enabledTransitions","Set","_evaluateAction","bind","atomicStates","_configuration","iter","sort","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_iterator","Symbol","iterator","_step","next","done","state","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","loop","_iterator2","concat","getAncestors","_step2","s","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","transitions","_step3","add","err","return","priorityEnabledTransitions","_removeConflictingTransition","_log","_this2","filteredTransitions","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","t1","t1Preempted","transitionsToRemove","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_loop","t2","_step5","t1ExitSet","_computeExitSet","t2ExitSet","hasIntersection","some","has","source","id","map","descendants","indexOf","_iterator5","_ret","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_iterator6","_step6","t3","remove","BaseInterpreter","InterpreterScriptingContext","invokers","httpWwwW3OrgTRScxml","invokingSession","invokeObj","invokerExecutionContext","cb","method","arg","constructorFunction","fnModel","options","invokeid","params","parentSession","docUrl","model","interpreter","start","ArraySet","l","x","delete","union","v","difference","contains","isEmpty","size","equals","s2","toString","join","STATE_TYPES","BASIC","COMPOSITE","PARALLEL","HISTORY","INITIAL","FINAL","SCXML_IOPROCESSOR_TYPE","HTTP_IOPROCESSOR_TYPE","RX_TRAILING_WILDCARD","_typeof","obj","constants","printTrace","extend","transitionWithTargets","initializeModel","isEventPrefixMatch","isTransitionMatch","scxmlPrefixTransitionSelector","eventlessTransitionSelector","getTransitionWithHigherSourceChildPriority","sortInEntryOrder","getStateWithHigherSourceChildPriority","initializeModelGeneratorFn","deserializeSerializedConfiguration","deserializeHistory","to","keys","forEach","k","targets","documentOrder","rootState","idToStateMap","Map","idCount","generateId","type","count","wrapInFakeRootState","$deserializeDatamodel","$serializeDatamodel","$idToStateMap","name","states","$type","modelFnName","statesWithInitialAttributes","transitionToString","sourceState","events","cond","stateToString","populateStateIdMap","set","j","len","traverse","ancestors","push","apply","depth","parent","transition","ancs","typeEnum","isAtomic","reduce","b","initialChildren","initial","filter","child","initialRef","checkInitialRef","historyChildren","historyRef","prop","every","handler","invokes","invoke","finalize","connectIntialAttributes","initialStates","initialState","get","RX_WHITESPACE","connectTransitionGraph","onTransition","event","trim","split","lcca","getLCCA","scope","getScope","transitionIsReallyInternal","s1","commonAncestors","anc","fakeRootState","prefix","fullName","replace","charAt","eventName","tEvent","evaluator","_args","modelFn","_x","_sessionid","_ioprocessors","isIn","serializedConfiguration","serializedHistory","sid","isDescendant","root","index","slice","isOrthogonalTo","isAncestrallyRelatedTo","getLCA","getAncestorsOrSelf","getDescendantsOrSelf","process","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_i","_s","EventEmitter","util","env","DEBUG","_EventEmitter","_this","_isStepping","_scriptingContext","interpreterScriptingContext","generateSessionid","sessionid","sessionRegistry","_executionContext","location","scxml","JSON","parse","stringify","_model","console","log","priorityComparisonFn","String","arguments","_externalEventQueue","_internalEventQueue","snapshot","_historyValue","_isInFinalState","EVENTS","on","emit","cancel","_exitInterpreter","_cancelAllDelayedSends","statesToExit","_getFullConfiguration","stateExited","onExit","exitIdx","exitLen","block","blockIdx","blockLen","actionRef","_handleError","cancelInvoke","send","data","donedata","_initStart","_performBigStep","getConfiguration","startAsync","genAsync","_this3","nop","getFullConfiguration","stateName","isFinal","keepGoing","allStatesExited","allStatesEntered","_startBigStep2","_startBigStep","_startBigStep3","_selectTransitionsAnd","_selectTransitionsAndPerformSmallStep","_selectTransitionsAnd2","_finishBigStep","selectedTransitions","ev","shift","statesExited","statesEntered","_performSmallStep2","_performSmallStep","_performSmallStep3","_this4","autoforward","action","_this5","statesToInvoke","_timeouts","timeoutOptions","sendOptions","delay","clearTimeout","timeoutHandle","_timeoutMap","_performBigStepAsync","_startBigStep4","_startBigStep5","nextStep","_selectTransitionsAnd3","_selectTransitionsAnd4","selectedTransitionsWithTargets","_exitStates","_executeTransitions","_enterStates","basicStatesExited","_getStatesExited2","_getStatesExited","_getStatesExited3","isDeep","s0","transitionList","txIdx","txLen","desc","configList","cfgIdx","cfgLen","ancIdx","ancLen","sortedStatesExited","sortedTransitions","stxIdx","targetIds","_this6","statesForDefaultEntry","defaultHistoryContent","_computeEntrySet","enterIdx","enterLen","stateEntered","onEntry","entryIdx","entryLen","_actionRef","_transition","_actionRef2","grandparent","isInFinalState","_getEffectiveTargetStates","statesToEnter","_addDescendantStatesToEnter","ancestor","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_iterator7","_step7","_addAncestorStatesToEnter","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_iterator8","_step8","_iteratorNormalCompletion9","_didIteratorError9","_iteratorError9","_iterator9","_step9","_this7","_iteratorNormalCompletion10","_didIteratorError10","_iteratorError10","_step10","_iterator10","_iteratorNormalCompletion11","_didIteratorError11","_iteratorError11","_iterator11","_step11","_this8","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_iterator12","_step12","_iteratorNormalCompletion13","_didIteratorError13","_iteratorError13","_iterator13","_step13","_s2","_iteratorNormalCompletion14","_didIteratorError14","_iteratorError14","_iterator14","_step14","_s3","_iteratorNormalCompletion15","_didIteratorError15","_iteratorError15","_iterator15","_step15","_s4","_iteratorNormalCompletion16","_didIteratorError16","_iteratorError16","_iterator16","_step16","_s5","_iteratorNormalCompletion18","_didIteratorError18","_iteratorError18","_iterator18","_step18","targetState","_iteratorNormalCompletion17","_didIteratorError17","_iteratorError17","_iterator17","_step17","_s6","_targets","_iteratorNormalCompletion19","_didIteratorError19","_iteratorError19","_iterator19","_step19","_targetState","_iteratorNormalCompletion20","_didIteratorError20","_iteratorError20","_loop2","_step20","_iterator20","_this9","match","tagname","line","column","reason","message","args","inspect","registerListener","listener","unregisterListener","off","getAllTransitionEvents","getEvents","stateIdx","stateLen","getSnapshot","_serializeHistory","gen","evtObjOrName","optionalData","config","sessionIdCounter","_interpreter","_invokeMap","validateUriRegex","invokeSendTargetRegex","scxmlSendTargetRegex","raise","_installDefaultPropsOnEvent","parseXmlStringAsDOM","xmlString","xmlParser","_this10","Promise","resolve","reject","session","_this11","sessionPromise","then","isInternal","origin","origintype","sendType","validateSend","sendAction","targetIsValidUri","test","sendid","defaultSendAction","_this12","setTimeout","doSend","targetSessionId","invokeId","sendAsync","publish","sendFn","customSend","customCancel","inherits","ctor","superCtor","super_","TempCtor","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","nextTick","Item","array","title","browser","argv","version","versions","noop","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","clearImmediate","Function","immediateIds","nextImmediateId","Timeout","setInterval","clearInterval","close","clearFn","_id","_clearFn","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","onTimeout","_onTimeout","fn","onNextTick","_listeners","_on","_once","__once","_off","splice","_emit","__emit","isBuffer","copy","fill","readUInt8","formatRegExp","format","isString","objects","str","Number","_","isNull","isObject","deprecate","msg","isUndefined","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","trace","error","debugs","debugEnviron","debuglog","NODE_DEBUG","toUpperCase","RegExp","pid","ctx","seen","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","Date","braces","toUTCString","output","formatArray","formatProperty","pop","reduceToSingleString","simple","isNumber","hasOwnProperty","getOwnPropertyDescriptor","substr","numLinesEst","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth"],"mappings":"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","file":"core.js","sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.core = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n(function (setImmediate){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar base = require('@scion-scxml/core-base'),\n helpers = base.helpers,\n query = base.query,\n transitionComparator = base.helpers.transitionComparator;\n\n/** \n * @description Implements semantics described in Algorithm D of the SCXML specification. \n * See {@link scion.BaseInterpreter} for information on the constructor arguments.\n * @class SCInterpreter \n * @extends BaseInterpreter\n */\n\nvar Statechart = function (_base$BaseInterpreter) {\n _inherits(Statechart, _base$BaseInterpreter);\n\n function Statechart(modelOrModelFactory, opts) {\n _classCallCheck(this, Statechart);\n\n opts = opts || {};\n opts.legacySemantics = false;\n\n return _possibleConstructorReturn(this, (Statechart.__proto__ || Object.getPrototypeOf(Statechart)).call(this, modelOrModelFactory, opts));\n }\n\n /** @private */\n\n\n _createClass(Statechart, [{\n key: '_selectTransitions',\n value: function _selectTransitions(currentEvent, selectEventlessTransitions) {\n var transitionSelector = this.opts.transitionSelector;\n var enabledTransitions = new this.opts.Set();\n\n var e = this._evaluateAction.bind(this, currentEvent);\n\n var atomicStates = this._configuration.iter().sort(transitionComparator);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = atomicStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n loop: for (var _iterator2 = [state].concat(query.getAncestors(state))[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var s = _step2.value;\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = s.transitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var t = _step3.value;\n\n if (transitionSelector(t, currentEvent, e, selectEventlessTransitions)) {\n enabledTransitions.add(t);\n break loop;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var priorityEnabledTransitions = this._removeConflictingTransition(enabledTransitions);\n\n this._log(\"priorityEnabledTransitions\", priorityEnabledTransitions);\n\n return priorityEnabledTransitions;\n }\n\n /** @private */\n\n }, {\n key: '_removeConflictingTransition',\n value: function _removeConflictingTransition(enabledTransitions) {\n var _this2 = this;\n\n var filteredTransitions = new this.opts.Set();\n //toList sorts the transitions in the order of the states that selected them\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = enabledTransitions.iter()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var t1 = _step4.value;\n\n var t1Preempted = false;\n var transitionsToRemove = new Set();\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n var _loop = function _loop() {\n var t2 = _step5.value;\n\n //TODO: can we compute this statically? for example, by checking if the transition scopes are arena orthogonal?\n var t1ExitSet = _this2._computeExitSet([t1]);\n var t2ExitSet = _this2._computeExitSet([t2]);\n var hasIntersection = [].concat(_toConsumableArray(t1ExitSet)).some(function (s) {\n return t2ExitSet.has(s);\n }) || [].concat(_toConsumableArray(t2ExitSet)).some(function (s) {\n return t1ExitSet.has(s);\n });\n _this2._log('t1ExitSet', t1.source.id, [].concat(_toConsumableArray(t1ExitSet)).map(function (s) {\n return s.id;\n }));\n _this2._log('t2ExitSet', t2.source.id, [].concat(_toConsumableArray(t2ExitSet)).map(function (s) {\n return s.id;\n }));\n _this2._log('hasIntersection', hasIntersection);\n if (hasIntersection) {\n if (t2.source.descendants.indexOf(t1.source) > -1) {\n //is this the same as being ancestrally related?\n transitionsToRemove.add(t2);\n } else {\n t1Preempted = true;\n return 'break';\n }\n }\n };\n\n for (var _iterator5 = filteredTransitions.iter()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _ret = _loop();\n\n if (_ret === 'break') break;\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n if (!t1Preempted) {\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = transitionsToRemove[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var t3 = _step6.value;\n\n filteredTransitions.remove(t3);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n filteredTransitions.add(t1);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return filteredTransitions;\n }\n }]);\n\n return Statechart;\n}(base.BaseInterpreter);\n\nbase.Statechart = Statechart;\n//simple default invoker\nbase.InterpreterScriptingContext.invokers = {\n \"http://www.w3.org/TR/scxml/\": function httpWwwW3OrgTRScxml(invokingSession, invokeObj, invokerExecutionContext, cb) {\n //put invoke logic here: \n var method = void 0,\n arg = void 0;\n if (invokeObj.constructorFunction) {\n var fnModel = invokeObj.constructorFunction;\n var options = {\n invokeid: invokeObj.id,\n params: invokeObj.params,\n parentSession: invokingSession,\n docUrl: invokeObj.docUrl\n //sessionid : //TODO: construct or generate a sessionid for invoked session\n };\n var model = invokerExecutionContext;\n var interpreter = void 0;\n if (options.parentSession instanceof Statechart) {\n interpreter = new Statechart(fnModel, options);\n }\n cb(null, interpreter, fnModel, model);\n //we introduce a delay here before starting the interpreter to give clients that are subscribed to onInvokedSessionInitialized event a chance to subscribe to events on the newly instantiated interpreter\n setImmediate(function () {\n return interpreter.start();\n });\n } else {\n throw new Error('Invoke object needs a constructorFunction property');\n }\n }\n};\nbase.InterpreterScriptingContext.invokers[undefined] = base.InterpreterScriptingContext.invokers[null] = base.InterpreterScriptingContext.invokers['scxml'] = base.InterpreterScriptingContext.invokers[\"http://www.w3.org/TR/scxml/\"];\n\nmodule.exports = base;\n\n}).call(this,require(\"timers\").setImmediate)\n},{\"@scion-scxml/core-base\":6,\"timers\":9}],2:[function(require,module,exports){\n'use strict';\n\n/* begin ArraySet */\n\n/** @constructor */\nfunction ArraySet(l) {\n l = l || [];\n this.o = new Set(l);\n}\n\nArraySet.prototype = {\n\n add: function add(x) {\n this.o.add(x);\n },\n\n remove: function remove(x) {\n return this.o.delete(x);\n },\n\n union: function union(l) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = l.o[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var v = _step.value;\n\n this.o.add(v);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return this;\n },\n\n difference: function difference(l) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = l.o[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var v = _step2.value;\n\n this.o.delete(v);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return this;\n },\n\n contains: function contains(x) {\n return this.o.has(x);\n },\n\n iter: function iter() {\n return Array.from(this.o);\n },\n\n isEmpty: function isEmpty() {\n return !this.o.size;\n },\n\n size: function size() {\n return this.o.size;\n },\n\n equals: function equals(s2) {\n if (this.o.size !== s2.size()) {\n return false;\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.o[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var v = _step3.value;\n\n if (!s2.contains(v)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return true;\n },\n\n toString: function toString() {\n return this.o.size === 0 ? '<empty>' : Array.from(this.o).join(',\\n');\n }\n};\n\nmodule.exports = ArraySet;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar STATE_TYPES = {\n BASIC: 0,\n COMPOSITE: 1,\n PARALLEL: 2,\n HISTORY: 3,\n INITIAL: 4,\n FINAL: 5\n};\n\nvar SCXML_IOPROCESSOR_TYPE = 'http://www.w3.org/TR/scxml/#SCXMLEventProcessor';\nvar HTTP_IOPROCESSOR_TYPE = 'http://www.w3.org/TR/scxml/#BasicHTTPEventProcessor';\nvar RX_TRAILING_WILDCARD = /\\.\\*$/;\n\nmodule.exports = {\n STATE_TYPES: STATE_TYPES,\n SCXML_IOPROCESSOR_TYPE: SCXML_IOPROCESSOR_TYPE,\n HTTP_IOPROCESSOR_TYPE: HTTP_IOPROCESSOR_TYPE,\n RX_TRAILING_WILDCARD: RX_TRAILING_WILDCARD\n};\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar constants = require('./constants'),\n STATE_TYPES = constants.STATE_TYPES,\n RX_TRAILING_WILDCARD = constants.RX_TRAILING_WILDCARD;\n\nvar printTrace = false;\n\nmodule.exports = {\n extend: extend,\n transitionWithTargets: transitionWithTargets,\n transitionComparator: transitionComparator,\n initializeModel: initializeModel,\n isEventPrefixMatch: isEventPrefixMatch,\n isTransitionMatch: isTransitionMatch,\n scxmlPrefixTransitionSelector: scxmlPrefixTransitionSelector,\n eventlessTransitionSelector: eventlessTransitionSelector,\n getTransitionWithHigherSourceChildPriority: getTransitionWithHigherSourceChildPriority,\n sortInEntryOrder: sortInEntryOrder,\n getStateWithHigherSourceChildPriority: getStateWithHigherSourceChildPriority,\n initializeModelGeneratorFn: initializeModelGeneratorFn,\n deserializeSerializedConfiguration: deserializeSerializedConfiguration,\n deserializeHistory: deserializeHistory\n};\n\nfunction extend(to, from) {\n Object.keys(from).forEach(function (k) {\n to[k] = from[k];\n });\n return to;\n};\n\nfunction transitionWithTargets(t) {\n return t.targets;\n}\n\nfunction transitionComparator(t1, t2) {\n return t1.documentOrder - t2.documentOrder;\n}\n\nfunction initializeModel(rootState, opts) {\n var transitions = [],\n idToStateMap = new Map(),\n documentOrder = 0;\n\n //TODO: need to add fake ids to anyone that doesn't have them\n //FIXME: make this safer - break into multiple passes\n var idCount = {};\n\n function generateId(type) {\n if (idCount[type] === undefined) idCount[type] = 0;\n\n do {\n var count = idCount[type]++;\n var id = '$generated-' + type + '-' + count;\n } while (idToStateMap.has(id));\n\n return id;\n }\n\n function wrapInFakeRootState(state) {\n return {\n $deserializeDatamodel: state.$deserializeDatamodel || function () {},\n $serializeDatamodel: state.$serializeDatamodel || function () {\n return null;\n },\n $idToStateMap: idToStateMap, //keep this for handy deserialization of serialized configuration\n docUrl: state.docUrl,\n name: state.name,\n states: [{\n $type: 'initial',\n transitions: [{\n target: state\n }]\n }, state],\n modelFnName: state.modelFnName\n };\n }\n\n var statesWithInitialAttributes = [];\n\n /**\n @this {SCTransition}\n */\n function transitionToString(sourceState) {\n return sourceState + ' -- ' + (this.events ? '(' + this.events.join(',') + ')' : null) + (this.cond ? '[' + this.cond.name + ']' : '') + ' --> ' + (this.targets ? this.targets.join(',') : null);\n }\n\n /**\n @this {SCState}\n */\n function stateToString() {\n return this.id;\n }\n\n function populateStateIdMap(state) {\n //populate state id map\n if (state.id) {\n idToStateMap.set(state.id, state);\n }\n\n if (state.states) {\n for (var j = 0, len = state.states.length; j < len; j++) {\n populateStateIdMap(state.states[j]);\n }\n }\n }\n\n function traverse(ancestors, state) {\n\n if (printTrace) state.toString = stateToString;\n\n //add to global transition and state id caches\n if (state.transitions) transitions.push.apply(transitions, state.transitions);\n\n //create a default type, just to normalize things\n //this way we can check for unsupported types below\n state.$type = state.$type || 'state';\n\n //add ancestors and depth properties\n state.ancestors = ancestors;\n state.depth = ancestors.length;\n state.parent = ancestors[0];\n state.documentOrder = documentOrder++;\n\n //add some information to transitions\n state.transitions = state.transitions || [];\n for (var j = 0, len = state.transitions.length; j < len; j++) {\n var transition = state.transitions[j];\n transition.documentOrder = documentOrder++;\n transition.source = state;\n if (printTrace) transition.toString = transitionToString.bind(transition, state);\n };\n\n //recursive step\n if (state.states) {\n var ancs = [state].concat(ancestors);\n for (var j = 0, len = state.states.length; j < len; j++) {\n traverse(ancs, state.states[j]);\n }\n }\n\n //setup fast state type\n switch (state.$type) {\n case 'parallel':\n state.typeEnum = STATE_TYPES.PARALLEL;\n state.isAtomic = false;\n break;\n case 'initial':\n state.typeEnum = STATE_TYPES.INITIAL;\n state.isAtomic = true;\n break;\n case 'history':\n state.typeEnum = STATE_TYPES.HISTORY;\n state.isAtomic = true;\n break;\n case 'final':\n state.typeEnum = STATE_TYPES.FINAL;\n state.isAtomic = true;\n break;\n case 'state':\n case 'scxml':\n if (state.states && state.states.length) {\n state.typeEnum = STATE_TYPES.COMPOSITE;\n state.isAtomic = false;\n } else {\n state.typeEnum = STATE_TYPES.BASIC;\n state.isAtomic = true;\n }\n break;\n default:\n throw new Error('Unknown state type: ' + state.$type);\n }\n\n //descendants property on states will now be populated. add descendants to this state\n if (state.states) {\n state.descendants = state.states.concat(state.states.map(function (s) {\n return s.descendants;\n }).reduce(function (a, b) {\n return a.concat(b);\n }, []));\n } else {\n state.descendants = [];\n }\n\n var initialChildren;\n if (state.typeEnum === STATE_TYPES.COMPOSITE) {\n //set up initial state\n\n if (Array.isArray(state.initial) || typeof state.initial === 'string') {\n statesWithInitialAttributes.push(state);\n } else {\n //take the first child that has initial type, or first child\n initialChildren = state.states.filter(function (child) {\n return child.$type === 'initial';\n });\n\n state.initialRef = [initialChildren.length ? initialChildren[0] : state.states[0]];\n checkInitialRef(state);\n }\n }\n\n //hook up history\n if (state.typeEnum === STATE_TYPES.COMPOSITE || state.typeEnum === STATE_TYPES.PARALLEL) {\n\n var historyChildren = state.states.filter(function (s) {\n return s.$type === 'history';\n });\n\n state.historyRef = historyChildren;\n }\n\n //now it's safe to fill in fake state ids\n if (!state.id) {\n state.id = generateId(state.$type);\n idToStateMap.set(state.id, state);\n }\n\n //normalize onEntry/onExit, which can be single fn or array, or array of arrays (blocks)\n ['onEntry', 'onExit'].forEach(function (prop) {\n if (state[prop]) {\n if (!Array.isArray(state[prop])) {\n state[prop] = [state[prop]];\n }\n if (!state[prop].every(function (handler) {\n return Array.isArray(handler);\n })) {\n state[prop] = [state[prop]];\n }\n }\n });\n\n if (state.invokes && !Array.isArray(state.invokes)) {\n state.invokes = [state.invokes];\n state.invokes.forEach(function (invoke) {\n if (invoke.finalize && !Array.isArray(invoke.finalize)) {\n invoke.finalize = [invoke.finalize];\n }\n });\n }\n }\n\n //TODO: convert events to regular expressions in advance\n\n function checkInitialRef(state) {\n if (!state.initialRef) throw new Error('Unable to locate initial state for composite state: ' + state.id);\n }\n function connectIntialAttributes() {\n for (var j = 0, len = statesWithInitialAttributes.length; j < len; j++) {\n var s = statesWithInitialAttributes[j];\n\n var initialStates = Array.isArray(s.initial) ? s.initial : [s.initial];\n s.initialRef = initialStates.map(function (initialState) {\n return idToStateMap.get(initialState);\n });\n checkInitialRef(s);\n }\n }\n\n var RX_WHITESPACE = /\\s+/;\n\n function connectTransitionGraph() {\n //normalize as with onEntry/onExit\n for (var i = 0, len = transitions.length; i < len; i++) {\n var t = transitions[i];\n if (t.onTransition && !Array.isArray(t.onTransition)) {\n t.onTransition = [t.onTransition];\n }\n\n //normalize \"event\" attribute into \"events\" attribute\n if (typeof t.event === 'string') {\n t.events = t.event.trim().split(RX_WHITESPACE);\n }\n delete t.event;\n\n if (t.targets || typeof t.target === 'undefined') {\n //targets have already been set up\n continue;\n }\n\n if (typeof t.target === 'string') {\n var target = idToStateMap.get(t.target);\n if (!target) throw new Error('Unable to find target state with id ' + t.target);\n t.target = target;\n t.targets = [t.target];\n } else if (Array.isArray(t.target)) {\n t.targets = t.target.map(function (target) {\n if (typeof target === 'string') {\n target = idToStateMap.get(target);\n if (!target) throw new Error('Unable to find target state with id ' + t.target);\n return target;\n } else {\n return target;\n }\n });\n } else if (_typeof(t.target) === 'object') {\n t.targets = [t.target];\n } else {\n throw new Error('Transition target has unknown type: ' + t.target);\n }\n }\n\n //hook up LCA - optimization\n for (var i = 0, len = transitions.length; i < len; i++) {\n var t = transitions[i];\n if (t.targets) t.lcca = getLCCA(t.source, t.targets[0]); //FIXME: we technically do not need to hang onto the lcca. only the scope is used by the algorithm\n\n t.scope = getScope(t);\n }\n }\n\n function getScope(transition) {\n //Transition scope is normally the least common compound ancestor (lcca).\n //Internal transitions have a scope equal to the source state.\n var transitionIsReallyInternal = transition.type === 'internal' && transition.source.typeEnum === STATE_TYPES.COMPOSITE && //is transition source a composite state\n transition.source.parent && //root state won't have parent\n transition.targets && //does it target its descendants\n transition.targets.every(function (target) {\n return transition.source.descendants.indexOf(target) > -1;\n });\n\n if (!transition.targets) {\n return null;\n } else if (transitionIsReallyInternal) {\n return transition.source;\n } else {\n return transition.lcca;\n }\n }\n\n function getLCCA(s1, s2) {\n var commonAncestors = [];\n for (var j = 0, len = s1.ancestors.length; j < len; j++) {\n var anc = s1.ancestors[j];\n if ((opts && opts.legacySemantics ? anc.typeEnum === STATE_TYPES.COMPOSITE : anc.typeEnum === STATE_TYPES.COMPOSITE || anc.typeEnum === STATE_TYPES.PARALLEL) && anc.descendants.indexOf(s2) > -1) {\n\n commonAncestors.push(anc);\n }\n };\n if (!commonAncestors.length) throw new Error(\"Could not find LCA for states.\");\n return commonAncestors[0];\n }\n\n //main execution starts here\n //FIXME: only wrap in root state if it's not a compound state\n populateStateIdMap(rootState);\n var fakeRootState = wrapInFakeRootState(rootState); //I wish we had pointer semantics and could make this a C-style \"out argument\". Instead we return him\n traverse([], fakeRootState);\n connectTransitionGraph();\n connectIntialAttributes();\n\n return fakeRootState;\n}\n\nfunction isEventPrefixMatch(prefix, fullName) {\n prefix = prefix.replace(RX_TRAILING_WILDCARD, '');\n\n if (prefix === fullName) {\n return true;\n }\n\n if (prefix.length > fullName.length) {\n return false;\n }\n\n if (fullName.charAt(prefix.length) !== '.') {\n return false;\n }\n\n return fullName.indexOf(prefix) === 0;\n}\n\nfunction isTransitionMatch(t, eventName) {\n return t.events.some(function (tEvent) {\n return tEvent === '*' || isEventPrefixMatch(tEvent, eventName);\n });\n}\n\nfunction scxmlPrefixTransitionSelector(t, event, evaluator, selectEventlessTransitions) {\n return (selectEventlessTransitions ? !t.events : t.events && event && event.name && isTransitionMatch(t, event.name)) && (!t.cond || evaluator(t.cond));\n}\n\nfunction eventlessTransitionSelector(state) {\n return state.transitions.filter(function (transition) {\n return !transition.events || transition.events && transition.events.length === 0;\n });\n}\n\n//priority comparison functions\nfunction getTransitionWithHigherSourceChildPriority(_args) {\n var t1 = _args[0],\n t2 = _args[1];\n var r = getStateWithHigherSourceChildPriority(t1.source, t2.source);\n //compare transitions based first on depth, then based on document order\n if (t1.source.depth < t2.source.depth) {\n return t2;\n } else if (t2.source.depth < t1.source.depth) {\n return t1;\n } else {\n if (t1.documentOrder < t2.documentOrder) {\n return t1;\n } else {\n return t2;\n }\n }\n}\n\nfunction sortInEntryOrder(s1, s2) {\n return getStateWithHigherSourceChildPriority(s1, s2) * -1;\n}\n\nfunction getStateWithHigherSourceChildPriority(s1, s2) {\n //compare states based first on depth, then based on document order\n if (s1.depth > s2.depth) {\n return -1;\n } else if (s1.depth < s2.depth) {\n return 1;\n } else {\n //Equality\n if (s1.documentOrder < s2.documentOrder) {\n return 1;\n } else if (s1.documentOrder > s2.documentOrder) {\n return -1;\n } else {\n return 0;\n }\n }\n}\n\nfunction initializeModelGeneratorFn(modelFn, opts, interpreter) {\n var model = modelFn.call(interpreter, opts._x, opts._x._sessionid, opts._x._ioprocessors, interpreter.isIn.bind(interpreter));\n model.modelFnName = modelFn.name;\n return model;\n}\n\nfunction deserializeSerializedConfiguration(serializedConfiguration, idToStateMap) {\n return serializedConfiguration.map(function (id) {\n var state = idToStateMap.get(id);\n if (!state) throw new Error('Error loading serialized configuration. Unable to locate state with id ' + id);\n return state;\n });\n}\n\nfunction deserializeHistory(serializedHistory, idToStateMap) {\n var o = {};\n Object.keys(serializedHistory).forEach(function (sid) {\n o[sid] = serializedHistory[sid].map(function (id) {\n var state = idToStateMap.get(id);\n if (!state) throw new Error('Error loading serialized history. Unable to locate state with id ' + id);\n return state;\n });\n });\n return o;\n}\n\n},{\"./constants\":3}],5:[function(require,module,exports){\n'use strict';\n\nvar constants = require('./constants');\n\n//model accessor functions\nvar query = {\n isDescendant: function isDescendant(s1, s2) {\n //Returns 'true' if state1 is a descendant of state2 (a child, or a child of a child, or a child of a child of a child, etc.) Otherwise returns 'false'.\n return s2.descendants.indexOf(s1) > -1;\n },\n getAncestors: function getAncestors(s, root) {\n var ancestors, index, state;\n index = s.ancestors.indexOf(root);\n if (index > -1) {\n return s.ancestors.slice(0, index);\n } else {\n return s.ancestors;\n }\n },\n isOrthogonalTo: function isOrthogonalTo(s1, s2) {\n //Two control states are orthogonal if they are not ancestrally\n //related, and their smallest, mutual parent is a Concurrent-state.\n return !this.isAncestrallyRelatedTo(s1, s2) && this.getLCA(s1, s2).typeEnum === constants.STATE_TYPES.PARALLEL;\n },\n isAncestrallyRelatedTo: function isAncestrallyRelatedTo(s1, s2) {\n //Two control states are ancestrally related if one is child/grandchild of another.\n return this.getAncestorsOrSelf(s2).indexOf(s1) > -1 || this.getAncestorsOrSelf(s1).indexOf(s2) > -1;\n },\n getAncestorsOrSelf: function getAncestorsOrSelf(s, root) {\n return [s].concat(query.getAncestors(s, root));\n },\n getDescendantsOrSelf: function getDescendantsOrSelf(s) {\n return [s].concat(s.descendants);\n },\n getLCA: function getLCA(s1, s2) {\n var commonAncestors = this.getAncestors(s1).filter(function (a) {\n return a.descendants.indexOf(s2) > -1;\n }, this);\n return commonAncestors[0];\n }\n};\n\nmodule.exports = query;\n\n},{\"./constants\":3}],6:[function(require,module,exports){\n(function (process,setImmediate){\n// Copyright 2012-2012 Jacob Beard, INFICON, and other SCION contributors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * SCION-CORE global object\n * @namespace scion\n */\n\n/**\n * An Array of strings representing the ids all of the basic states the\n * interpreter is in after a big-step completes.\n * @typedef {Array<string>} Configuration\n */\n\n/**\n * A set of basic and composite state ids.\n * @typedef {Array<string>} FullConfiguration\n */\n\n/**\n * A set of basic and composite state ids.\n * @typedef {Array<string>} FullConfiguration\n */\n\n\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EventEmitter = require('tiny-events').EventEmitter,\n util = require('util'),\n ArraySet = require('./ArraySet'),\n constants = require('./constants'),\n helpers = require('./helpers'),\n query = require('./query'),\n extend = helpers.extend,\n transitionWithTargets = helpers.transitionWithTargets,\n transitionComparator = helpers.transitionComparator,\n initializeModel = helpers.initializeModel,\n isEventPrefixMatch = helpers.isEventPrefixMatch,\n isTransitionMatch = helpers.isTransitionMatch,\n scxmlPrefixTransitionSelector = helpers.scxmlPrefixTransitionSelector,\n eventlessTransitionSelector = helpers.eventlessTransitionSelector,\n getTransitionWithHigherSourceChildPriority = helpers.getTransitionWithHigherSourceChildPriority,\n sortInEntryOrder = helpers.sortInEntryOrder,\n getStateWithHigherSourceChildPriority = helpers.getStateWithHigherSourceChildPriority,\n initializeModelGeneratorFn = helpers.initializeModelGeneratorFn,\n deserializeSerializedConfiguration = helpers.deserializeSerializedConfiguration,\n deserializeHistory = helpers.deserializeHistory,\n BASIC = constants.STATE_TYPES.BASIC,\n COMPOSITE = constants.STATE_TYPES.COMPOSITE,\n PARALLEL = constants.STATE_TYPES.PARALLEL,\n HISTORY = constants.STATE_TYPES.HISTORY,\n INITIAL = constants.STATE_TYPES.INITIAL,\n FINAL = constants.STATE_TYPES.FINAL,\n SCXML_IOPROCESSOR_TYPE = constants.SCXML_IOPROCESSOR_TYPE;\n\nvar printTrace = typeof process !== 'undefined' && !!process.env.DEBUG;\n\n/**\n * @interface EventEmitter\n */\n\n/**\n* @event scion.BaseInterpreter#onError\n* @property {string} tagname The name of the element that produced the error. \n* @property {number} line The line in the source file in which the error occurred.\n* @property {number} column The column in the source file in which the error occurred.\n* @property {string} reason An informative error message. The text is platform-specific and subject to change.\n*/\n\n/**\n * @function\n * @name EventEmitter.prototype#on\n * @param {string} type\n * @param {callback} listener\n */\n\n/**\n * @function\n * @name EventEmitter.prototype#once\n * @param {string} type\n * @param {callback} listener\n */\n\n/**\n * @function\n * @name EventEmitter.prototype#off\n * @param {string} type\n * @param {callback} listener\n */\n\n/**\n * @function\n * @name EventEmitter.prototype#emit\n * @param {string} type\n * @param {any} args\n */\n/** \n * @description The SCXML constructor creates an interpreter instance from a model object.\n * @abstract\n * @class BaseInterpreter\n * @memberof scion\n * @extends EventEmitter\n * @param {SCJSON | scxml.ModelFactory} modelOrModelFactory Either an SCJSON root state; or an scxml.ModelFactory, which is a function which returns an SCJSON object. \n * @param opts\n * @param {string} [opts.sessionid] Used to populate SCXML _sessionid.\n * @param {function} [opts.generateSessionid] Factory used to generate sessionid if sessionid keyword is not specified\n * @param {Map<string, BaseInterpreter>} [opts.sessionRegistry] Map used to map sessionid strings to Statechart instances.\n * @param [opts.Set] Class to use as an ArraySet. Defaults to ES6 Set.\n * @param {object} [opts.params] Used to pass params from invoke. Sets the datamodel when interpreter is instantiated.\n * @param {Snapshot} [opts.snapshot] State machine snapshot. Used to restore a serialized state machine.\n * @param {Statechart} [opts.parentSession] Used to pass parent session during invoke.\n * @param {string }[opts.invokeid] Support for id of invoke element at runtime.\n * @param {boolean} [opts.legacySemantics]\n * @param [opts.console]\n * @param [opts.transitionSelector]\n * @param [opts.customCancel]\n * @param [opts.customSend]\n * @param [opts.sendAsync]\n * @param [opts.doSend]\n * @param [opts.invokers]\n * @param [opts.xmlParser]\n * @param [opts.interpreterScriptingContext]\n * @param [opts.invokerExecutionContext]\n */\n\nvar BaseInterpreter = function (_EventEmitter) {\n _inherits(BaseInterpreter, _EventEmitter);\n\n function BaseInterpreter(modelOrModelFactory, opts) {\n _classCallCheck(this, BaseInterpreter);\n\n var _this = _possibleConstructorReturn(this, (BaseInterpreter.__proto__ || Object.getPrototypeOf(BaseInterpreter)).call(this));\n\n _this.opts = opts;\n\n _this.opts.InterpreterScriptingContext = _this.opts.InterpreterScriptingContext || InterpreterScriptingContext;\n\n _this._isStepping = false;\n\n _this._scriptingContext = _this.opts.interpreterScriptingContext || (_this.opts.InterpreterScriptingContext ? new _this.opts.InterpreterScriptingContext(_this) : {});\n\n _this.opts.generateSessionid = _this.opts.generateSessionid || BaseInterpreter.generateSessionid;\n _this.opts.sessionid = _this.opts.sessionid || _this.opts.generateSessionid();\n _this.opts.sessionRegistry = _this.opts.sessionRegistry || BaseInterpreter.sessionRegistry; //TODO: define a better interface. For now, assume a Map<sessionid, session>\n _this.opts.invokerExecutionContext = opts.invokerExecutionContext || modelOrModelFactory._executionContext;\n\n var _ioprocessors = {};\n _ioprocessors[SCXML_IOPROCESSOR_TYPE] = {\n location: '#_scxml_' + _this.opts.sessionid\n };\n _ioprocessors.scxml = _ioprocessors[SCXML_IOPROCESSOR_TYPE]; //alias\n\n //SCXML system variables:\n _this.opts._x = {\n _sessionid: _this.opts.sessionid,\n _ioprocessors: _ioprocessors\n };\n\n var model;\n if (typeof modelOrModelFactory === 'function') {\n model = initializeModelGeneratorFn(modelOrModelFactory, _this.opts, _this);\n } else if ((typeof modelOrModelFactory === 'undefined' ? 'undefined' : _typeof(modelOrModelFactory)) === 'object') {\n model = JSON.parse(JSON.stringify(modelOrModelFactory)); //assume object\n } else {\n throw new Error('Unexpected model type. Expected model factory function, or scjson object.');\n }\n\n _this._model = initializeModel(model, _this.opts);\n\n _this.opts.console = _this.opts.console || (typeof console === 'undefined' ? { log: function log() {} } : console); //rely on global console if this console is undefined\n _this.opts.Set = _this.opts.Set || ArraySet;\n _this.opts.priorityComparisonFn = _this.opts.priorityComparisonFn || getTransitionWithHigherSourceChildPriority;\n _this.opts.transitionSelector = _this.opts.transitionSelector || scxmlPrefixTransitionSelector;\n\n _this.opts.sessionRegistry.set(String(_this.opts.sessionid), _this);\n\n _this._scriptingContext.log = _this._scriptingContext.log || function log() {\n if (this.opts.console.log.apply) {\n this.opts.console.log.apply(this.opts.console, arguments);\n } else {\n //console.log on older IE does not support Function.apply, so just pass him the first argument. Best we can do for now.\n this.opts.console.log(Array.prototype.slice.apply(arguments).join(','));\n }\n }.bind(_this); //set up default scripting context log function\n\n _this._externalEventQueue = [];\n _this._internalEventQueue = [];\n\n if (_this.opts.params) {\n _this._model.$deserializeDatamodel(_this.opts.params); //load up the datamodel\n }\n\n //check if we're loading from a previous snapshot\n if (_this.opts.snapshot) {\n _this._configuration = new _this.opts.Set(deserializeSerializedConfiguration(_this.opts.snapshot[0], _this._model.$idToStateMap));\n _this._historyValue = deserializeHistory(_this.opts.snapshot[1], _this._model.$idToStateMap);\n _this._isInFinalState = _this.opts.snapshot[2];\n _this._model.$deserializeDatamodel(_this.opts.snapshot[3]); //load up the datamodel\n _this._internalEventQueue = _this.opts.snapshot[4];\n } else {\n _this._configuration = new _this.opts.Set();\n _this._historyValue = {};\n _this._isInFinalState = false;\n }\n\n //add debug logging\n BaseInterpreter.EVENTS.forEach(function (event) {\n this.on(event, this._log.bind(this, event));\n }, _this);\n\n module.exports.emit('new', _this);\n return _this;\n }\n\n /** \n * Cancels the session. This clears all timers; puts the interpreter in a\n * final state; and runs all exit actions on current states.\n * @memberof BaseInterpreter.prototype\n */\n\n\n _createClass(BaseInterpreter, [{\n key: 'cancel',\n value: function cancel() {\n delete this.opts.parentSession;\n if (this._isInFinalState) return;\n this._isInFinalState = true;\n this._log('session cancelled ' + this.opts.invokeid);\n this._exitInterpreter(null);\n }\n }, {\n key: '_exitInterpreter',\n value: function _exitInterpreter(event) {\n var _this2 = this;\n\n //TODO: cancel invoked sessions\n //cancel all delayed sends when we enter into a final state.\n this._cancelAllDelayedSends();\n\n var statesToExit = this._getFullConfiguration().sort(getStateWithHigherSourceChildPriority);\n\n for (var j = 0, len = statesToExit.length; j < len; j++) {\n var stateExited = statesToExit[j];\n\n if (stateExited.onExit !== undefined) {\n for (var exitIdx = 0, exitLen = stateExited.onExit.length; exitIdx < exitLen; exitIdx++) {\n var block = stateExited.onExit[exitIdx];\n for (var blockIdx = 0, blockLen = block.length; blockIdx < blockLen; blockIdx++) {\n var actionRef = block[blockIdx];\n try {\n actionRef.call(this._scriptingContext, null);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n\n //cancel invoked session\n if (stateExited.invokes) stateExited.invokes.forEach(function (invoke) {\n _this2._scriptingContext.cancelInvoke(invoke.id);\n });\n\n //if he is a top-level <final> state, then return the done event\n if (stateExited.$type === 'final' && stateExited.parent.$type === 'scxml') {\n\n if (this.opts.parentSession) {\n this._scriptingContext.send({\n target: '#_parent',\n name: 'done.invoke.' + this.opts.invokeid,\n data: stateExited.donedata && stateExited.donedata.call(this._scriptingContext, event)\n });\n }\n\n this.opts.sessionRegistry.delete(this.opts.sessionid);\n this.emit('onExitInterpreter', event);\n }\n }\n }\n\n /** \n * Starts the interpreter. Should only be called once, and should be called\n * before BaseInterpreter.prototype#gen is called for the first time. Returns a\n * Configuration.\n * @return {Configuration}\n * @memberof BaseInterpreter.prototype\n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'start',\n value: function start() {\n this._initStart();\n this._performBigStep();\n return this.getConfiguration();\n }\n\n /**\n * This callback is displayed as a global member.\n * @callback genCallback\n * @param {Error} err\n * @param {Configuration} configuration\n */\n\n /**\n * Starts the interpreter asynchronously\n * @param {genCallback} cb Callback invoked with an error or the interpreter's stable configuration\n * @memberof BaseInterpreter.prototype \n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'startAsync',\n value: function startAsync(cb) {\n cb = this._initStart(cb);\n this.genAsync(null, cb);\n }\n }, {\n key: '_initStart',\n value: function _initStart(cb) {\n var _this3 = this;\n\n if (typeof cb !== 'function') {\n cb = nop;\n }\n\n this._log(\"performing initial big step\");\n\n //We effectively need to figure out states to enter here to populate initial config. assuming root is compound state makes this simple.\n //but if we want it to be parallel, then this becomes more complex. so when initializing the model, we add a 'fake' root state, which\n //makes the following operation safe.\n this._model.initialRef.forEach(function (s) {\n return _this3._configuration.add(s);\n });\n\n return cb;\n }\n\n /** \n * Returns state machine {@link Configuration}.\n * @return {Configuration}\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getConfiguration',\n value: function getConfiguration() {\n return this._configuration.iter().map(function (s) {\n return s.id;\n });\n }\n }, {\n key: '_getFullConfiguration',\n value: function _getFullConfiguration() {\n return this._configuration.iter().map(function (s) {\n return [s].concat(query.getAncestors(s));\n }, this).reduce(function (a, b) {\n return a.concat(b);\n }, []). //flatten\n reduce(function (a, b) {\n return a.indexOf(b) > -1 ? a : a.concat(b);\n }, []); //uniq\n }\n\n /** \n * @return {FullConfiguration}\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getFullConfiguration',\n value: function getFullConfiguration() {\n return this._getFullConfiguration().map(function (s) {\n return s.id;\n });\n }\n\n /** \n * @return {boolean}\n * @memberof BaseInterpreter.prototype \n * @param {string} stateName\n */\n\n }, {\n key: 'isIn',\n value: function isIn(stateName) {\n return this.getFullConfiguration().indexOf(stateName) > -1;\n }\n\n /** \n * Is the state machine in a final state?\n * @return {boolean}\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'isFinal',\n value: function isFinal() {\n return this._isInFinalState;\n }\n\n /** @private */\n\n }, {\n key: '_performBigStep',\n value: function _performBigStep(e) {\n var currentEvent = void 0,\n keepGoing = void 0,\n allStatesExited = void 0,\n allStatesEntered = void 0;\n\n var _startBigStep2 = this._startBigStep(e);\n\n var _startBigStep3 = _slicedToArray(_startBigStep2, 4);\n\n allStatesExited = _startBigStep3[0];\n allStatesEntered = _startBigStep3[1];\n keepGoing = _startBigStep3[2];\n currentEvent = _startBigStep3[3];\n\n\n while (keepGoing) {\n var _selectTransitionsAnd = this._selectTransitionsAndPerformSmallStep(currentEvent, allStatesEntered, allStatesExited);\n\n var _selectTransitionsAnd2 = _slicedToArray(_selectTransitionsAnd, 2);\n\n currentEvent = _selectTransitionsAnd2[0];\n keepGoing = _selectTransitionsAnd2[1];\n }\n\n this._finishBigStep(currentEvent, allStatesEntered, allStatesExited);\n }\n }, {\n key: '_selectTransitionsAndPerformSmallStep',\n value: function _selectTransitionsAndPerformSmallStep(currentEvent, allStatesEntered, allStatesExited) {\n //first select with null event\n var selectedTransitions = this._selectTransitions(currentEvent, true);\n if (selectedTransitions.isEmpty()) {\n var ev = this._internalEventQueue.shift();\n if (ev) {\n currentEvent = ev;\n selectedTransitions = this._selectTransitions(currentEvent, false);\n }\n }\n\n if (!selectedTransitions.isEmpty()) {\n this.emit('onSmallStepBegin', currentEvent);\n var statesExited = void 0,\n statesEntered = void 0;\n\n var _performSmallStep2 = this._performSmallStep(currentEvent, selectedTransitions);\n\n var _performSmallStep3 = _slicedToArray(_performSmallStep2, 2);\n\n statesExited = _performSmallStep3[0];\n statesEntered = _performSmallStep3[1];\n\n if (statesExited) statesExited.forEach(function (s) {\n return allStatesExited.add(s);\n });\n if (statesEntered) statesEntered.forEach(function (s) {\n return allStatesEntered.add(s);\n });\n this.emit('onSmallStepEnd', currentEvent);\n }\n var keepGoing = !selectedTransitions.isEmpty() || this._internalEventQueue.length;\n return [currentEvent, keepGoing];\n }\n }, {\n key: '_startBigStep',\n value: function _startBigStep(e) {\n var _this4 = this;\n\n this.emit('onBigStepBegin', e);\n\n //do applyFinalize and autoforward\n this._configuration.iter().forEach(function (state) {\n if (state.invokes) state.invokes.forEach(function (invoke) {\n if (invoke.autoforward) {\n //autoforward\n _this4._scriptingContext.send({\n target: '#_' + invoke.id,\n name: e.name,\n data: e.data\n });\n }\n if (invoke.id === e.invokeid) {\n //applyFinalize\n if (invoke.finalize) invoke.finalize.forEach(function (action) {\n return _this4._evaluateAction(e, action);\n });\n }\n });\n });\n\n if (e) this._internalEventQueue.push(e);\n\n var allStatesExited = new Set(),\n allStatesEntered = new Set();\n var keepGoing = true;\n var currentEvent = e;\n return [allStatesEntered, allStatesExited, keepGoing, currentEvent];\n }\n }, {\n key: '_finishBigStep',\n value: function _finishBigStep(e, allStatesEntered, allStatesExited, cb) {\n var _this5 = this;\n\n var statesToInvoke = Array.from(new Set([].concat(_toConsumableArray(allStatesEntered)).filter(function (s) {\n return s.invokes && !allStatesExited.has(s);\n }))).sort(sortInEntryOrder);\n\n // Here we invoke whatever needs to be invoked. The implementation of 'invoke' is platform-specific\n statesToInvoke.forEach(function (s) {\n s.invokes.forEach(function (f) {\n return _this5._evaluateAction(e, f);\n });\n });\n\n // cancel invoke for allStatesExited\n allStatesExited.forEach(function (s) {\n if (s.invokes) s.invokes.forEach(function (invoke) {\n _this5._scriptingContext.cancelInvoke(invoke.id);\n });\n });\n\n // TODO: Invoking may have raised internal error events and we iterate to handle them \n //if not internalQueue.isEmpty():\n // continue\n\n this._isInFinalState = this._configuration.iter().every(function (s) {\n return s.typeEnum === FINAL;\n });\n if (this._isInFinalState) {\n this._exitInterpreter(e);\n }\n this.emit('onBigStepEnd', e);\n if (cb) cb(undefined, this.getConfiguration());\n }\n }, {\n key: '_cancelAllDelayedSends',\n value: function _cancelAllDelayedSends() {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this._scriptingContext._timeouts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var timeoutOptions = _step.value;\n\n if (!timeoutOptions.sendOptions.delay) continue;\n this._log('cancelling delayed send', timeoutOptions);\n clearTimeout(timeoutOptions.timeoutHandle);\n this._scriptingContext._timeouts.delete(timeoutOptions);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Object.keys(this._scriptingContext._timeoutMap).forEach(function (key) {\n delete this._scriptingContext._timeoutMap[key];\n }, this);\n }\n }, {\n key: '_performBigStepAsync',\n value: function _performBigStepAsync(e, cb) {\n var currentEvent = void 0,\n keepGoing = void 0,\n allStatesExited = void 0,\n allStatesEntered = void 0;\n\n var _startBigStep4 = this._startBigStep(e);\n\n var _startBigStep5 = _slicedToArray(_startBigStep4, 4);\n\n allStatesExited = _startBigStep5[0];\n allStatesEntered = _startBigStep5[1];\n keepGoing = _startBigStep5[2];\n currentEvent = _startBigStep5[3];\n\n\n function nextStep(emit) {\n this.emit(emit);\n\n var _selectTransitionsAnd3 = this._selectTransitionsAndPerformSmallStep(currentEvent, allStatesEntered, allStatesExited);\n\n var _selectTransitionsAnd4 = _slicedToArray(_selectTransitionsAnd3, 2);\n\n currentEvent = _selectTransitionsAnd4[0];\n keepGoing = _selectTransitionsAnd4[1];\n\n\n if (keepGoing) {\n this.emit('onBigStepSuspend');\n setImmediate(nextStep.bind(this, 'onBigStepResume'));\n } else {\n this._finishBigStep(currentEvent, allStatesEntered, allStatesExited, cb);\n }\n }\n nextStep.call(this, 'onBigStepBegin');\n }\n\n /** @private */\n\n }, {\n key: '_performSmallStep',\n value: function _performSmallStep(currentEvent, selectedTransitions) {\n\n this._log(\"selecting transitions with currentEvent\", currentEvent);\n\n this._log(\"selected transitions\", selectedTransitions);\n\n var statesExited = void 0,\n statesEntered = void 0;\n\n if (!selectedTransitions.isEmpty()) {\n\n //we only want to enter and exit states from transitions with targets\n //filter out targetless transitions here - we will only use these to execute transition actions\n var selectedTransitionsWithTargets = new this.opts.Set(selectedTransitions.iter().filter(transitionWithTargets));\n\n statesExited = this._exitStates(currentEvent, selectedTransitionsWithTargets);\n this._executeTransitions(currentEvent, selectedTransitions);\n statesEntered = this._enterStates(currentEvent, selectedTransitionsWithTargets);\n\n this._log(\"new configuration \", this._configuration);\n }\n\n return [statesExited, statesEntered];\n }\n }, {\n key: '_exitStates',\n value: function _exitStates(currentEvent, selectedTransitionsWithTargets) {\n var basicStatesExited = void 0,\n statesExited = void 0;\n\n var _getStatesExited2 = this._getStatesExited(selectedTransitionsWithTargets);\n\n var _getStatesExited3 = _slicedToArray(_getStatesExited2, 2);\n\n basicStatesExited = _getStatesExited3[0];\n statesExited = _getStatesExited3[1];\n\n\n this._log('exiting states');\n for (var j = 0, len = statesExited.length; j < len; j++) {\n var stateExited = statesExited[j];\n\n if (stateExited.isAtomic) this._configuration.remove(stateExited);\n\n this._log(\"exiting \", stateExited.id);\n\n //invoke listeners\n this.emit('onExit', stateExited.id);\n\n if (stateExited.onExit !== undefined) {\n for (var exitIdx = 0, exitLen = stateExited.onExit.length; exitIdx < exitLen; exitIdx++) {\n var block = stateExited.onExit[exitIdx];\n for (var blockIdx = 0, blockLen = block.length; blockIdx < blockLen; blockIdx++) {\n var actionRef = block[blockIdx];\n try {\n actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n\n var f;\n if (stateExited.historyRef) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = stateExited.historyRef[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var historyRef = _step2.value;\n\n if (historyRef.isDeep) {\n f = function f(s0) {\n return s0.typeEnum === BASIC && stateExited.descendants.indexOf(s0) > -1;\n };\n } else {\n f = function f(s0) {\n return s0.parent === stateExited;\n };\n }\n //update history\n this._historyValue[historyRef.id] = statesExited.filter(f);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n\n return statesExited;\n }\n\n /** @private */\n\n }, {\n key: '_getStatesExited',\n value: function _getStatesExited(transitions) {\n var statesExited = new this.opts.Set();\n var basicStatesExited = new this.opts.Set();\n\n //States exited are defined to be active states that are\n //descendants of the scope of each priority-enabled transition.\n //Here, we iterate through the transitions, and collect states\n //that match this condition. \n var transitionList = transitions.iter();\n for (var txIdx = 0, txLen = transitionList.length; txIdx < txLen; txIdx++) {\n var transition = transitionList[txIdx];\n var scope = transition.scope,\n desc = scope.descendants;\n\n //For each state in the configuration\n //is that state a descendant of the transition scope?\n //Store ancestors of that state up to but not including the scope.\n var configList = this._configuration.iter();\n for (var cfgIdx = 0, cfgLen = configList.length; cfgIdx < cfgLen; cfgIdx++) {\n var state = configList[cfgIdx];\n if (desc.indexOf(state) > -1) {\n basicStatesExited.add(state);\n statesExited.add(state);\n var ancestors = query.getAncestors(state, scope);\n for (var ancIdx = 0, ancLen = ancestors.length; ancIdx < ancLen; ancIdx++) {\n statesExited.add(ancestors[ancIdx]);\n }\n }\n }\n }\n\n var sortedStatesExited = statesExited.iter().sort(getStateWithHigherSourceChildPriority);\n return [basicStatesExited, sortedStatesExited];\n }\n }, {\n key: '_executeTransitions',\n value: function _executeTransitions(currentEvent, selectedTransitions) {\n var sortedTransitions = selectedTransitions.iter().sort(transitionComparator);\n\n this._log(\"executing transitition actions\");\n for (var stxIdx = 0, len = sortedTransitions.length; stxIdx < len; stxIdx++) {\n var transition = sortedTransitions[stxIdx];\n\n var targetIds = transition.targets && transition.targets.map(function (target) {\n return target.id;\n });\n\n this.emit('onTransition', transition.source.id, targetIds, transition.source.transitions.indexOf(transition));\n\n if (transition.onTransition !== undefined) {\n for (var txIdx = 0, txLen = transition.onTransition.length; txIdx < txLen; txIdx++) {\n var actionRef = transition.onTransition[txIdx];\n try {\n actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n }\n }, {\n key: '_enterStates',\n value: function _enterStates(currentEvent, selectedTransitionsWithTargets) {\n var _this6 = this;\n\n this._log(\"entering states\");\n\n var statesEntered = new Set();\n var statesForDefaultEntry = new Set();\n // initialize the temporary table for default content in history states\n var defaultHistoryContent = {};\n this._computeEntrySet(selectedTransitionsWithTargets, statesEntered, statesForDefaultEntry, defaultHistoryContent);\n statesEntered = Array.from(statesEntered).sort(sortInEntryOrder);\n\n this._log(\"statesEntered \", statesEntered);\n\n for (var enterIdx = 0, enterLen = statesEntered.length; enterIdx < enterLen; enterIdx++) {\n var stateEntered = statesEntered[enterIdx];\n\n if (stateEntered.isAtomic) this._configuration.add(stateEntered);\n\n this._log(\"entering\", stateEntered.id);\n\n this.emit('onEntry', stateEntered.id);\n\n if (stateEntered.onEntry !== undefined) {\n for (var entryIdx = 0, entryLen = stateEntered.onEntry.length; entryIdx < entryLen; entryIdx++) {\n var block = stateEntered.onEntry[entryIdx];\n for (var blockIdx = 0, blockLen = block.length; blockIdx < blockLen; blockIdx++) {\n var actionRef = block[blockIdx];\n try {\n actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n\n if (statesForDefaultEntry.has(stateEntered)) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = stateEntered.initialRef[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var initialState = _step3.value;\n\n this.emit('onDefaultEntry', initialState.id);\n if (initialState.typeEnum === INITIAL) {\n var transition = initialState.transitions[0];\n if (transition.onTransition !== undefined) {\n this._log('executing initial transition content for initial state of parent state', stateEntered.id);\n for (var txIdx = 0, txLen = transition.onTransition.length; txIdx < txLen; txIdx++) {\n var _actionRef = transition.onTransition[txIdx];\n try {\n _actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, _actionRef);\n break;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n\n if (defaultHistoryContent[stateEntered.id]) {\n var _transition = defaultHistoryContent[stateEntered.id];\n if (_transition.onTransition !== undefined) {\n this._log('executing history transition content for history state of parent state', stateEntered.id);\n for (var txIdx = 0, txLen = _transition.onTransition.length; txIdx < txLen; txIdx++) {\n var _actionRef2 = _transition.onTransition[txIdx];\n try {\n _actionRef2.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, _actionRef2);\n break;\n }\n }\n }\n }\n }\n\n for (var enterIdx = 0, enterLen = statesEntered.length; enterIdx < enterLen; enterIdx++) {\n var stateEntered = statesEntered[enterIdx];\n if (stateEntered.typeEnum === FINAL) {\n var parent = stateEntered.parent;\n var grandparent = parent.parent;\n this._internalEventQueue.push({ name: \"done.state.\" + parent.id, data: stateEntered.donedata && stateEntered.donedata.call(this._scriptingContext, currentEvent) });\n if (grandparent && grandparent.typeEnum === PARALLEL) {\n if (grandparent.states.every(function (s) {\n return _this6.isInFinalState(s);\n })) {\n this._internalEventQueue.push({ name: \"done.state.\" + grandparent.id });\n }\n }\n }\n }\n\n return statesEntered;\n }\n }, {\n key: '_getEffectiveTargetStates',\n value: function _getEffectiveTargetStates(transition) {\n var targets = new Set();\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = transition.targets[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var s = _step4.value;\n\n if (s.typeEnum === HISTORY) {\n if (s.id in this._historyValue) this._historyValue[s.id].forEach(function (state) {\n return targets.add(state);\n });else [].concat(_toConsumableArray(this._getEffectiveTargetStates(s.transitions[0]))).forEach(function (state) {\n return targets.add(state);\n });\n } else {\n targets.add(s);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return targets;\n }\n }, {\n key: '_computeEntrySet',\n value: function _computeEntrySet(transitions, statesToEnter, statesForDefaultEntry, defaultHistoryContent) {\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = transitions.iter()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var t = _step5.value;\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = t.targets[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var s = _step6.value;\n\n this._addDescendantStatesToEnter(s, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n var ancestor = t.scope;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = this._getEffectiveTargetStates(t)[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var _s = _step7.value;\n\n this._addAncestorStatesToEnter(_s, ancestor, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n }, {\n key: '_computeExitSet',\n value: function _computeExitSet(transitions) {\n var statesToExit = new Set();\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = transitions[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var t = _step8.value;\n\n if (t.targets) {\n var scope = t.scope;\n var _iteratorNormalCompletion9 = true;\n var _didIteratorError9 = false;\n var _iteratorError9 = undefined;\n\n try {\n for (var _iterator9 = this._getFullConfiguration()[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {\n var s = _step9.value;\n\n if (query.isDescendant(s, scope)) statesToExit.add(s);\n }\n } catch (err) {\n _didIteratorError9 = true;\n _iteratorError9 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion9 && _iterator9.return) {\n _iterator9.return();\n }\n } finally {\n if (_didIteratorError9) {\n throw _iteratorError9;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return statesToExit;\n }\n }, {\n key: '_addAncestorStatesToEnter',\n value: function _addAncestorStatesToEnter(state, ancestor, statesToEnter, statesForDefaultEntry, defaultHistoryContent) {\n var _this7 = this;\n\n var traverse = function traverse(anc) {\n if (anc.typeEnum === PARALLEL) {\n var _iteratorNormalCompletion10 = true;\n var _didIteratorError10 = false;\n var _iteratorError10 = undefined;\n\n try {\n var _loop = function _loop() {\n var child = _step10.value;\n\n if (child.typeEnum !== HISTORY && ![].concat(_toConsumableArray(statesToEnter)).some(function (s) {\n return query.isDescendant(s, child);\n })) {\n _this7._addDescendantStatesToEnter(child, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n };\n\n for (var _iterator10 = anc.states[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) {\n _loop();\n }\n } catch (err) {\n _didIteratorError10 = true;\n _iteratorError10 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion10 && _iterator10.return) {\n _iterator10.return();\n }\n } finally {\n if (_didIteratorError10) {\n throw _iteratorError10;\n }\n }\n }\n }\n };\n var _iteratorNormalCompletion11 = true;\n var _didIteratorError11 = false;\n var _iteratorError11 = undefined;\n\n try {\n for (var _iterator11 = query.getAncestors(state, ancestor)[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {\n var anc = _step11.value;\n\n statesToEnter.add(anc);\n traverse(anc);\n }\n } catch (err) {\n _didIteratorError11 = true;\n _iteratorError11 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion11 && _iterator11.return) {\n _iterator11.return();\n }\n } finally {\n if (_didIteratorError11) {\n throw _iteratorError11;\n }\n }\n }\n\n traverse(ancestor);\n }\n }, {\n key: '_addDescendantStatesToEnter',\n value: function _addDescendantStatesToEnter(state, statesToEnter, statesForDefaultEntry, defaultHistoryContent) {\n var _this8 = this;\n\n if (state.typeEnum === HISTORY) {\n if (this._historyValue[state.id]) {\n var _iteratorNormalCompletion12 = true;\n var _didIteratorError12 = false;\n var _iteratorError12 = undefined;\n\n try {\n for (var _iterator12 = this._historyValue[state.id][Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {\n var s = _step12.value;\n\n this._addDescendantStatesToEnter(s, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError12 = true;\n _iteratorError12 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion12 && _iterator12.return) {\n _iterator12.return();\n }\n } finally {\n if (_didIteratorError12) {\n throw _iteratorError12;\n }\n }\n }\n\n var _iteratorNormalCompletion13 = true;\n var _didIteratorError13 = false;\n var _iteratorError13 = undefined;\n\n try {\n for (var _iterator13 = this._historyValue[state.id][Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) {\n var _s2 = _step13.value;\n\n this._addAncestorStatesToEnter(_s2, state.parent, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError13 = true;\n _iteratorError13 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion13 && _iterator13.return) {\n _iterator13.return();\n }\n } finally {\n if (_didIteratorError13) {\n throw _iteratorError13;\n }\n }\n }\n } else {\n defaultHistoryContent[state.parent.id] = state.transitions[0];\n var _iteratorNormalCompletion14 = true;\n var _didIteratorError14 = false;\n var _iteratorError14 = undefined;\n\n try {\n for (var _iterator14 = state.transitions[0].targets[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {\n var _s3 = _step14.value;\n\n this._addDescendantStatesToEnter(_s3, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError14 = true;\n _iteratorError14 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion14 && _iterator14.return) {\n _iterator14.return();\n }\n } finally {\n if (_didIteratorError14) {\n throw _iteratorError14;\n }\n }\n }\n\n var _iteratorNormalCompletion15 = true;\n var _didIteratorError15 = false;\n var _iteratorError15 = undefined;\n\n try {\n for (var _iterator15 = state.transitions[0].targets[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {\n var _s4 = _step15.value;\n\n this._addAncestorStatesToEnter(_s4, state.parent, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError15 = true;\n _iteratorError15 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion15 && _iterator15.return) {\n _iterator15.return();\n }\n } finally {\n if (_didIteratorError15) {\n throw _iteratorError15;\n }\n }\n }\n }\n } else {\n statesToEnter.add(state);\n if (state.typeEnum === COMPOSITE) {\n statesForDefaultEntry.add(state);\n //for each state in initialRef, if it is an initial state, then add ancestors and descendants.\n var _iteratorNormalCompletion16 = true;\n var _didIteratorError16 = false;\n var _iteratorError16 = undefined;\n\n try {\n for (var _iterator16 = state.initialRef[Symbol.iterator](), _step16; !(_iteratorNormalCompletion16 = (_step16 = _iterator16.next()).done); _iteratorNormalCompletion16 = true) {\n var _s5 = _step16.value;\n\n var targets = _s5.typeEnum === INITIAL ? _s5.transitions[0].targets : [_s5];\n var _iteratorNormalCompletion18 = true;\n var _didIteratorError18 = false;\n var _iteratorError18 = undefined;\n\n try {\n for (var _iterator18 = targets[Symbol.iterator](), _step18; !(_iteratorNormalCompletion18 = (_step18 = _iterator18.next()).done); _iteratorNormalCompletion18 = true) {\n var targetState = _step18.value;\n\n this._addDescendantStatesToEnter(targetState, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError18 = true;\n _iteratorError18 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion18 && _iterator18.return) {\n _iterator18.return();\n }\n } finally {\n if (_didIteratorError18) {\n throw _iteratorError18;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError16 = true;\n _iteratorError16 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion16 && _iterator16.return) {\n _iterator16.return();\n }\n } finally {\n if (_didIteratorError16) {\n throw _iteratorError16;\n }\n }\n }\n\n var _iteratorNormalCompletion17 = true;\n var _didIteratorError17 = false;\n var _iteratorError17 = undefined;\n\n try {\n for (var _iterator17 = state.initialRef[Symbol.iterator](), _step17; !(_iteratorNormalCompletion17 = (_step17 = _iterator17.next()).done); _iteratorNormalCompletion17 = true) {\n var _s6 = _step17.value;\n\n var _targets = _s6.typeEnum === INITIAL ? _s6.transitions[0].targets : [_s6];\n var _iteratorNormalCompletion19 = true;\n var _didIteratorError19 = false;\n var _iteratorError19 = undefined;\n\n try {\n for (var _iterator19 = _targets[Symbol.iterator](), _step19; !(_iteratorNormalCompletion19 = (_step19 = _iterator19.next()).done); _iteratorNormalCompletion19 = true) {\n var _targetState = _step19.value;\n\n this._addAncestorStatesToEnter(_targetState, state, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError19 = true;\n _iteratorError19 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion19 && _iterator19.return) {\n _iterator19.return();\n }\n } finally {\n if (_didIteratorError19) {\n throw _iteratorError19;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError17 = true;\n _iteratorError17 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion17 && _iterator17.return) {\n _iterator17.return();\n }\n } finally {\n if (_didIteratorError17) {\n throw _iteratorError17;\n }\n }\n }\n } else {\n if (state.typeEnum === PARALLEL) {\n var _iteratorNormalCompletion20 = true;\n var _didIteratorError20 = false;\n var _iteratorError20 = undefined;\n\n try {\n var _loop2 = function _loop2() {\n var child = _step20.value;\n\n if (child.typeEnum !== HISTORY && ![].concat(_toConsumableArray(statesToEnter)).some(function (s) {\n return query.isDescendant(s, child);\n })) {\n _this8._addDescendantStatesToEnter(child, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n };\n\n for (var _iterator20 = state.states[Symbol.iterator](), _step20; !(_iteratorNormalCompletion20 = (_step20 = _iterator20.next()).done); _iteratorNormalCompletion20 = true) {\n _loop2();\n }\n } catch (err) {\n _didIteratorError20 = true;\n _iteratorError20 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion20 && _iterator20.return) {\n _iterator20.return();\n }\n } finally {\n if (_didIteratorError20) {\n throw _iteratorError20;\n }\n }\n }\n }\n }\n }\n }\n }, {\n key: 'isInFinalState',\n value: function isInFinalState(s) {\n var _this9 = this;\n\n if (s.typeEnum === COMPOSITE) {\n return s.states.some(function (s) {\n return s.typeEnum === FINAL && _this9._configuration.contains(s);\n });\n } else if (s.typeEnum === PARALLEL) {\n return s.states.every(this.isInFinalState.bind(this));\n } else {\n return false;\n }\n }\n\n /** @private */\n\n }, {\n key: '_evaluateAction',\n value: function _evaluateAction(currentEvent, actionRef) {\n try {\n return actionRef.call(this._scriptingContext, currentEvent); //SCXML system variables\n } catch (e) {\n this._handleError(e, actionRef);\n }\n }\n }, {\n key: '_handleError',\n value: function _handleError(e, actionRef) {\n var event = e instanceof Error || typeof e.__proto__.name === 'string' && e.__proto__.name.match(/^.*Error$/) ? //we can't just do 'e instanceof Error', because the Error object in the sandbox is from a different context, and instanceof will return false\n {\n name: 'error.execution',\n data: {\n tagname: actionRef.tagname,\n line: actionRef.line,\n column: actionRef.column,\n reason: e.message\n },\n type: 'platform'\n } : e.name ? e : {\n name: 'error.execution',\n data: e,\n type: 'platform'\n };\n this._internalEventQueue.push(event);\n this.emit('onError', event);\n }\n }, {\n key: '_log',\n value: function _log() {\n if (printTrace) {\n var args = Array.from(arguments);\n this.opts.console.log(args[0] + ': ' + args.slice(1).map(function (arg) {\n return arg === null ? 'null' : arg === undefined ? 'undefined' : typeof arg === 'string' ? arg : arg.toString() === '[object Object]' ? util.inspect(arg) : arg.toString();\n }).join(', ') + '\\n');\n }\n }\n\n /**\n * @interface Listener\n */\n\n /**\n * @function\n * @name Listener#onEntry \n * @param {string} stateId\n */\n\n /**\n * @function\n * @name Listener#onExit \n * @param {string} stateId\n */\n\n /**\n * @function\n * @name Listener#onTransition \n * @param {string} sourceStateId Id of the source state\n * @param {Array<string>} targetStatesIds Ids of the target states\n * @param {number} transitionIndex Index of the transition relative to other transitions originating from source state.\n */\n\n /**\n * @function\n * @name Listener#onError\n * @param {Error} errorInfo\n */\n\n /**\n * @function\n * @name Listener#onBigStepBegin\n */\n\n /**\n * @function\n * @name Listener#onBigStepResume\n */\n\n /**\n * @function\n * @name Listener#onBigStepSuspend\n */\n\n /**\n * @function\n * @name Listener#onBigStepEnd\n */\n\n /**\n * @function\n * @name Listener#onSmallStepBegin\n * @param {string} event\n */\n\n /**\n * @function\n * @name Listener#onSmallStepEnd\n */\n\n /** \n * Provides a generic mechanism to subscribe to state change and runtime\n * error notifications. Can be used for logging and debugging. For example,\n * can attach a logger that simply logs the state changes. Or can attach a\n * network debugging client that sends state change notifications to a\n * debugging server.\n * This is an alternative interface to {@link EventEmitter.prototype#on}.\n * @memberof BaseInterpreter.prototype \n * @param {Listener} listener\n */\n\n }, {\n key: 'registerListener',\n value: function registerListener(listener) {\n BaseInterpreter.EVENTS.forEach(function (event) {\n if (listener[event]) this.on(event, listener[event]);\n }, this);\n }\n\n /** \n * Unregister a Listener\n * @memberof BaseInterpreter.prototype \n * @param {Listener} listener\n */\n\n }, {\n key: 'unregisterListener',\n value: function unregisterListener(listener) {\n BaseInterpreter.EVENTS.forEach(function (event) {\n if (listener[event]) this.off(event, listener[event]);\n }, this);\n }\n\n /** \n * Query the model to get all transition events.\n * @return {Array<string>} Transition events.\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getAllTransitionEvents',\n value: function getAllTransitionEvents() {\n var events = {};\n function getEvents(state) {\n\n if (state.transitions) {\n for (var txIdx = 0, txLen = state.transitions.length; txIdx < txLen; txIdx++) {\n events[state.transitions[txIdx].event] = true;\n }\n }\n\n if (state.states) {\n for (var stateIdx = 0, stateLen = state.states.length; stateIdx < stateLen; stateIdx++) {\n getEvents(state.states[stateIdx]);\n }\n }\n }\n\n getEvents(this._model);\n\n return Object.keys(events);\n }\n\n /**\n * Three things capture the current snapshot of a running SCION interpreter:\n *\n * <ul>\n * <li> basic configuration (the set of basic states the state machine is in)</li>\n * <li> history state values (the states the state machine was in last time it was in the parent of a history state)</li>\n * <li> the datamodel</li>\n * </ul>\n * \n * The snapshot object can be serialized as JSON and saved to a database. It can\n * later be passed to the SCXML constructor to restore the state machine\n * using the snapshot argument.\n *\n * @return {Snapshot} \n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getSnapshot',\n value: function getSnapshot() {\n return [this.getConfiguration(), this._serializeHistory(), this._isInFinalState, this._model.$serializeDatamodel(), this._internalEventQueue.slice()];\n }\n }, {\n key: '_serializeHistory',\n value: function _serializeHistory() {\n var o = {};\n Object.keys(this._historyValue).forEach(function (sid) {\n o[sid] = this._historyValue[sid].map(function (state) {\n return state.id;\n });\n }, this);\n return o;\n }\n\n /**\n * @interface Event\n */\n\n /** \n * @member name\n * @memberof Event.prototype \n * @type string\n * @description The name of the event\n */\n\n /** \n * @member data\n * @memberof Event.prototype \n * @type any\n * @description The event data\n */\n\n /** \n * An SCXML interpreter takes SCXML events as input, where an SCXML event is an\n * object with \"name\" and \"data\" properties. These can be passed to method `gen`\n * as two positional arguments, or as a single object.\n * @param {string|Event} evtObjOrName\n * @param {any=} optionalData\n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'gen',\n value: function gen(evtObjOrName, optionalData) {\n var currentEvent;\n switch (typeof evtObjOrName === 'undefined' ? 'undefined' : _typeof(evtObjOrName)) {\n case 'string':\n currentEvent = { name: evtObjOrName, data: optionalData };\n break;\n case 'object':\n if (typeof evtObjOrName.name === 'string') {\n currentEvent = evtObjOrName;\n } else {\n throw new Error('Event object must have \"name\" property of type string.');\n }\n break;\n default:\n throw new Error('First argument to gen must be a string or object.');\n }\n\n if (this._isStepping) throw new Error('Cannot call gen during a big-step');\n\n //otherwise, kick him off\n this._isStepping = true;\n\n this._performBigStep(currentEvent);\n\n this._isStepping = false;\n return this.getConfiguration();\n }\n\n /**\n * Injects an external event into the interpreter asynchronously\n * @param {Event} currentEvent The event to inject\n * @param {genCallback} cb Callback invoked with an error or the interpreter's stable configuration\n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'genAsync',\n value: function genAsync(currentEvent, cb) {\n if (currentEvent !== null && ((typeof currentEvent === 'undefined' ? 'undefined' : _typeof(currentEvent)) !== 'object' || !currentEvent || typeof currentEvent.name !== 'string')) {\n throw new Error('Expected currentEvent to be null or an Object with a name');\n }\n\n if (typeof cb !== 'function') {\n cb = nop;\n }\n\n this._externalEventQueue.push([currentEvent, cb]);\n\n //the semantics we want are to return to the cb the results of processing that particular event.\n function nextStep(e, c) {\n this._performBigStepAsync(e, function (err, config) {\n c(err, config);\n\n if (this._externalEventQueue.length) {\n nextStep.apply(this, this._externalEventQueue.shift());\n } else {\n this._isStepping = false;\n }\n }.bind(this));\n }\n if (!this._isStepping) {\n this._isStepping = true;\n nextStep.apply(this, this._externalEventQueue.shift());\n }\n }\n }]);\n\n return BaseInterpreter;\n}(EventEmitter);\n\nBaseInterpreter.EVENTS = ['onEntry', 'onExit', 'onTransition', 'onDefaultEntry', 'onError', 'onBigStepBegin', 'onBigStepSuspend', 'onBigStepResume', 'onSmallStepBegin', 'onSmallStepEnd', 'onBigStepEnd', 'onExitInterpreter'];\n\n//some global singletons to use to generate in-memory session ids, in case the user does not specify these data structures\nBaseInterpreter.sessionIdCounter = 1;\nBaseInterpreter.generateSessionid = function () {\n return BaseInterpreter.sessionIdCounter++;\n};\nBaseInterpreter.sessionRegistry = new Map();\n\n// Do nothing\n\nfunction nop() {}\n\nvar InterpreterScriptingContext = function () {\n function InterpreterScriptingContext(interpreter) {\n _classCallCheck(this, InterpreterScriptingContext);\n\n this._interpreter = interpreter;\n this._timeoutMap = {};\n this._invokeMap = {};\n this._timeouts = new Set();\n\n //Regex from:\n // http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n // http://stackoverflow.com/a/6927878\n this.validateUriRegex = /(#_.*)|\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))/i;\n\n this.invokeSendTargetRegex = /^#_(.*)$/;\n this.scxmlSendTargetRegex = /^#_scxml_(.*)$/;\n }\n\n _createClass(InterpreterScriptingContext, [{\n key: 'raise',\n value: function raise(event) {\n this._installDefaultPropsOnEvent(event, true);\n this._interpreter._internalEventQueue.push(event);\n }\n }, {\n key: 'parseXmlStringAsDOM',\n value: function parseXmlStringAsDOM(xmlString) {\n return (this._interpreter.opts.xmlParser || InterpreterScriptingContext.xmlParser).parse(xmlString);\n }\n }, {\n key: 'invoke',\n value: function invoke(invokeObj) {\n var _this10 = this;\n\n //look up invoker by type. assume invokers are passed in as an option to constructor\n this._invokeMap[invokeObj.id] = new Promise(function (resolve, reject) {\n (_this10._interpreter.opts.invokers || InterpreterScriptingContext.invokers)[invokeObj.type](_this10._interpreter, invokeObj, _this10._interpreter.opts.invokerExecutionContext, function (err, session) {\n if (err) return reject(err);\n\n _this10._interpreter.emit('onInvokedSessionInitialized', session);\n resolve(session);\n });\n });\n }\n }, {\n key: 'cancelInvoke',\n value: function cancelInvoke(invokeid) {\n var _this11 = this;\n\n //TODO: on cancel invoke clean up this._invokeMap\n var sessionPromise = this._invokeMap[invokeid];\n this._interpreter._log('cancelling session with invokeid ' + invokeid);\n if (sessionPromise) {\n this._interpreter._log('sessionPromise found');\n sessionPromise.then(function (session) {\n _this11._interpreter._log('resolved session ' + invokeid + '. cancelling... ');\n session.cancel();\n //clean up\n delete _this11._invokeMap[invokeid];\n }, function (err) {\n //TODO: dispatch error back into the state machine as error.communication\n });\n }\n }\n }, {\n key: '_installDefaultPropsOnEvent',\n value: function _installDefaultPropsOnEvent(event, isInternal) {\n if (!isInternal) {\n event.origin = this._interpreter.opts._x._ioprocessors.scxml.location; //TODO: preserve original origin when we autoforward? \n event.origintype = event.type || SCXML_IOPROCESSOR_TYPE;\n }\n if (typeof event.type === 'undefined') {\n event.type = isInternal ? 'internal' : 'external';\n }\n ['name', 'sendid', 'invokeid', 'data', 'origin', 'origintype'].forEach(function (prop) {\n if (typeof event[prop] === 'undefined') {\n event[prop] = undefined;\n }\n });\n }\n }, {\n key: 'send',\n value: function send(event, options) {\n this._interpreter._log('send event', event, options);\n options = options || {};\n var sendType = options.type || SCXML_IOPROCESSOR_TYPE;\n //TODO: move these out\n function validateSend(event, options, sendAction) {\n if (event.target) {\n var targetIsValidUri = this.validateUriRegex.test(event.target);\n if (!targetIsValidUri) {\n throw { name: \"error.execution\", data: 'Target is not valid URI', sendid: event.sendid, type: 'platform' };\n }\n }\n if (sendType !== SCXML_IOPROCESSOR_TYPE) {\n //TODO: extend this to support HTTP, and other IO processors\n throw { name: \"error.execution\", data: 'Unsupported event processor type', sendid: event.sendid, type: 'platform' };\n }\n\n sendAction.call(this, event, options);\n }\n\n function defaultSendAction(event, options) {\n var _this12 = this;\n\n if (typeof setTimeout === 'undefined') throw new Error('Default implementation of BaseInterpreter.prototype.send will not work unless setTimeout is defined globally.');\n\n var match;\n if (event.target === '#_internal') {\n this.raise(event);\n } else {\n this._installDefaultPropsOnEvent(event, false);\n event.origintype = SCXML_IOPROCESSOR_TYPE; //TODO: extend this to support HTTP, and other IO processors\n //TODO : paramterize this based on send/@type?\n if (!event.target) {\n doSend.call(this, this._interpreter);\n } else if (event.target === '#_parent') {\n if (this._interpreter.opts.parentSession) {\n event.invokeid = this._interpreter.opts.invokeid;\n doSend.call(this, this._interpreter.opts.parentSession);\n } else {\n throw { name: \"error.communication\", data: 'Parent session not specified', sendid: event.sendid, type: 'platform' };\n }\n } else if (match = event.target.match(this.scxmlSendTargetRegex)) {\n var targetSessionId = match[1];\n var session = this._interpreter.opts.sessionRegistry.get(targetSessionId);\n if (session) {\n doSend.call(this, session);\n } else {\n throw { name: 'error.communication', sendid: event.sendid, type: 'platform' };\n }\n } else if (match = event.target.match(this.invokeSendTargetRegex)) {\n //TODO: test this code path.\n var invokeId = match[1];\n this._invokeMap[invokeId].then(function (session) {\n doSend.call(_this12, session);\n });\n } else {\n throw new Error('Unrecognized send target.'); //TODO: dispatch error back into the state machine\n }\n }\n\n function doSend(session) {\n //TODO: we probably now need to refactor data structures:\n // this._timeouts\n // this._timeoutMap\n var timeoutHandle = setTimeout(function () {\n if (event.sendid) delete this._timeoutMap[event.sendid];\n this._timeouts.delete(timeoutOptions);\n if (this._interpreter.opts.doSend) {\n this._interpreter.opts.doSend(session, event);\n } else {\n session[this._interpreter.opts.sendAsync ? 'genAsync' : 'gen'](event);\n }\n }.bind(this), options.delay || 0);\n\n var timeoutOptions = {\n sendOptions: options,\n timeoutHandle: timeoutHandle\n };\n if (event.sendid) this._timeoutMap[event.sendid] = timeoutHandle;\n this._timeouts.add(timeoutOptions);\n }\n }\n\n function publish() {\n this._interpreter.emit(event.name, event.data);\n }\n\n //choose send function\n //TODO: rethink how this custom send works\n var sendFn;\n if (event.type === 'https://github.com/jbeard4/SCION#publish') {\n sendFn = publish;\n } else if (this._interpreter.opts.customSend) {\n sendFn = this._interpreter.opts.customSend;\n } else {\n sendFn = defaultSendAction;\n }\n\n options = options || {};\n\n this._interpreter._log(\"sending event\", event.name, \"with content\", event.data, \"after delay\", options.delay);\n\n validateSend.call(this, event, options, sendFn);\n }\n }, {\n key: 'cancel',\n value: function cancel(sendid) {\n if (this._interpreter.opts.customCancel) {\n return this._interpreter.opts.customCancel.apply(this, [sendid]);\n }\n\n if (typeof clearTimeout === 'undefined') throw new Error('Default implementation of BaseInterpreter.prototype.cancel will not work unless setTimeout is defined globally.');\n\n if (sendid in this._timeoutMap) {\n this._interpreter._log(\"cancelling \", sendid, \" with timeout id \", this._timeoutMap[sendid]);\n clearTimeout(this._timeoutMap[sendid]);\n }\n }\n }]);\n\n return InterpreterScriptingContext;\n}();\n\nmodule.exports = extend(new EventEmitter(), {\n BaseInterpreter: BaseInterpreter,\n ArraySet: ArraySet,\n STATE_TYPES: constants.STATE_TYPES,\n initializeModel: initializeModel,\n InterpreterScriptingContext: InterpreterScriptingContext,\n helpers: helpers,\n query: query\n});\n\n}).call(this,require('_process'),require(\"timers\").setImmediate)\n},{\"./ArraySet\":2,\"./constants\":3,\"./helpers\":4,\"./query\":5,\"_process\":8,\"timers\":9,\"tiny-events\":10,\"util\":12}],7:[function(require,module,exports){\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n},{}],8:[function(require,module,exports){\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],9:[function(require,module,exports){\n(function (setImmediate,clearImmediate){\nvar nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n}).call(this,require(\"timers\").setImmediate,require(\"timers\").clearImmediate)\n},{\"process/browser.js\":8,\"timers\":9}],10:[function(require,module,exports){\nfunction EventEmitter() {\n this._listeners = {};\n}\n\nEventEmitter.prototype.on = function _on(type, listener) {\n if (!Array.isArray(this._listeners[type])) {\n this._listeners[type] = [];\n }\n\n if (this._listeners[type].indexOf(listener) === -1) {\n this._listeners[type].push(listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.once = function _once(type, listener) {\n var self = this;\n\n function __once() {\n for (var args = [], i = 0; i < arguments.length; i += 1) {\n args[i] = arguments[i];\n }\n\n self.off(type, __once);\n listener.apply(self, args);\n }\n\n __once.listener = listener;\n\n return this.on(type, __once);\n};\n\nEventEmitter.prototype.off = function _off(type, listener) {\n if (!Array.isArray(this._listeners[type])) {\n return this;\n }\n\n if (typeof listener === 'undefined') {\n this._listeners[type] = [];\n return this;\n }\n\n var index = this._listeners[type].indexOf(listener);\n\n if (index === -1) {\n for (var i = 0; i < this._listeners[type].length; i += 1) {\n if (this._listeners[type][i].listener === listener) {\n index = i;\n break;\n }\n }\n }\n\n this._listeners[type].splice(index, 1);\n return this;\n};\n\nEventEmitter.prototype.emit = function _emit(type) {\n if (!Array.isArray(this._listeners[type])) {\n return this;\n }\n\n for (var args = [], i = 1; i < arguments.length; i += 1) {\n args[i - 1] = arguments[i];\n }\n\n this._listeners[type].forEach(function __emit(listener) {\n listener.apply(this, args);\n }, this);\n\n return this;\n};\n\nmodule.exports.EventEmitter = EventEmitter;\n\n},{}],11:[function(require,module,exports){\nmodule.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n},{}],12:[function(require,module,exports){\n(function (process,global){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./support/isBuffer\":11,\"_process\":8,\"inherits\":7}]},{},[1])(1)\n});\n"]}
1
+ {"version":3,"sources":["core.js"],"names":["f","exports","module","define","amd","g","window","global","self","core","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","ArraySet","l","Set","prototype","add","x","remove","delete","union","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_iterator","Symbol","iterator","_step","next","done","v","value","err","return","difference","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","contains","has","iter","Array","from","isEmpty","size","equals","s2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","toString","join","STATE_TYPES","BASIC","COMPOSITE","PARALLEL","HISTORY","INITIAL","FINAL","SCXML_IOPROCESSOR_TYPE","HTTP_IOPROCESSOR_TYPE","RX_TRAILING_WILDCARD","_typeof","obj","constructor","constants","printTrace","extend","transitionWithTargets","transitionComparator","initializeModel","isEventPrefixMatch","isTransitionMatch","scxmlPrefixTransitionSelector","eventlessTransitionSelector","getTransitionWithHigherSourceChildPriority","sortInEntryOrder","getStateWithHigherSourceChildPriority","initializeModelGeneratorFn","deserializeSerializedConfiguration","deserializeHistory","to","Object","keys","forEach","k","targets","t1","t2","documentOrder","rootState","opts","transitions","idToStateMap","Map","idCount","generateId","type","count","id","wrapInFakeRootState","state","$deserializeDatamodel","$serializeDatamodel","$idToStateMap","docUrl","name","states","$type","target","modelFnName","statesWithInitialAttributes","transitionToString","sourceState","events","cond","stateToString","populateStateIdMap","set","j","len","traverse","ancestors","push","apply","depth","parent","transition","source","bind","ancs","concat","typeEnum","isAtomic","descendants","map","s","reduce","b","initialChildren","isArray","initial","filter","child","initialRef","checkInitialRef","historyChildren","historyRef","prop","every","handler","invokes","invoke","finalize","connectIntialAttributes","initialStates","initialState","get","RX_WHITESPACE","connectTransitionGraph","onTransition","event","trim","split","lcca","getLCCA","scope","getScope","transitionIsReallyInternal","indexOf","s1","commonAncestors","anc","legacySemantics","fakeRootState","prefix","fullName","replace","charAt","eventName","some","tEvent","evaluator","selectEventlessTransitions","_args","modelFn","interpreter","model","_x","_sessionid","_ioprocessors","isIn","serializedConfiguration","serializedHistory","sid","query","isDescendant","getAncestors","root","index","slice","isOrthogonalTo","isAncestrallyRelatedTo","getLCA","getAncestorsOrSelf","getDescendantsOrSelf","process","setImmediate","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_i","_s","TypeError","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","Constructor","protoProps","staticProps","_toConsumableArray","arr2","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","EventEmitter","util","helpers","env","DEBUG","BaseInterpreter","_EventEmitter","modelOrModelFactory","_this","getPrototypeOf","InterpreterScriptingContext","_isStepping","_scriptingContext","interpreterScriptingContext","_invokeMap","generateSessionid","sessionid","sessionRegistry","invokerExecutionContext","_executionContext","location","scxml","JSON","parse","stringify","_model","console","log","priorityComparisonFn","transitionSelector","String","arguments","_externalEventQueue","_internalEventQueue","params","snapshot","_configuration","_historyValue","_isInFinalState","EVENTS","on","_log","emit","cancel","_this2","parentSession","invokeid","_exitInterpreter","_this3","_cancelAllDelayedSends","statesToExit","_getFullConfiguration","sort","stateExited","onExit","exitIdx","exitLen","block","blockIdx","blockLen","actionRef","_handleError","cancelInvoke","send","data","donedata","start","_initStart","_performBigStep","getConfiguration","startAsync","cb","genAsync","_this4","nop","getFullConfiguration","stateName","isFinal","currentEvent","keepGoing","allStatesExited","allStatesEntered","_startBigStep2","_startBigStep","_startBigStep3","_selectTransitionsAnd","_selectTransitionsAndPerformSmallStep","_selectTransitionsAnd2","_finishBigStep","selectedTransitions","_selectTransitions","ev","shift","statesExited","statesEntered","_performSmallStep2","_performSmallStep","_performSmallStep3","_this5","autoforward","action","_evaluateAction","_this6","statesToInvoke","_timeouts","timeoutOptions","sendOptions","delay","clearTimeout","timeoutHandle","_timeoutMap","_performBigStepAsync","_startBigStep4","_startBigStep5","nextStep","_selectTransitionsAnd3","_selectTransitionsAnd4","selectedTransitionsWithTargets","_exitStates","_executeTransitions","_enterStates","basicStatesExited","_getStatesExited2","_getStatesExited","_getStatesExited3","isDeep","s0","transitionList","txIdx","txLen","desc","configList","cfgIdx","cfgLen","ancIdx","ancLen","sortedStatesExited","sortedTransitions","stxIdx","targetIds","_this7","statesForDefaultEntry","defaultHistoryContent","_computeEntrySet","enterIdx","enterLen","stateEntered","onEntry","entryIdx","entryLen","_actionRef","_transition","_actionRef2","grandparent","isInFinalState","_getEffectiveTargetStates","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","statesToEnter","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_iterator5","_step5","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_iterator6","_step6","_addDescendantStatesToEnter","ancestor","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_iterator7","_step7","_addAncestorStatesToEnter","_computeExitSet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_iterator8","_step8","_iteratorNormalCompletion9","_didIteratorError9","_iteratorError9","_iterator9","_step9","_this8","_iteratorNormalCompletion10","_didIteratorError10","_iteratorError10","_loop","_step10","_iterator10","_iteratorNormalCompletion11","_didIteratorError11","_iteratorError11","_iterator11","_step11","_this9","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_iterator12","_step12","_iteratorNormalCompletion13","_didIteratorError13","_iteratorError13","_iterator13","_step13","_s2","_iteratorNormalCompletion14","_didIteratorError14","_iteratorError14","_iterator14","_step14","_s3","_iteratorNormalCompletion15","_didIteratorError15","_iteratorError15","_iterator15","_step15","_s4","_iteratorNormalCompletion16","_didIteratorError16","_iteratorError16","_iterator16","_step16","_s5","_iteratorNormalCompletion18","_didIteratorError18","_iteratorError18","_iterator18","_step18","targetState","_iteratorNormalCompletion17","_didIteratorError17","_iteratorError17","_iterator17","_step17","_s6","_targets","_iteratorNormalCompletion19","_didIteratorError19","_iteratorError19","_iterator19","_step19","_targetState","_iteratorNormalCompletion20","_didIteratorError20","_iteratorError20","_loop2","_step20","_iterator20","_this10","match","tagname","line","column","reason","message","args","arg","inspect","registerListener","listener","unregisterListener","off","getAllTransitionEvents","getEvents","stateIdx","stateLen","getSnapshot","_serializeHistory","gen","evtObjOrName","optionalData","config","sessionIdCounter","_interpreter","validateUriRegex","invokeSendTargetRegex","scxmlSendTargetRegex","raise","_installDefaultPropsOnEvent","parseXmlStringAsDOM","xmlString","xmlParser","invokeObj","_this11","Promise","resolve","reject","invokers","session","_this12","sessionPromise","then","isInternal","origin","origintype","options","sendType","validateSend","sendAction","targetIsValidUri","test","sendid","defaultSendAction","_this13","setTimeout","doSend","targetSessionId","invokeId","_doSend","sendAsync","publish","sendFn","customSend","customCancel","_listeners","_on","once","_once","__once","_off","splice","_emit","__emit","base","Statechart","_base$BaseInterpreter","enabledTransitions","atomicStates","loop","priorityEnabledTransitions","_removeConflictingTransition","filteredTransitions","t1Preempted","transitionsToRemove","t1ExitSet","t2ExitSet","hasIntersection","_ret","t3","httpWwwW3OrgTRScxml","invokingSession","method","constructorFunction","fnModel","inherits","ctor","superCtor","super_","TempCtor","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","nextTick","Item","array","title","browser","argv","version","versions","noop","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","clearImmediate","Function","immediateIds","nextImmediateId","Timeout","setInterval","clearInterval","close","clearFn","_id","_clearFn","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","onTimeout","_onTimeout","fn","onNextTick","isBuffer","copy","fill","readUInt8","formatRegExp","format","isString","objects","str","Number","_","isNull","isObject","deprecate","msg","isUndefined","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","trace","error","debugs","debugEnviron","debuglog","NODE_DEBUG","toUpperCase","RegExp","pid","ctx","seen","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","Date","braces","toUTCString","output","formatArray","formatProperty","pop","reduceToSingleString","simple","isNumber","hasOwnProperty","getOwnPropertyDescriptor","substr","numLinesEst","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth"],"mappings":"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","file":"core.js","sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.core = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n'use strict';\n\n/* begin ArraySet */\n\n/** @constructor */\nfunction ArraySet(l) {\n l = l || [];\n this.o = new Set(l);\n}\n\nArraySet.prototype = {\n\n add: function add(x) {\n this.o.add(x);\n },\n\n remove: function remove(x) {\n return this.o.delete(x);\n },\n\n union: function union(l) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = l.o[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var v = _step.value;\n\n this.o.add(v);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return this;\n },\n\n difference: function difference(l) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = l.o[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var v = _step2.value;\n\n this.o.delete(v);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return this;\n },\n\n contains: function contains(x) {\n return this.o.has(x);\n },\n\n iter: function iter() {\n return Array.from(this.o);\n },\n\n isEmpty: function isEmpty() {\n return !this.o.size;\n },\n\n size: function size() {\n return this.o.size;\n },\n\n equals: function equals(s2) {\n if (this.o.size !== s2.size()) {\n return false;\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.o[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var v = _step3.value;\n\n if (!s2.contains(v)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return true;\n },\n\n toString: function toString() {\n return this.o.size === 0 ? '<empty>' : Array.from(this.o).join(',\\n');\n }\n};\n\nmodule.exports = ArraySet;\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nvar STATE_TYPES = {\n BASIC: 0,\n COMPOSITE: 1,\n PARALLEL: 2,\n HISTORY: 3,\n INITIAL: 4,\n FINAL: 5\n};\n\nvar SCXML_IOPROCESSOR_TYPE = 'http://www.w3.org/TR/scxml/#SCXMLEventProcessor';\nvar HTTP_IOPROCESSOR_TYPE = 'http://www.w3.org/TR/scxml/#BasicHTTPEventProcessor';\nvar RX_TRAILING_WILDCARD = /\\.\\*$/;\n\nmodule.exports = {\n STATE_TYPES: STATE_TYPES,\n SCXML_IOPROCESSOR_TYPE: SCXML_IOPROCESSOR_TYPE,\n HTTP_IOPROCESSOR_TYPE: HTTP_IOPROCESSOR_TYPE,\n RX_TRAILING_WILDCARD: RX_TRAILING_WILDCARD\n};\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar constants = require('./constants'),\n STATE_TYPES = constants.STATE_TYPES,\n RX_TRAILING_WILDCARD = constants.RX_TRAILING_WILDCARD;\n\nvar printTrace = false;\n\nmodule.exports = {\n extend: extend,\n transitionWithTargets: transitionWithTargets,\n transitionComparator: transitionComparator,\n initializeModel: initializeModel,\n isEventPrefixMatch: isEventPrefixMatch,\n isTransitionMatch: isTransitionMatch,\n scxmlPrefixTransitionSelector: scxmlPrefixTransitionSelector,\n eventlessTransitionSelector: eventlessTransitionSelector,\n getTransitionWithHigherSourceChildPriority: getTransitionWithHigherSourceChildPriority,\n sortInEntryOrder: sortInEntryOrder,\n getStateWithHigherSourceChildPriority: getStateWithHigherSourceChildPriority,\n initializeModelGeneratorFn: initializeModelGeneratorFn,\n deserializeSerializedConfiguration: deserializeSerializedConfiguration,\n deserializeHistory: deserializeHistory\n};\n\nfunction extend(to, from) {\n Object.keys(from).forEach(function (k) {\n to[k] = from[k];\n });\n return to;\n};\n\nfunction transitionWithTargets(t) {\n return t.targets;\n}\n\nfunction transitionComparator(t1, t2) {\n return t1.documentOrder - t2.documentOrder;\n}\n\nfunction initializeModel(rootState, opts) {\n var transitions = [],\n idToStateMap = new Map(),\n documentOrder = 0;\n\n //TODO: need to add fake ids to anyone that doesn't have them\n //FIXME: make this safer - break into multiple passes\n var idCount = {};\n\n function generateId(type) {\n if (idCount[type] === undefined) idCount[type] = 0;\n\n do {\n var count = idCount[type]++;\n var id = '$generated-' + type + '-' + count;\n } while (idToStateMap.has(id));\n\n return id;\n }\n\n function wrapInFakeRootState(state) {\n return {\n $deserializeDatamodel: state.$deserializeDatamodel || function () {},\n $serializeDatamodel: state.$serializeDatamodel || function () {\n return null;\n },\n $idToStateMap: idToStateMap, //keep this for handy deserialization of serialized configuration\n docUrl: state.docUrl,\n name: state.name,\n states: [{\n $type: 'initial',\n transitions: [{\n target: state\n }]\n }, state],\n modelFnName: state.modelFnName\n };\n }\n\n var statesWithInitialAttributes = [];\n\n /**\n @this {SCTransition}\n */\n function transitionToString(sourceState) {\n return sourceState + ' -- ' + (this.events ? '(' + this.events.join(',') + ')' : null) + (this.cond ? '[' + this.cond.name + ']' : '') + ' --> ' + (this.targets ? this.targets.join(',') : null);\n }\n\n /**\n @this {SCState}\n */\n function stateToString() {\n return this.id;\n }\n\n function populateStateIdMap(state) {\n //populate state id map\n if (state.id) {\n idToStateMap.set(state.id, state);\n }\n\n if (state.states) {\n for (var j = 0, len = state.states.length; j < len; j++) {\n populateStateIdMap(state.states[j]);\n }\n }\n }\n\n function traverse(ancestors, state) {\n\n if (printTrace) state.toString = stateToString;\n\n //add to global transition and state id caches\n if (state.transitions) transitions.push.apply(transitions, state.transitions);\n\n //create a default type, just to normalize things\n //this way we can check for unsupported types below\n state.$type = state.$type || 'state';\n\n //add ancestors and depth properties\n state.ancestors = ancestors;\n state.depth = ancestors.length;\n state.parent = ancestors[0];\n state.documentOrder = documentOrder++;\n\n //add some information to transitions\n state.transitions = state.transitions || [];\n for (var j = 0, len = state.transitions.length; j < len; j++) {\n var transition = state.transitions[j];\n transition.documentOrder = documentOrder++;\n transition.source = state;\n if (printTrace) transition.toString = transitionToString.bind(transition, state);\n };\n\n //recursive step\n if (state.states) {\n var ancs = [state].concat(ancestors);\n for (var j = 0, len = state.states.length; j < len; j++) {\n traverse(ancs, state.states[j]);\n }\n }\n\n //setup fast state type\n switch (state.$type) {\n case 'parallel':\n state.typeEnum = STATE_TYPES.PARALLEL;\n state.isAtomic = false;\n break;\n case 'initial':\n state.typeEnum = STATE_TYPES.INITIAL;\n state.isAtomic = true;\n break;\n case 'history':\n state.typeEnum = STATE_TYPES.HISTORY;\n state.isAtomic = true;\n break;\n case 'final':\n state.typeEnum = STATE_TYPES.FINAL;\n state.isAtomic = true;\n break;\n case 'state':\n case 'scxml':\n if (state.states && state.states.length) {\n state.typeEnum = STATE_TYPES.COMPOSITE;\n state.isAtomic = false;\n } else {\n state.typeEnum = STATE_TYPES.BASIC;\n state.isAtomic = true;\n }\n break;\n default:\n throw new Error('Unknown state type: ' + state.$type);\n }\n\n //descendants property on states will now be populated. add descendants to this state\n if (state.states) {\n state.descendants = state.states.concat(state.states.map(function (s) {\n return s.descendants;\n }).reduce(function (a, b) {\n return a.concat(b);\n }, []));\n } else {\n state.descendants = [];\n }\n\n var initialChildren;\n if (state.typeEnum === STATE_TYPES.COMPOSITE) {\n //set up initial state\n\n if (Array.isArray(state.initial) || typeof state.initial === 'string') {\n statesWithInitialAttributes.push(state);\n } else {\n //take the first child that has initial type, or first child\n initialChildren = state.states.filter(function (child) {\n return child.$type === 'initial';\n });\n\n state.initialRef = [initialChildren.length ? initialChildren[0] : state.states[0]];\n checkInitialRef(state);\n }\n }\n\n //hook up history\n if (state.typeEnum === STATE_TYPES.COMPOSITE || state.typeEnum === STATE_TYPES.PARALLEL) {\n\n var historyChildren = state.states.filter(function (s) {\n return s.$type === 'history';\n });\n\n state.historyRef = historyChildren;\n }\n\n //now it's safe to fill in fake state ids\n if (!state.id) {\n state.id = generateId(state.$type);\n idToStateMap.set(state.id, state);\n }\n\n //normalize onEntry/onExit, which can be single fn or array, or array of arrays (blocks)\n ['onEntry', 'onExit'].forEach(function (prop) {\n if (state[prop]) {\n if (!Array.isArray(state[prop])) {\n state[prop] = [state[prop]];\n }\n if (!state[prop].every(function (handler) {\n return Array.isArray(handler);\n })) {\n state[prop] = [state[prop]];\n }\n }\n });\n\n if (state.invokes && !Array.isArray(state.invokes)) {\n state.invokes = [state.invokes];\n state.invokes.forEach(function (invoke) {\n if (invoke.finalize && !Array.isArray(invoke.finalize)) {\n invoke.finalize = [invoke.finalize];\n }\n });\n }\n }\n\n //TODO: convert events to regular expressions in advance\n\n function checkInitialRef(state) {\n if (!state.initialRef) throw new Error('Unable to locate initial state for composite state: ' + state.id);\n }\n function connectIntialAttributes() {\n for (var j = 0, len = statesWithInitialAttributes.length; j < len; j++) {\n var s = statesWithInitialAttributes[j];\n\n var initialStates = Array.isArray(s.initial) ? s.initial : [s.initial];\n s.initialRef = initialStates.map(function (initialState) {\n return idToStateMap.get(initialState);\n });\n checkInitialRef(s);\n }\n }\n\n var RX_WHITESPACE = /\\s+/;\n\n function connectTransitionGraph() {\n //normalize as with onEntry/onExit\n for (var i = 0, len = transitions.length; i < len; i++) {\n var t = transitions[i];\n if (t.onTransition && !Array.isArray(t.onTransition)) {\n t.onTransition = [t.onTransition];\n }\n\n //normalize \"event\" attribute into \"events\" attribute\n if (typeof t.event === 'string') {\n t.events = t.event.trim().split(RX_WHITESPACE);\n }\n delete t.event;\n\n if (t.targets || typeof t.target === 'undefined') {\n //targets have already been set up\n continue;\n }\n\n if (typeof t.target === 'string') {\n var target = idToStateMap.get(t.target);\n if (!target) throw new Error('Unable to find target state with id ' + t.target);\n t.target = target;\n t.targets = [t.target];\n } else if (Array.isArray(t.target)) {\n t.targets = t.target.map(function (target) {\n if (typeof target === 'string') {\n target = idToStateMap.get(target);\n if (!target) throw new Error('Unable to find target state with id ' + t.target);\n return target;\n } else {\n return target;\n }\n });\n } else if (_typeof(t.target) === 'object') {\n t.targets = [t.target];\n } else {\n throw new Error('Transition target has unknown type: ' + t.target);\n }\n }\n\n //hook up LCA - optimization\n for (var i = 0, len = transitions.length; i < len; i++) {\n var t = transitions[i];\n if (t.targets) t.lcca = getLCCA(t.source, t.targets[0]); //FIXME: we technically do not need to hang onto the lcca. only the scope is used by the algorithm\n\n t.scope = getScope(t);\n }\n }\n\n function getScope(transition) {\n //Transition scope is normally the least common compound ancestor (lcca).\n //Internal transitions have a scope equal to the source state.\n var transitionIsReallyInternal = transition.type === 'internal' && transition.source.typeEnum === STATE_TYPES.COMPOSITE && //is transition source a composite state\n transition.source.parent && //root state won't have parent\n transition.targets && //does it target its descendants\n transition.targets.every(function (target) {\n return transition.source.descendants.indexOf(target) > -1;\n });\n\n if (!transition.targets) {\n return null;\n } else if (transitionIsReallyInternal) {\n return transition.source;\n } else {\n return transition.lcca;\n }\n }\n\n function getLCCA(s1, s2) {\n var commonAncestors = [];\n for (var j = 0, len = s1.ancestors.length; j < len; j++) {\n var anc = s1.ancestors[j];\n if ((opts && opts.legacySemantics ? anc.typeEnum === STATE_TYPES.COMPOSITE : anc.typeEnum === STATE_TYPES.COMPOSITE || anc.typeEnum === STATE_TYPES.PARALLEL) && anc.descendants.indexOf(s2) > -1) {\n\n commonAncestors.push(anc);\n }\n };\n if (!commonAncestors.length) throw new Error(\"Could not find LCA for states.\");\n return commonAncestors[0];\n }\n\n //main execution starts here\n //FIXME: only wrap in root state if it's not a compound state\n populateStateIdMap(rootState);\n var fakeRootState = wrapInFakeRootState(rootState); //I wish we had pointer semantics and could make this a C-style \"out argument\". Instead we return him\n traverse([], fakeRootState);\n connectTransitionGraph();\n connectIntialAttributes();\n\n return fakeRootState;\n}\n\nfunction isEventPrefixMatch(prefix, fullName) {\n prefix = prefix.replace(RX_TRAILING_WILDCARD, '');\n\n if (prefix === fullName) {\n return true;\n }\n\n if (prefix.length > fullName.length) {\n return false;\n }\n\n if (fullName.charAt(prefix.length) !== '.') {\n return false;\n }\n\n return fullName.indexOf(prefix) === 0;\n}\n\nfunction isTransitionMatch(t, eventName) {\n return t.events.some(function (tEvent) {\n return tEvent === '*' || isEventPrefixMatch(tEvent, eventName);\n });\n}\n\nfunction scxmlPrefixTransitionSelector(t, event, evaluator, selectEventlessTransitions) {\n return (selectEventlessTransitions ? !t.events : t.events && event && event.name && isTransitionMatch(t, event.name)) && (!t.cond || evaluator(t.cond));\n}\n\nfunction eventlessTransitionSelector(state) {\n return state.transitions.filter(function (transition) {\n return !transition.events || transition.events && transition.events.length === 0;\n });\n}\n\n//priority comparison functions\nfunction getTransitionWithHigherSourceChildPriority(_args) {\n var t1 = _args[0],\n t2 = _args[1];\n var r = getStateWithHigherSourceChildPriority(t1.source, t2.source);\n //compare transitions based first on depth, then based on document order\n if (t1.source.depth < t2.source.depth) {\n return t2;\n } else if (t2.source.depth < t1.source.depth) {\n return t1;\n } else {\n if (t1.documentOrder < t2.documentOrder) {\n return t1;\n } else {\n return t2;\n }\n }\n}\n\nfunction sortInEntryOrder(s1, s2) {\n return getStateWithHigherSourceChildPriority(s1, s2) * -1;\n}\n\nfunction getStateWithHigherSourceChildPriority(s1, s2) {\n //compare states based first on depth, then based on document order\n if (s1.depth > s2.depth) {\n return -1;\n } else if (s1.depth < s2.depth) {\n return 1;\n } else {\n //Equality\n if (s1.documentOrder < s2.documentOrder) {\n return 1;\n } else if (s1.documentOrder > s2.documentOrder) {\n return -1;\n } else {\n return 0;\n }\n }\n}\n\nfunction initializeModelGeneratorFn(modelFn, opts, interpreter) {\n var model = modelFn.call(interpreter, opts._x, opts._x._sessionid, opts._x._ioprocessors, interpreter.isIn.bind(interpreter));\n model.modelFnName = modelFn.name;\n return model;\n}\n\nfunction deserializeSerializedConfiguration(serializedConfiguration, idToStateMap) {\n return serializedConfiguration.map(function (id) {\n var state = idToStateMap.get(id);\n if (!state) throw new Error('Error loading serialized configuration. Unable to locate state with id ' + id);\n return state;\n });\n}\n\nfunction deserializeHistory(serializedHistory, idToStateMap) {\n var o = {};\n Object.keys(serializedHistory).forEach(function (sid) {\n o[sid] = serializedHistory[sid].map(function (id) {\n var state = idToStateMap.get(id);\n if (!state) throw new Error('Error loading serialized history. Unable to locate state with id ' + id);\n return state;\n });\n });\n return o;\n}\n\n},{\"./constants\":2}],4:[function(require,module,exports){\n'use strict';\n\nvar constants = require('./constants');\n\n//model accessor functions\nvar query = {\n isDescendant: function isDescendant(s1, s2) {\n //Returns 'true' if state1 is a descendant of state2 (a child, or a child of a child, or a child of a child of a child, etc.) Otherwise returns 'false'.\n return s2.descendants.indexOf(s1) > -1;\n },\n getAncestors: function getAncestors(s, root) {\n var ancestors, index, state;\n index = s.ancestors.indexOf(root);\n if (index > -1) {\n return s.ancestors.slice(0, index);\n } else {\n return s.ancestors;\n }\n },\n isOrthogonalTo: function isOrthogonalTo(s1, s2) {\n //Two control states are orthogonal if they are not ancestrally\n //related, and their smallest, mutual parent is a Concurrent-state.\n return !this.isAncestrallyRelatedTo(s1, s2) && this.getLCA(s1, s2).typeEnum === constants.STATE_TYPES.PARALLEL;\n },\n isAncestrallyRelatedTo: function isAncestrallyRelatedTo(s1, s2) {\n //Two control states are ancestrally related if one is child/grandchild of another.\n return this.getAncestorsOrSelf(s2).indexOf(s1) > -1 || this.getAncestorsOrSelf(s1).indexOf(s2) > -1;\n },\n getAncestorsOrSelf: function getAncestorsOrSelf(s, root) {\n return [s].concat(query.getAncestors(s, root));\n },\n getDescendantsOrSelf: function getDescendantsOrSelf(s) {\n return [s].concat(s.descendants);\n },\n getLCA: function getLCA(s1, s2) {\n var commonAncestors = this.getAncestors(s1).filter(function (a) {\n return a.descendants.indexOf(s2) > -1;\n }, this);\n return commonAncestors[0];\n }\n};\n\nmodule.exports = query;\n\n},{\"./constants\":2}],5:[function(require,module,exports){\n(function (process,setImmediate){\n// Copyright 2012-2012 Jacob Beard, INFICON, and other SCION contributors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * SCION-CORE global object\n * @namespace scion\n */\n\n/**\n * An Array of strings representing the ids all of the basic states the\n * interpreter is in after a big-step completes.\n * @typedef {Array<string>} Configuration\n */\n\n/**\n * A set of basic and composite state ids.\n * @typedef {Array<string>} FullConfiguration\n */\n\n/**\n * A set of basic and composite state ids.\n * @typedef {Array<string>} FullConfiguration\n */\n\n\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EventEmitter = require('tiny-events').EventEmitter,\n util = require('util'),\n ArraySet = require('./ArraySet'),\n constants = require('./constants'),\n helpers = require('./helpers'),\n query = require('./query'),\n extend = helpers.extend,\n transitionWithTargets = helpers.transitionWithTargets,\n transitionComparator = helpers.transitionComparator,\n initializeModel = helpers.initializeModel,\n isEventPrefixMatch = helpers.isEventPrefixMatch,\n isTransitionMatch = helpers.isTransitionMatch,\n scxmlPrefixTransitionSelector = helpers.scxmlPrefixTransitionSelector,\n eventlessTransitionSelector = helpers.eventlessTransitionSelector,\n getTransitionWithHigherSourceChildPriority = helpers.getTransitionWithHigherSourceChildPriority,\n sortInEntryOrder = helpers.sortInEntryOrder,\n getStateWithHigherSourceChildPriority = helpers.getStateWithHigherSourceChildPriority,\n initializeModelGeneratorFn = helpers.initializeModelGeneratorFn,\n deserializeSerializedConfiguration = helpers.deserializeSerializedConfiguration,\n deserializeHistory = helpers.deserializeHistory,\n BASIC = constants.STATE_TYPES.BASIC,\n COMPOSITE = constants.STATE_TYPES.COMPOSITE,\n PARALLEL = constants.STATE_TYPES.PARALLEL,\n HISTORY = constants.STATE_TYPES.HISTORY,\n INITIAL = constants.STATE_TYPES.INITIAL,\n FINAL = constants.STATE_TYPES.FINAL,\n SCXML_IOPROCESSOR_TYPE = constants.SCXML_IOPROCESSOR_TYPE;\n\nvar printTrace = typeof process !== 'undefined' && !!process.env.DEBUG;\n\n/**\n * @interface EventEmitter\n */\n\n/**\n* @event scion.BaseInterpreter#onError\n* @property {string} tagname The name of the element that produced the error. \n* @property {number} line The line in the source file in which the error occurred.\n* @property {number} column The column in the source file in which the error occurred.\n* @property {string} reason An informative error message. The text is platform-specific and subject to change.\n*/\n\n/**\n * @function\n * @name EventEmitter.prototype#on\n * @param {string} type\n * @param {callback} listener\n */\n\n/**\n * @function\n * @name EventEmitter.prototype#once\n * @param {string} type\n * @param {callback} listener\n */\n\n/**\n * @function\n * @name EventEmitter.prototype#off\n * @param {string} type\n * @param {callback} listener\n */\n\n/**\n * @function\n * @name EventEmitter.prototype#emit\n * @param {string} type\n * @param {any} args\n */\n/** \n * @description The SCXML constructor creates an interpreter instance from a model object.\n * @abstract\n * @class BaseInterpreter\n * @memberof scion\n * @extends EventEmitter\n * @param {SCJSON | scxml.ModelFactory} modelOrModelFactory Either an SCJSON root state; or an scxml.ModelFactory, which is a function which returns an SCJSON object. \n * @param opts\n * @param {string} [opts.sessionid] Used to populate SCXML _sessionid.\n * @param {function} [opts.generateSessionid] Factory used to generate sessionid if sessionid keyword is not specified\n * @param {Map<string, BaseInterpreter>} [opts.sessionRegistry] Map used to map sessionid strings to Statechart instances.\n * @param [opts.Set] Class to use as an ArraySet. Defaults to ES6 Set.\n * @param {object} [opts.params] Used to pass params from invoke. Sets the datamodel when interpreter is instantiated.\n * @param {Snapshot} [opts.snapshot] State machine snapshot. Used to restore a serialized state machine.\n * @param {Statechart} [opts.parentSession] Used to pass parent session during invoke.\n * @param {string }[opts.invokeid] Support for id of invoke element at runtime.\n * @param {boolean} [opts.legacySemantics]\n * @param [opts.console]\n * @param [opts.transitionSelector]\n * @param [opts.customCancel]\n * @param [opts.customSend]\n * @param [opts.sendAsync]\n * @param [opts.doSend]\n * @param [opts.invokers]\n * @param [opts.xmlParser]\n * @param [opts.interpreterScriptingContext]\n * @param [opts.invokerExecutionContext]\n */\n\nvar BaseInterpreter = function (_EventEmitter) {\n _inherits(BaseInterpreter, _EventEmitter);\n\n function BaseInterpreter(modelOrModelFactory, opts) {\n _classCallCheck(this, BaseInterpreter);\n\n var _this = _possibleConstructorReturn(this, (BaseInterpreter.__proto__ || Object.getPrototypeOf(BaseInterpreter)).call(this));\n\n _this.opts = opts;\n\n _this.opts.InterpreterScriptingContext = _this.opts.InterpreterScriptingContext || InterpreterScriptingContext;\n\n _this._isStepping = false;\n\n _this._scriptingContext = _this.opts.interpreterScriptingContext || (_this.opts.InterpreterScriptingContext ? new _this.opts.InterpreterScriptingContext(_this) : {});\n _this._scriptingContext._invokeMap = _this.opts._invokeMap || _this._scriptingContext._invokeMap;\n\n _this.opts.generateSessionid = _this.opts.generateSessionid || BaseInterpreter.generateSessionid;\n _this.opts.sessionid = _this.opts.sessionid || _this.opts.generateSessionid();\n _this.opts.sessionRegistry = _this.opts.sessionRegistry || BaseInterpreter.sessionRegistry; //TODO: define a better interface. For now, assume a Map<sessionid, session>\n _this.opts.invokerExecutionContext = opts.invokerExecutionContext || modelOrModelFactory._executionContext;\n\n var _ioprocessors = {};\n _ioprocessors[SCXML_IOPROCESSOR_TYPE] = {\n location: '#_scxml_' + _this.opts.sessionid\n };\n _ioprocessors.scxml = _ioprocessors[SCXML_IOPROCESSOR_TYPE]; //alias\n\n //SCXML system variables:\n _this.opts._x = {\n _sessionid: _this.opts.sessionid,\n _ioprocessors: _ioprocessors\n };\n\n var model;\n if (typeof modelOrModelFactory === 'function') {\n model = initializeModelGeneratorFn(modelOrModelFactory, _this.opts, _this);\n } else if ((typeof modelOrModelFactory === 'undefined' ? 'undefined' : _typeof(modelOrModelFactory)) === 'object') {\n model = JSON.parse(JSON.stringify(modelOrModelFactory)); //assume object\n } else {\n throw new Error('Unexpected model type. Expected model factory function, or scjson object.');\n }\n\n _this._model = initializeModel(model, _this.opts);\n\n _this.opts.console = _this.opts.console || (typeof console === 'undefined' ? { log: function log() {} } : console); //rely on global console if this console is undefined\n _this.opts.Set = _this.opts.Set || ArraySet;\n _this.opts.priorityComparisonFn = _this.opts.priorityComparisonFn || getTransitionWithHigherSourceChildPriority;\n _this.opts.transitionSelector = _this.opts.transitionSelector || scxmlPrefixTransitionSelector;\n\n _this.opts.sessionRegistry.set(String(_this.opts.sessionid), _this);\n\n _this._scriptingContext.log = _this._scriptingContext.log || function log() {\n if (this.opts.console.log.apply) {\n this.opts.console.log.apply(this.opts.console, arguments);\n } else {\n //console.log on older IE does not support Function.apply, so just pass him the first argument. Best we can do for now.\n this.opts.console.log(Array.prototype.slice.apply(arguments).join(','));\n }\n }.bind(_this); //set up default scripting context log function\n\n _this._externalEventQueue = [];\n _this._internalEventQueue = [];\n\n if (_this.opts.params) {\n _this._model.$deserializeDatamodel(_this.opts.params); //load up the datamodel\n }\n\n //check if we're loading from a previous snapshot\n if (_this.opts.snapshot) {\n _this._configuration = new _this.opts.Set(deserializeSerializedConfiguration(_this.opts.snapshot[0], _this._model.$idToStateMap));\n _this._historyValue = deserializeHistory(_this.opts.snapshot[1], _this._model.$idToStateMap);\n _this._isInFinalState = _this.opts.snapshot[2];\n _this._model.$deserializeDatamodel(_this.opts.snapshot[3]); //load up the datamodel\n _this._internalEventQueue = _this.opts.snapshot[4];\n } else {\n _this._configuration = new _this.opts.Set();\n _this._historyValue = {};\n _this._isInFinalState = false;\n }\n\n //add debug logging\n BaseInterpreter.EVENTS.forEach(function (event) {\n this.on(event, this._log.bind(this, event));\n }, _this);\n\n module.exports.emit('new', _this);\n return _this;\n }\n\n /** \n * Cancels the session. This clears all timers; puts the interpreter in a\n * final state; and runs all exit actions on current states.\n * @memberof BaseInterpreter.prototype\n */\n\n\n _createClass(BaseInterpreter, [{\n key: 'cancel',\n value: function cancel() {\n var _this2 = this;\n\n setImmediate(function () {\n return delete _this2.opts.parentSession;\n }); // run this asynchronously, as we still need a reference to the parent session to send the final <done> event\n if (this._isInFinalState) return;\n this._isInFinalState = true;\n this._log('session cancelled ' + this.opts.invokeid);\n this._exitInterpreter(null);\n }\n }, {\n key: '_exitInterpreter',\n value: function _exitInterpreter(event) {\n var _this3 = this;\n\n //TODO: cancel invoked sessions\n //cancel all delayed sends when we enter into a final state.\n this._cancelAllDelayedSends();\n\n var statesToExit = this._getFullConfiguration().sort(getStateWithHigherSourceChildPriority);\n\n for (var j = 0, len = statesToExit.length; j < len; j++) {\n var stateExited = statesToExit[j];\n\n if (stateExited.onExit !== undefined) {\n for (var exitIdx = 0, exitLen = stateExited.onExit.length; exitIdx < exitLen; exitIdx++) {\n var block = stateExited.onExit[exitIdx];\n for (var blockIdx = 0, blockLen = block.length; blockIdx < blockLen; blockIdx++) {\n var actionRef = block[blockIdx];\n try {\n actionRef.call(this._scriptingContext, null);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n\n //cancel invoked session\n if (stateExited.invokes) stateExited.invokes.forEach(function (invoke) {\n _this3._scriptingContext.cancelInvoke(invoke.id);\n });\n\n //if he is a top-level <final> state, then return the done event\n if (stateExited.$type === 'final' && stateExited.parent.$type === 'scxml') {\n\n if (this.opts.parentSession) {\n this._scriptingContext.send({\n target: '#_parent',\n name: 'done.invoke.' + this.opts.invokeid,\n data: stateExited.donedata && stateExited.donedata.call(this._scriptingContext, event)\n });\n }\n\n this.opts.sessionRegistry.delete(this.opts.sessionid);\n this.emit('onExitInterpreter', event);\n }\n }\n }\n\n /** \n * Starts the interpreter. Should only be called once, and should be called\n * before BaseInterpreter.prototype#gen is called for the first time. Returns a\n * Configuration.\n * @return {Configuration}\n * @memberof BaseInterpreter.prototype\n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'start',\n value: function start() {\n this._initStart();\n this._performBigStep();\n return this.getConfiguration();\n }\n\n /**\n * This callback is displayed as a global member.\n * @callback genCallback\n * @param {Error} err\n * @param {Configuration} configuration\n */\n\n /**\n * Starts the interpreter asynchronously\n * @param {genCallback} cb Callback invoked with an error or the interpreter's stable configuration\n * @memberof BaseInterpreter.prototype \n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'startAsync',\n value: function startAsync(cb) {\n cb = this._initStart(cb);\n this.genAsync(null, cb);\n }\n }, {\n key: '_initStart',\n value: function _initStart(cb) {\n var _this4 = this;\n\n if (typeof cb !== 'function') {\n cb = nop;\n }\n\n this._log(\"performing initial big step\");\n\n //We effectively need to figure out states to enter here to populate initial config. assuming root is compound state makes this simple.\n //but if we want it to be parallel, then this becomes more complex. so when initializing the model, we add a 'fake' root state, which\n //makes the following operation safe.\n this._model.initialRef.forEach(function (s) {\n return _this4._configuration.add(s);\n });\n\n return cb;\n }\n\n /** \n * Returns state machine {@link Configuration}.\n * @return {Configuration}\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getConfiguration',\n value: function getConfiguration() {\n return this._configuration.iter().map(function (s) {\n return s.id;\n });\n }\n }, {\n key: '_getFullConfiguration',\n value: function _getFullConfiguration() {\n return this._configuration.iter().map(function (s) {\n return [s].concat(query.getAncestors(s));\n }, this).reduce(function (a, b) {\n return a.concat(b);\n }, []). //flatten\n reduce(function (a, b) {\n return a.indexOf(b) > -1 ? a : a.concat(b);\n }, []); //uniq\n }\n\n /** \n * @return {FullConfiguration}\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getFullConfiguration',\n value: function getFullConfiguration() {\n return this._getFullConfiguration().map(function (s) {\n return s.id;\n });\n }\n\n /** \n * @return {boolean}\n * @memberof BaseInterpreter.prototype \n * @param {string} stateName\n */\n\n }, {\n key: 'isIn',\n value: function isIn(stateName) {\n return this.getFullConfiguration().indexOf(stateName) > -1;\n }\n\n /** \n * Is the state machine in a final state?\n * @return {boolean}\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'isFinal',\n value: function isFinal() {\n return this._isInFinalState;\n }\n\n /** @private */\n\n }, {\n key: '_performBigStep',\n value: function _performBigStep(e) {\n var currentEvent = void 0,\n keepGoing = void 0,\n allStatesExited = void 0,\n allStatesEntered = void 0;\n\n var _startBigStep2 = this._startBigStep(e);\n\n var _startBigStep3 = _slicedToArray(_startBigStep2, 4);\n\n allStatesExited = _startBigStep3[0];\n allStatesEntered = _startBigStep3[1];\n keepGoing = _startBigStep3[2];\n currentEvent = _startBigStep3[3];\n\n\n while (keepGoing) {\n var _selectTransitionsAnd = this._selectTransitionsAndPerformSmallStep(currentEvent, allStatesEntered, allStatesExited);\n\n var _selectTransitionsAnd2 = _slicedToArray(_selectTransitionsAnd, 2);\n\n currentEvent = _selectTransitionsAnd2[0];\n keepGoing = _selectTransitionsAnd2[1];\n }\n\n this._finishBigStep(currentEvent, allStatesEntered, allStatesExited);\n }\n }, {\n key: '_selectTransitionsAndPerformSmallStep',\n value: function _selectTransitionsAndPerformSmallStep(currentEvent, allStatesEntered, allStatesExited) {\n //first select with null event\n var selectedTransitions = this._selectTransitions(currentEvent, true);\n if (selectedTransitions.isEmpty()) {\n var ev = this._internalEventQueue.shift();\n if (ev) {\n currentEvent = ev;\n selectedTransitions = this._selectTransitions(currentEvent, false);\n }\n }\n\n if (!selectedTransitions.isEmpty()) {\n this.emit('onSmallStepBegin', currentEvent);\n var statesExited = void 0,\n statesEntered = void 0;\n\n var _performSmallStep2 = this._performSmallStep(currentEvent, selectedTransitions);\n\n var _performSmallStep3 = _slicedToArray(_performSmallStep2, 2);\n\n statesExited = _performSmallStep3[0];\n statesEntered = _performSmallStep3[1];\n\n if (statesExited) statesExited.forEach(function (s) {\n return allStatesExited.add(s);\n });\n if (statesEntered) statesEntered.forEach(function (s) {\n return allStatesEntered.add(s);\n });\n this.emit('onSmallStepEnd', currentEvent);\n }\n var keepGoing = !selectedTransitions.isEmpty() || this._internalEventQueue.length;\n return [currentEvent, keepGoing];\n }\n }, {\n key: '_startBigStep',\n value: function _startBigStep(e) {\n var _this5 = this;\n\n this.emit('onBigStepBegin', e);\n\n //do applyFinalize and autoforward\n this._configuration.iter().forEach(function (state) {\n if (state.invokes) state.invokes.forEach(function (invoke) {\n if (invoke.autoforward) {\n //autoforward\n _this5._scriptingContext.send({\n target: '#_' + invoke.id,\n name: e.name,\n data: e.data\n });\n }\n if (invoke.id === e.invokeid) {\n //applyFinalize\n if (invoke.finalize) invoke.finalize.forEach(function (action) {\n return _this5._evaluateAction(e, action);\n });\n }\n });\n });\n\n if (e) this._internalEventQueue.push(e);\n\n var allStatesExited = new Set(),\n allStatesEntered = new Set();\n var keepGoing = true;\n var currentEvent = e;\n return [allStatesEntered, allStatesExited, keepGoing, currentEvent];\n }\n }, {\n key: '_finishBigStep',\n value: function _finishBigStep(e, allStatesEntered, allStatesExited, cb) {\n var _this6 = this;\n\n var statesToInvoke = Array.from(allStatesEntered).filter(function (s) {\n return s.invokes;\n }).sort(sortInEntryOrder);\n\n // Here we invoke whatever needs to be invoked. The implementation of 'invoke' is platform-specific\n statesToInvoke.forEach(function (s) {\n s.invokes.forEach(function (f) {\n return _this6._evaluateAction(e, f);\n });\n });\n\n // cancel invoke for allStatesExited\n allStatesExited.forEach(function (s) {\n if (s.invokes) s.invokes.forEach(function (invoke) {\n _this6._scriptingContext.cancelInvoke(invoke.id);\n });\n });\n\n // TODO: Invoking may have raised internal error events and we iterate to handle them \n //if not internalQueue.isEmpty():\n // continue\n\n this._isInFinalState = this._configuration.iter().every(function (s) {\n return s.typeEnum === FINAL;\n });\n if (this._isInFinalState) {\n this._exitInterpreter(e);\n }\n this.emit('onBigStepEnd', e);\n if (cb) cb(undefined, this.getConfiguration());\n }\n }, {\n key: '_cancelAllDelayedSends',\n value: function _cancelAllDelayedSends() {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this._scriptingContext._timeouts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var timeoutOptions = _step.value;\n\n if (!timeoutOptions.sendOptions.delay) continue;\n this._log('cancelling delayed send', timeoutOptions);\n clearTimeout(timeoutOptions.timeoutHandle);\n this._scriptingContext._timeouts.delete(timeoutOptions);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Object.keys(this._scriptingContext._timeoutMap).forEach(function (key) {\n delete this._scriptingContext._timeoutMap[key];\n }, this);\n }\n }, {\n key: '_performBigStepAsync',\n value: function _performBigStepAsync(e, cb) {\n var currentEvent = void 0,\n keepGoing = void 0,\n allStatesExited = void 0,\n allStatesEntered = void 0;\n\n var _startBigStep4 = this._startBigStep(e);\n\n var _startBigStep5 = _slicedToArray(_startBigStep4, 4);\n\n allStatesExited = _startBigStep5[0];\n allStatesEntered = _startBigStep5[1];\n keepGoing = _startBigStep5[2];\n currentEvent = _startBigStep5[3];\n\n\n function nextStep(emit) {\n this.emit(emit);\n\n var _selectTransitionsAnd3 = this._selectTransitionsAndPerformSmallStep(currentEvent, allStatesEntered, allStatesExited);\n\n var _selectTransitionsAnd4 = _slicedToArray(_selectTransitionsAnd3, 2);\n\n currentEvent = _selectTransitionsAnd4[0];\n keepGoing = _selectTransitionsAnd4[1];\n\n\n if (keepGoing) {\n this.emit('onBigStepSuspend');\n setImmediate(nextStep.bind(this, 'onBigStepResume'));\n } else {\n this._finishBigStep(currentEvent, allStatesEntered, allStatesExited, cb);\n }\n }\n nextStep.call(this, 'onBigStepBegin');\n }\n\n /** @private */\n\n }, {\n key: '_performSmallStep',\n value: function _performSmallStep(currentEvent, selectedTransitions) {\n\n this._log(\"selecting transitions with currentEvent\", currentEvent);\n\n this._log(\"selected transitions\", selectedTransitions);\n\n var statesExited = void 0,\n statesEntered = void 0;\n\n if (!selectedTransitions.isEmpty()) {\n\n //we only want to enter and exit states from transitions with targets\n //filter out targetless transitions here - we will only use these to execute transition actions\n var selectedTransitionsWithTargets = new this.opts.Set(selectedTransitions.iter().filter(transitionWithTargets));\n\n statesExited = this._exitStates(currentEvent, selectedTransitionsWithTargets);\n this._executeTransitions(currentEvent, selectedTransitions);\n statesEntered = this._enterStates(currentEvent, selectedTransitionsWithTargets);\n\n this._log(\"new configuration \", this._configuration);\n }\n\n return [statesExited, statesEntered];\n }\n }, {\n key: '_exitStates',\n value: function _exitStates(currentEvent, selectedTransitionsWithTargets) {\n var basicStatesExited = void 0,\n statesExited = void 0;\n\n var _getStatesExited2 = this._getStatesExited(selectedTransitionsWithTargets);\n\n var _getStatesExited3 = _slicedToArray(_getStatesExited2, 2);\n\n basicStatesExited = _getStatesExited3[0];\n statesExited = _getStatesExited3[1];\n\n\n this._log('exiting states');\n for (var j = 0, len = statesExited.length; j < len; j++) {\n var stateExited = statesExited[j];\n\n if (stateExited.isAtomic) this._configuration.remove(stateExited);\n\n this._log(\"exiting \", stateExited.id);\n\n //invoke listeners\n this.emit('onExit', stateExited.id);\n\n if (stateExited.onExit !== undefined) {\n for (var exitIdx = 0, exitLen = stateExited.onExit.length; exitIdx < exitLen; exitIdx++) {\n var block = stateExited.onExit[exitIdx];\n for (var blockIdx = 0, blockLen = block.length; blockIdx < blockLen; blockIdx++) {\n var actionRef = block[blockIdx];\n try {\n actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n\n var f;\n if (stateExited.historyRef) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = stateExited.historyRef[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var historyRef = _step2.value;\n\n if (historyRef.isDeep) {\n f = function f(s0) {\n return s0.typeEnum === BASIC && stateExited.descendants.indexOf(s0) > -1;\n };\n } else {\n f = function f(s0) {\n return s0.parent === stateExited;\n };\n }\n //update history\n this._historyValue[historyRef.id] = statesExited.filter(f);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n\n return statesExited;\n }\n\n /** @private */\n\n }, {\n key: '_getStatesExited',\n value: function _getStatesExited(transitions) {\n var statesExited = new this.opts.Set();\n var basicStatesExited = new this.opts.Set();\n\n //States exited are defined to be active states that are\n //descendants of the scope of each priority-enabled transition.\n //Here, we iterate through the transitions, and collect states\n //that match this condition. \n var transitionList = transitions.iter();\n for (var txIdx = 0, txLen = transitionList.length; txIdx < txLen; txIdx++) {\n var transition = transitionList[txIdx];\n var scope = transition.scope,\n desc = scope.descendants;\n\n //For each state in the configuration\n //is that state a descendant of the transition scope?\n //Store ancestors of that state up to but not including the scope.\n var configList = this._configuration.iter();\n for (var cfgIdx = 0, cfgLen = configList.length; cfgIdx < cfgLen; cfgIdx++) {\n var state = configList[cfgIdx];\n if (desc.indexOf(state) > -1) {\n basicStatesExited.add(state);\n statesExited.add(state);\n var ancestors = query.getAncestors(state, scope);\n for (var ancIdx = 0, ancLen = ancestors.length; ancIdx < ancLen; ancIdx++) {\n statesExited.add(ancestors[ancIdx]);\n }\n }\n }\n }\n\n var sortedStatesExited = statesExited.iter().sort(getStateWithHigherSourceChildPriority);\n return [basicStatesExited, sortedStatesExited];\n }\n }, {\n key: '_executeTransitions',\n value: function _executeTransitions(currentEvent, selectedTransitions) {\n var sortedTransitions = selectedTransitions.iter().sort(transitionComparator);\n\n this._log(\"executing transitition actions\");\n for (var stxIdx = 0, len = sortedTransitions.length; stxIdx < len; stxIdx++) {\n var transition = sortedTransitions[stxIdx];\n\n var targetIds = transition.targets && transition.targets.map(function (target) {\n return target.id;\n });\n\n this.emit('onTransition', transition.source.id, targetIds, transition.source.transitions.indexOf(transition));\n\n if (transition.onTransition !== undefined) {\n for (var txIdx = 0, txLen = transition.onTransition.length; txIdx < txLen; txIdx++) {\n var actionRef = transition.onTransition[txIdx];\n try {\n actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n }\n }, {\n key: '_enterStates',\n value: function _enterStates(currentEvent, selectedTransitionsWithTargets) {\n var _this7 = this;\n\n this._log(\"entering states\");\n\n var statesEntered = new Set();\n var statesForDefaultEntry = new Set();\n // initialize the temporary table for default content in history states\n var defaultHistoryContent = {};\n this._computeEntrySet(selectedTransitionsWithTargets, statesEntered, statesForDefaultEntry, defaultHistoryContent);\n statesEntered = Array.from(statesEntered).sort(sortInEntryOrder);\n\n this._log(\"statesEntered \", statesEntered);\n\n for (var enterIdx = 0, enterLen = statesEntered.length; enterIdx < enterLen; enterIdx++) {\n var stateEntered = statesEntered[enterIdx];\n\n if (stateEntered.isAtomic) this._configuration.add(stateEntered);\n\n this._log(\"entering\", stateEntered.id);\n\n this.emit('onEntry', stateEntered.id);\n\n if (stateEntered.onEntry !== undefined) {\n for (var entryIdx = 0, entryLen = stateEntered.onEntry.length; entryIdx < entryLen; entryIdx++) {\n var block = stateEntered.onEntry[entryIdx];\n for (var blockIdx = 0, blockLen = block.length; blockIdx < blockLen; blockIdx++) {\n var actionRef = block[blockIdx];\n try {\n actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, actionRef);\n break;\n }\n }\n }\n }\n\n if (statesForDefaultEntry.has(stateEntered)) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = stateEntered.initialRef[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var initialState = _step3.value;\n\n this.emit('onDefaultEntry', initialState.id);\n if (initialState.typeEnum === INITIAL) {\n var transition = initialState.transitions[0];\n if (transition.onTransition !== undefined) {\n this._log('executing initial transition content for initial state of parent state', stateEntered.id);\n for (var txIdx = 0, txLen = transition.onTransition.length; txIdx < txLen; txIdx++) {\n var _actionRef = transition.onTransition[txIdx];\n try {\n _actionRef.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, _actionRef);\n break;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n\n if (defaultHistoryContent[stateEntered.id]) {\n var _transition = defaultHistoryContent[stateEntered.id];\n if (_transition.onTransition !== undefined) {\n this._log('executing history transition content for history state of parent state', stateEntered.id);\n for (var txIdx = 0, txLen = _transition.onTransition.length; txIdx < txLen; txIdx++) {\n var _actionRef2 = _transition.onTransition[txIdx];\n try {\n _actionRef2.call(this._scriptingContext, currentEvent);\n } catch (e) {\n this._handleError(e, _actionRef2);\n break;\n }\n }\n }\n }\n }\n\n for (var enterIdx = 0, enterLen = statesEntered.length; enterIdx < enterLen; enterIdx++) {\n var stateEntered = statesEntered[enterIdx];\n if (stateEntered.typeEnum === FINAL) {\n var parent = stateEntered.parent;\n var grandparent = parent.parent;\n this._internalEventQueue.push({ name: \"done.state.\" + parent.id, data: stateEntered.donedata && stateEntered.donedata.call(this._scriptingContext, currentEvent) });\n if (grandparent && grandparent.typeEnum === PARALLEL) {\n if (grandparent.states.every(function (s) {\n return _this7.isInFinalState(s);\n })) {\n this._internalEventQueue.push({ name: \"done.state.\" + grandparent.id });\n }\n }\n }\n }\n\n return statesEntered;\n }\n }, {\n key: '_getEffectiveTargetStates',\n value: function _getEffectiveTargetStates(transition) {\n var targets = new Set();\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = transition.targets[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var s = _step4.value;\n\n if (s.typeEnum === HISTORY) {\n if (s.id in this._historyValue) this._historyValue[s.id].forEach(function (state) {\n return targets.add(state);\n });else [].concat(_toConsumableArray(this._getEffectiveTargetStates(s.transitions[0]))).forEach(function (state) {\n return targets.add(state);\n });\n } else {\n targets.add(s);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return targets;\n }\n }, {\n key: '_computeEntrySet',\n value: function _computeEntrySet(transitions, statesToEnter, statesForDefaultEntry, defaultHistoryContent) {\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = transitions.iter()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var t = _step5.value;\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = t.targets[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var s = _step6.value;\n\n this._addDescendantStatesToEnter(s, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n var ancestor = t.scope;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = this._getEffectiveTargetStates(t)[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var _s = _step7.value;\n\n this._addAncestorStatesToEnter(_s, ancestor, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n }, {\n key: '_computeExitSet',\n value: function _computeExitSet(transitions) {\n var statesToExit = new Set();\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = transitions[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var t = _step8.value;\n\n if (t.targets) {\n var scope = t.scope;\n var _iteratorNormalCompletion9 = true;\n var _didIteratorError9 = false;\n var _iteratorError9 = undefined;\n\n try {\n for (var _iterator9 = this._getFullConfiguration()[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {\n var s = _step9.value;\n\n if (query.isDescendant(s, scope)) statesToExit.add(s);\n }\n } catch (err) {\n _didIteratorError9 = true;\n _iteratorError9 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion9 && _iterator9.return) {\n _iterator9.return();\n }\n } finally {\n if (_didIteratorError9) {\n throw _iteratorError9;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return statesToExit;\n }\n }, {\n key: '_addAncestorStatesToEnter',\n value: function _addAncestorStatesToEnter(state, ancestor, statesToEnter, statesForDefaultEntry, defaultHistoryContent) {\n var _this8 = this;\n\n var traverse = function traverse(anc) {\n if (anc.typeEnum === PARALLEL) {\n var _iteratorNormalCompletion10 = true;\n var _didIteratorError10 = false;\n var _iteratorError10 = undefined;\n\n try {\n var _loop = function _loop() {\n var child = _step10.value;\n\n if (child.typeEnum !== HISTORY && ![].concat(_toConsumableArray(statesToEnter)).some(function (s) {\n return query.isDescendant(s, child);\n })) {\n _this8._addDescendantStatesToEnter(child, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n };\n\n for (var _iterator10 = anc.states[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) {\n _loop();\n }\n } catch (err) {\n _didIteratorError10 = true;\n _iteratorError10 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion10 && _iterator10.return) {\n _iterator10.return();\n }\n } finally {\n if (_didIteratorError10) {\n throw _iteratorError10;\n }\n }\n }\n }\n };\n var _iteratorNormalCompletion11 = true;\n var _didIteratorError11 = false;\n var _iteratorError11 = undefined;\n\n try {\n for (var _iterator11 = query.getAncestors(state, ancestor)[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {\n var anc = _step11.value;\n\n statesToEnter.add(anc);\n traverse(anc);\n }\n } catch (err) {\n _didIteratorError11 = true;\n _iteratorError11 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion11 && _iterator11.return) {\n _iterator11.return();\n }\n } finally {\n if (_didIteratorError11) {\n throw _iteratorError11;\n }\n }\n }\n\n traverse(ancestor);\n }\n }, {\n key: '_addDescendantStatesToEnter',\n value: function _addDescendantStatesToEnter(state, statesToEnter, statesForDefaultEntry, defaultHistoryContent) {\n var _this9 = this;\n\n if (state.typeEnum === HISTORY) {\n if (this._historyValue[state.id]) {\n var _iteratorNormalCompletion12 = true;\n var _didIteratorError12 = false;\n var _iteratorError12 = undefined;\n\n try {\n for (var _iterator12 = this._historyValue[state.id][Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {\n var s = _step12.value;\n\n this._addDescendantStatesToEnter(s, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError12 = true;\n _iteratorError12 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion12 && _iterator12.return) {\n _iterator12.return();\n }\n } finally {\n if (_didIteratorError12) {\n throw _iteratorError12;\n }\n }\n }\n\n var _iteratorNormalCompletion13 = true;\n var _didIteratorError13 = false;\n var _iteratorError13 = undefined;\n\n try {\n for (var _iterator13 = this._historyValue[state.id][Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) {\n var _s2 = _step13.value;\n\n this._addAncestorStatesToEnter(_s2, state.parent, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError13 = true;\n _iteratorError13 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion13 && _iterator13.return) {\n _iterator13.return();\n }\n } finally {\n if (_didIteratorError13) {\n throw _iteratorError13;\n }\n }\n }\n } else {\n defaultHistoryContent[state.parent.id] = state.transitions[0];\n var _iteratorNormalCompletion14 = true;\n var _didIteratorError14 = false;\n var _iteratorError14 = undefined;\n\n try {\n for (var _iterator14 = state.transitions[0].targets[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {\n var _s3 = _step14.value;\n\n this._addDescendantStatesToEnter(_s3, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError14 = true;\n _iteratorError14 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion14 && _iterator14.return) {\n _iterator14.return();\n }\n } finally {\n if (_didIteratorError14) {\n throw _iteratorError14;\n }\n }\n }\n\n var _iteratorNormalCompletion15 = true;\n var _didIteratorError15 = false;\n var _iteratorError15 = undefined;\n\n try {\n for (var _iterator15 = state.transitions[0].targets[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {\n var _s4 = _step15.value;\n\n this._addAncestorStatesToEnter(_s4, state.parent, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError15 = true;\n _iteratorError15 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion15 && _iterator15.return) {\n _iterator15.return();\n }\n } finally {\n if (_didIteratorError15) {\n throw _iteratorError15;\n }\n }\n }\n }\n } else {\n statesToEnter.add(state);\n if (state.typeEnum === COMPOSITE) {\n statesForDefaultEntry.add(state);\n //for each state in initialRef, if it is an initial state, then add ancestors and descendants.\n var _iteratorNormalCompletion16 = true;\n var _didIteratorError16 = false;\n var _iteratorError16 = undefined;\n\n try {\n for (var _iterator16 = state.initialRef[Symbol.iterator](), _step16; !(_iteratorNormalCompletion16 = (_step16 = _iterator16.next()).done); _iteratorNormalCompletion16 = true) {\n var _s5 = _step16.value;\n\n var targets = _s5.typeEnum === INITIAL ? _s5.transitions[0].targets : [_s5];\n var _iteratorNormalCompletion18 = true;\n var _didIteratorError18 = false;\n var _iteratorError18 = undefined;\n\n try {\n for (var _iterator18 = targets[Symbol.iterator](), _step18; !(_iteratorNormalCompletion18 = (_step18 = _iterator18.next()).done); _iteratorNormalCompletion18 = true) {\n var targetState = _step18.value;\n\n this._addDescendantStatesToEnter(targetState, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError18 = true;\n _iteratorError18 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion18 && _iterator18.return) {\n _iterator18.return();\n }\n } finally {\n if (_didIteratorError18) {\n throw _iteratorError18;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError16 = true;\n _iteratorError16 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion16 && _iterator16.return) {\n _iterator16.return();\n }\n } finally {\n if (_didIteratorError16) {\n throw _iteratorError16;\n }\n }\n }\n\n var _iteratorNormalCompletion17 = true;\n var _didIteratorError17 = false;\n var _iteratorError17 = undefined;\n\n try {\n for (var _iterator17 = state.initialRef[Symbol.iterator](), _step17; !(_iteratorNormalCompletion17 = (_step17 = _iterator17.next()).done); _iteratorNormalCompletion17 = true) {\n var _s6 = _step17.value;\n\n var _targets = _s6.typeEnum === INITIAL ? _s6.transitions[0].targets : [_s6];\n var _iteratorNormalCompletion19 = true;\n var _didIteratorError19 = false;\n var _iteratorError19 = undefined;\n\n try {\n for (var _iterator19 = _targets[Symbol.iterator](), _step19; !(_iteratorNormalCompletion19 = (_step19 = _iterator19.next()).done); _iteratorNormalCompletion19 = true) {\n var _targetState = _step19.value;\n\n this._addAncestorStatesToEnter(_targetState, state, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n } catch (err) {\n _didIteratorError19 = true;\n _iteratorError19 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion19 && _iterator19.return) {\n _iterator19.return();\n }\n } finally {\n if (_didIteratorError19) {\n throw _iteratorError19;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError17 = true;\n _iteratorError17 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion17 && _iterator17.return) {\n _iterator17.return();\n }\n } finally {\n if (_didIteratorError17) {\n throw _iteratorError17;\n }\n }\n }\n } else {\n if (state.typeEnum === PARALLEL) {\n var _iteratorNormalCompletion20 = true;\n var _didIteratorError20 = false;\n var _iteratorError20 = undefined;\n\n try {\n var _loop2 = function _loop2() {\n var child = _step20.value;\n\n if (child.typeEnum !== HISTORY && ![].concat(_toConsumableArray(statesToEnter)).some(function (s) {\n return query.isDescendant(s, child);\n })) {\n _this9._addDescendantStatesToEnter(child, statesToEnter, statesForDefaultEntry, defaultHistoryContent);\n }\n };\n\n for (var _iterator20 = state.states[Symbol.iterator](), _step20; !(_iteratorNormalCompletion20 = (_step20 = _iterator20.next()).done); _iteratorNormalCompletion20 = true) {\n _loop2();\n }\n } catch (err) {\n _didIteratorError20 = true;\n _iteratorError20 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion20 && _iterator20.return) {\n _iterator20.return();\n }\n } finally {\n if (_didIteratorError20) {\n throw _iteratorError20;\n }\n }\n }\n }\n }\n }\n }\n }, {\n key: 'isInFinalState',\n value: function isInFinalState(s) {\n var _this10 = this;\n\n if (s.typeEnum === COMPOSITE) {\n return s.states.some(function (s) {\n return s.typeEnum === FINAL && _this10._configuration.contains(s);\n });\n } else if (s.typeEnum === PARALLEL) {\n return s.states.every(this.isInFinalState.bind(this));\n } else {\n return false;\n }\n }\n\n /** @private */\n\n }, {\n key: '_evaluateAction',\n value: function _evaluateAction(currentEvent, actionRef) {\n try {\n return actionRef.call(this._scriptingContext, currentEvent); //SCXML system variables\n } catch (e) {\n this._handleError(e, actionRef);\n }\n }\n }, {\n key: '_handleError',\n value: function _handleError(e, actionRef) {\n var event = e instanceof Error || typeof e.__proto__.name === 'string' && e.__proto__.name.match(/^.*Error$/) ? //we can't just do 'e instanceof Error', because the Error object in the sandbox is from a different context, and instanceof will return false\n {\n name: 'error.execution',\n data: {\n tagname: actionRef.tagname,\n line: actionRef.line,\n column: actionRef.column,\n reason: e.message\n },\n type: 'platform'\n } : e.name ? e : {\n name: 'error.execution',\n data: e,\n type: 'platform'\n };\n this._internalEventQueue.push(event);\n this.emit('onError', event);\n }\n }, {\n key: '_log',\n value: function _log() {\n if (printTrace) {\n var args = Array.from(arguments);\n this.opts.console.log(args[0] + ': ' + args.slice(1).map(function (arg) {\n return arg === null ? 'null' : arg === undefined ? 'undefined' : typeof arg === 'string' ? arg : arg.toString() === '[object Object]' ? util.inspect(arg) : arg.toString();\n }).join(', ') + '\\n');\n }\n }\n\n /**\n * @interface Listener\n */\n\n /**\n * @function\n * @name Listener#onEntry \n * @param {string} stateId\n */\n\n /**\n * @function\n * @name Listener#onExit \n * @param {string} stateId\n */\n\n /**\n * @function\n * @name Listener#onTransition \n * @param {string} sourceStateId Id of the source state\n * @param {Array<string>} targetStatesIds Ids of the target states\n * @param {number} transitionIndex Index of the transition relative to other transitions originating from source state.\n */\n\n /**\n * @function\n * @name Listener#onError\n * @param {Error} errorInfo\n */\n\n /**\n * @function\n * @name Listener#onBigStepBegin\n */\n\n /**\n * @function\n * @name Listener#onBigStepResume\n */\n\n /**\n * @function\n * @name Listener#onBigStepSuspend\n */\n\n /**\n * @function\n * @name Listener#onBigStepEnd\n */\n\n /**\n * @function\n * @name Listener#onSmallStepBegin\n * @param {string} event\n */\n\n /**\n * @function\n * @name Listener#onSmallStepEnd\n */\n\n /** \n * Provides a generic mechanism to subscribe to state change and runtime\n * error notifications. Can be used for logging and debugging. For example,\n * can attach a logger that simply logs the state changes. Or can attach a\n * network debugging client that sends state change notifications to a\n * debugging server.\n * This is an alternative interface to {@link EventEmitter.prototype#on}.\n * @memberof BaseInterpreter.prototype \n * @param {Listener} listener\n */\n\n }, {\n key: 'registerListener',\n value: function registerListener(listener) {\n BaseInterpreter.EVENTS.forEach(function (event) {\n if (listener[event]) this.on(event, listener[event]);\n }, this);\n }\n\n /** \n * Unregister a Listener\n * @memberof BaseInterpreter.prototype \n * @param {Listener} listener\n */\n\n }, {\n key: 'unregisterListener',\n value: function unregisterListener(listener) {\n BaseInterpreter.EVENTS.forEach(function (event) {\n if (listener[event]) this.off(event, listener[event]);\n }, this);\n }\n\n /** \n * Query the model to get all transition events.\n * @return {Array<string>} Transition events.\n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getAllTransitionEvents',\n value: function getAllTransitionEvents() {\n var events = {};\n function getEvents(state) {\n\n if (state.transitions) {\n for (var txIdx = 0, txLen = state.transitions.length; txIdx < txLen; txIdx++) {\n events[state.transitions[txIdx].event] = true;\n }\n }\n\n if (state.states) {\n for (var stateIdx = 0, stateLen = state.states.length; stateIdx < stateLen; stateIdx++) {\n getEvents(state.states[stateIdx]);\n }\n }\n }\n\n getEvents(this._model);\n\n return Object.keys(events);\n }\n\n /**\n * Three things capture the current snapshot of a running SCION interpreter:\n *\n * <ul>\n * <li> basic configuration (the set of basic states the state machine is in)</li>\n * <li> history state values (the states the state machine was in last time it was in the parent of a history state)</li>\n * <li> the datamodel</li>\n * </ul>\n * \n * The snapshot object can be serialized as JSON and saved to a database. It can\n * later be passed to the SCXML constructor to restore the state machine\n * using the snapshot argument.\n *\n * @return {Snapshot} \n * @memberof BaseInterpreter.prototype \n */\n\n }, {\n key: 'getSnapshot',\n value: function getSnapshot() {\n return [this.getConfiguration(), this._serializeHistory(), this._isInFinalState, this._model.$serializeDatamodel(), this._internalEventQueue.slice()];\n }\n }, {\n key: '_serializeHistory',\n value: function _serializeHistory() {\n var o = {};\n Object.keys(this._historyValue).forEach(function (sid) {\n o[sid] = this._historyValue[sid].map(function (state) {\n return state.id;\n });\n }, this);\n return o;\n }\n\n /**\n * @interface Event\n */\n\n /** \n * @member name\n * @memberof Event.prototype \n * @type string\n * @description The name of the event\n */\n\n /** \n * @member data\n * @memberof Event.prototype \n * @type any\n * @description The event data\n */\n\n /** \n * An SCXML interpreter takes SCXML events as input, where an SCXML event is an\n * object with \"name\" and \"data\" properties. These can be passed to method `gen`\n * as two positional arguments, or as a single object.\n * @param {string|Event} evtObjOrName\n * @param {any=} optionalData\n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'gen',\n value: function gen(evtObjOrName, optionalData) {\n var currentEvent;\n switch (typeof evtObjOrName === 'undefined' ? 'undefined' : _typeof(evtObjOrName)) {\n case 'string':\n currentEvent = { name: evtObjOrName, data: optionalData };\n break;\n case 'object':\n if (typeof evtObjOrName.name === 'string') {\n currentEvent = evtObjOrName;\n } else {\n throw new Error('Event object must have \"name\" property of type string.');\n }\n break;\n default:\n throw new Error('First argument to gen must be a string or object.');\n }\n\n if (this._isStepping) throw new Error('Cannot call gen during a big-step');\n\n //otherwise, kick him off\n this._isStepping = true;\n\n this._performBigStep(currentEvent);\n\n this._isStepping = false;\n return this.getConfiguration();\n }\n\n /**\n * Injects an external event into the interpreter asynchronously\n * @param {Event} currentEvent The event to inject\n * @param {genCallback} cb Callback invoked with an error or the interpreter's stable configuration\n * @emits scion.BaseInterpreter#onEntry\n * @emits scion.BaseInterpreter#onExit\n * @emits scion.BaseInterpreter#onTransition\n * @emits scion.BaseInterpreter#onDefaultEntry\n * @emits scion.BaseInterpreter#onError\n * @emits scion.BaseInterpreter#onBigStepBegin\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onBigStepSuspend\n * @emits scion.BaseInterpreter#onBigStepResume\n * @emits scion.BaseInterpreter#onSmallStepBegin\n * @emits scion.BaseInterpreter#onSmallStepEnd\n * @emits scion.BaseInterpreter#onBigStepEnd\n * @emits scion.BaseInterpreter#onExitInterpreter\n */\n\n }, {\n key: 'genAsync',\n value: function genAsync(currentEvent, cb) {\n if (currentEvent !== null && ((typeof currentEvent === 'undefined' ? 'undefined' : _typeof(currentEvent)) !== 'object' || !currentEvent || typeof currentEvent.name !== 'string')) {\n throw new Error('Expected currentEvent to be null or an Object with a name');\n }\n\n if (typeof cb !== 'function') {\n cb = nop;\n }\n\n this._externalEventQueue.push([currentEvent, cb]);\n\n //the semantics we want are to return to the cb the results of processing that particular event.\n function nextStep(e, c) {\n this._performBigStepAsync(e, function (err, config) {\n c(err, config);\n\n if (this._externalEventQueue.length) {\n nextStep.apply(this, this._externalEventQueue.shift());\n } else {\n this._isStepping = false;\n }\n }.bind(this));\n }\n if (!this._isStepping) {\n this._isStepping = true;\n nextStep.apply(this, this._externalEventQueue.shift());\n }\n }\n }]);\n\n return BaseInterpreter;\n}(EventEmitter);\n\nBaseInterpreter.EVENTS = ['onEntry', 'onExit', 'onTransition', 'onDefaultEntry', 'onError', 'onBigStepBegin', 'onBigStepSuspend', 'onBigStepResume', 'onSmallStepBegin', 'onSmallStepEnd', 'onBigStepEnd', 'onExitInterpreter'];\n\n//some global singletons to use to generate in-memory session ids, in case the user does not specify these data structures\nBaseInterpreter.sessionIdCounter = 1;\nBaseInterpreter.generateSessionid = function () {\n return BaseInterpreter.sessionIdCounter++;\n};\nBaseInterpreter.sessionRegistry = new Map();\n\n// Do nothing\n\nfunction nop() {}\n\nvar InterpreterScriptingContext = function () {\n function InterpreterScriptingContext(interpreter) {\n _classCallCheck(this, InterpreterScriptingContext);\n\n this._interpreter = interpreter;\n this._timeoutMap = {};\n this._invokeMap = {};\n this._timeouts = new Set();\n\n //Regex from:\n // http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n // http://stackoverflow.com/a/6927878\n this.validateUriRegex = /(#_.*)|\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))/i;\n\n this.invokeSendTargetRegex = /^#_(.*)$/;\n this.scxmlSendTargetRegex = /^#_scxml_(.*)$/;\n }\n\n _createClass(InterpreterScriptingContext, [{\n key: 'raise',\n value: function raise(event) {\n this._installDefaultPropsOnEvent(event, true);\n this._interpreter._internalEventQueue.push(event);\n }\n }, {\n key: 'parseXmlStringAsDOM',\n value: function parseXmlStringAsDOM(xmlString) {\n return (this._interpreter.opts.xmlParser || InterpreterScriptingContext.xmlParser).parse(xmlString);\n }\n }, {\n key: 'invoke',\n value: function invoke(invokeObj) {\n var _this11 = this;\n\n //look up invoker by type. assume invokers are passed in as an option to constructor\n this._invokeMap[invokeObj.id] = new Promise(function (resolve, reject) {\n (_this11._interpreter.opts.invokers || InterpreterScriptingContext.invokers)[invokeObj.type](_this11._interpreter, invokeObj, _this11._interpreter.opts.invokerExecutionContext, function (err, session) {\n if (err) return reject(err);\n\n _this11._interpreter.emit('onInvokedSessionInitialized', session);\n resolve(session);\n });\n });\n }\n }, {\n key: 'cancelInvoke',\n value: function cancelInvoke(invokeid) {\n var _this12 = this;\n\n //TODO: on cancel invoke clean up this._invokeMap\n var sessionPromise = this._invokeMap[invokeid];\n this._interpreter._log('cancelling session with invokeid ' + invokeid);\n if (sessionPromise) {\n this._interpreter._log('sessionPromise found');\n sessionPromise.then(function (session) {\n _this12._interpreter._log('resolved session ' + invokeid + '. cancelling... ');\n session.cancel();\n //clean up\n delete _this12._invokeMap[invokeid];\n }, function (err) {\n //TODO: dispatch error back into the state machine as error.communication\n });\n }\n }\n }, {\n key: '_installDefaultPropsOnEvent',\n value: function _installDefaultPropsOnEvent(event, isInternal) {\n if (!isInternal) {\n event.origin = this._interpreter.opts._x._ioprocessors.scxml.location; //TODO: preserve original origin when we autoforward? \n event.origintype = event.type || SCXML_IOPROCESSOR_TYPE;\n }\n if (typeof event.type === 'undefined') {\n event.type = isInternal ? 'internal' : 'external';\n }\n ['name', 'sendid', 'invokeid', 'data', 'origin', 'origintype'].forEach(function (prop) {\n if (typeof event[prop] === 'undefined') {\n event[prop] = undefined;\n }\n });\n }\n }, {\n key: 'send',\n value: function send(event, options) {\n this._interpreter._log('send event', event, options);\n options = options || {};\n var sendType = options.type || SCXML_IOPROCESSOR_TYPE;\n //TODO: move these out\n function validateSend(event, options, sendAction) {\n if (event.target) {\n var targetIsValidUri = this.validateUriRegex.test(event.target);\n if (!targetIsValidUri) {\n throw { name: \"error.execution\", data: 'Target is not valid URI', sendid: event.sendid, type: 'platform' };\n }\n }\n if (sendType !== SCXML_IOPROCESSOR_TYPE) {\n //TODO: extend this to support HTTP, and other IO processors\n throw { name: \"error.execution\", data: 'Unsupported event processor type', sendid: event.sendid, type: 'platform' };\n }\n\n sendAction.call(this, event, options);\n }\n\n function defaultSendAction(event, options) {\n var _this13 = this;\n\n if (typeof setTimeout === 'undefined') throw new Error('Default implementation of BaseInterpreter.prototype.send will not work unless setTimeout is defined globally.');\n\n var match;\n if (event.target === '#_internal') {\n this.raise(event);\n } else {\n this._installDefaultPropsOnEvent(event, false);\n event.origintype = SCXML_IOPROCESSOR_TYPE; //TODO: extend this to support HTTP, and other IO processors\n //TODO : paramterize this based on send/@type?\n if (!event.target) {\n doSend.call(this, this._interpreter);\n } else if (event.target === '#_parent') {\n if (this._interpreter.opts.parentSession) {\n event.invokeid = this._interpreter.opts.invokeid;\n doSend.call(this, this._interpreter.opts.parentSession);\n } else {\n throw { name: \"error.communication\", data: 'Parent session not specified', sendid: event.sendid, type: 'platform' };\n }\n } else if (match = event.target.match(this.scxmlSendTargetRegex)) {\n var targetSessionId = match[1];\n var session = this._interpreter.opts.sessionRegistry.get(targetSessionId);\n if (session) {\n doSend.call(this, session);\n } else {\n throw { name: 'error.communication', sendid: event.sendid, type: 'platform' };\n }\n } else if (match = event.target.match(this.invokeSendTargetRegex)) {\n //TODO: test this code path.\n var invokeId = match[1];\n this._invokeMap[invokeId].then(function (session) {\n doSend.call(_this13, session);\n });\n } else {\n throw new Error('Unrecognized send target.'); //TODO: dispatch error back into the state machine\n }\n }\n\n function doSend(session) {\n //TODO: we probably now need to refactor data structures:\n // this._timeouts\n // this._timeoutMap\n var timeoutHandle = setTimeout(function () {\n if (event.sendid) delete this._timeoutMap[event.sendid];\n this._timeouts.delete(timeoutOptions);\n var _doSend = this._interpreter.opts.doSend || BaseInterpreter.doSend;\n if (_doSend) {\n _doSend(session, event);\n } else {\n session[this._interpreter.opts.sendAsync ? 'genAsync' : 'gen'](event);\n }\n }.bind(this), options.delay || 0);\n\n var timeoutOptions = {\n sendOptions: options,\n timeoutHandle: timeoutHandle\n };\n if (event.sendid) this._timeoutMap[event.sendid] = timeoutHandle;\n this._timeouts.add(timeoutOptions);\n }\n }\n\n function publish() {\n this._interpreter.emit(event.name, event.data);\n }\n\n //choose send function\n //TODO: rethink how this custom send works\n var sendFn;\n if (event.type === 'https://github.com/jbeard4/SCION#publish') {\n sendFn = publish;\n } else if (this._interpreter.opts.customSend) {\n sendFn = this._interpreter.opts.customSend;\n } else {\n sendFn = defaultSendAction;\n }\n\n options = options || {};\n\n this._interpreter._log(\"sending event\", event.name, \"with content\", event.data, \"after delay\", options.delay);\n\n validateSend.call(this, event, options, sendFn);\n }\n }, {\n key: 'cancel',\n value: function cancel(sendid) {\n if (this._interpreter.opts.customCancel) {\n return this._interpreter.opts.customCancel.apply(this, [sendid]);\n }\n\n if (typeof clearTimeout === 'undefined') throw new Error('Default implementation of BaseInterpreter.prototype.cancel will not work unless setTimeout is defined globally.');\n\n if (sendid in this._timeoutMap) {\n this._interpreter._log(\"cancelling \", sendid, \" with timeout id \", this._timeoutMap[sendid]);\n clearTimeout(this._timeoutMap[sendid]);\n }\n }\n }]);\n\n return InterpreterScriptingContext;\n}();\n\nmodule.exports = extend(new EventEmitter(), {\n BaseInterpreter: BaseInterpreter,\n ArraySet: ArraySet,\n STATE_TYPES: constants.STATE_TYPES,\n initializeModel: initializeModel,\n InterpreterScriptingContext: InterpreterScriptingContext,\n helpers: helpers,\n query: query\n});\n\n}).call(this,require('_process'),require(\"timers\").setImmediate)\n},{\"./ArraySet\":1,\"./constants\":2,\"./helpers\":3,\"./query\":4,\"_process\":9,\"timers\":10,\"tiny-events\":6,\"util\":12}],6:[function(require,module,exports){\nfunction EventEmitter() {\n this._listeners = {};\n}\n\nEventEmitter.prototype.on = function _on(type, listener) {\n if (!Array.isArray(this._listeners[type])) {\n this._listeners[type] = [];\n }\n\n if (this._listeners[type].indexOf(listener) === -1) {\n this._listeners[type].push(listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.once = function _once(type, listener) {\n var self = this;\n\n function __once() {\n for (var args = [], i = 0; i < arguments.length; i += 1) {\n args[i] = arguments[i];\n }\n\n self.off(type, __once);\n listener.apply(self, args);\n }\n\n __once.listener = listener;\n\n return this.on(type, __once);\n};\n\nEventEmitter.prototype.off = function _off(type, listener) {\n if (!Array.isArray(this._listeners[type])) {\n return this;\n }\n\n if (typeof listener === 'undefined') {\n this._listeners[type] = [];\n return this;\n }\n\n var index = this._listeners[type].indexOf(listener);\n\n if (index === -1) {\n for (var i = 0; i < this._listeners[type].length; i += 1) {\n if (this._listeners[type][i].listener === listener) {\n index = i;\n break;\n }\n }\n }\n\n this._listeners[type].splice(index, 1);\n return this;\n};\n\nEventEmitter.prototype.emit = function _emit(type) {\n if (!Array.isArray(this._listeners[type])) {\n return this;\n }\n\n for (var args = [], i = 1; i < arguments.length; i += 1) {\n args[i - 1] = arguments[i];\n }\n\n this._listeners[type].forEach(function __emit(listener) {\n listener.apply(this, args);\n }, this);\n\n return this;\n};\n\nmodule.exports.EventEmitter = EventEmitter;\n\n},{}],7:[function(require,module,exports){\n(function (setImmediate){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar base = require('@scion-scxml/core-base'),\n helpers = base.helpers,\n query = base.query,\n transitionComparator = base.helpers.transitionComparator;\n\n/** \n * @description Implements semantics described in Algorithm D of the SCXML specification. \n * See {@link scion.BaseInterpreter} for information on the constructor arguments.\n * @class SCInterpreter \n * @extends BaseInterpreter\n */\n\nvar Statechart = function (_base$BaseInterpreter) {\n _inherits(Statechart, _base$BaseInterpreter);\n\n function Statechart(modelOrModelFactory, opts) {\n _classCallCheck(this, Statechart);\n\n opts = opts || {};\n opts.legacySemantics = false;\n\n return _possibleConstructorReturn(this, (Statechart.__proto__ || Object.getPrototypeOf(Statechart)).call(this, modelOrModelFactory, opts));\n }\n\n /** @private */\n\n\n _createClass(Statechart, [{\n key: '_selectTransitions',\n value: function _selectTransitions(currentEvent, selectEventlessTransitions) {\n var transitionSelector = this.opts.transitionSelector;\n var enabledTransitions = new this.opts.Set();\n\n var e = this._evaluateAction.bind(this, currentEvent);\n\n var atomicStates = this._configuration.iter().sort(transitionComparator);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = atomicStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n loop: for (var _iterator2 = [state].concat(query.getAncestors(state))[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var s = _step2.value;\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = s.transitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var t = _step3.value;\n\n if (transitionSelector(t, currentEvent, e, selectEventlessTransitions)) {\n enabledTransitions.add(t);\n break loop;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var priorityEnabledTransitions = this._removeConflictingTransition(enabledTransitions);\n\n this._log(\"priorityEnabledTransitions\", priorityEnabledTransitions);\n\n return priorityEnabledTransitions;\n }\n\n /** @private */\n\n }, {\n key: '_removeConflictingTransition',\n value: function _removeConflictingTransition(enabledTransitions) {\n var _this2 = this;\n\n var filteredTransitions = new this.opts.Set();\n //toList sorts the transitions in the order of the states that selected them\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = enabledTransitions.iter()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var t1 = _step4.value;\n\n var t1Preempted = false;\n var transitionsToRemove = new Set();\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n var _loop = function _loop() {\n var t2 = _step5.value;\n\n //TODO: can we compute this statically? for example, by checking if the transition scopes are arena orthogonal?\n var t1ExitSet = _this2._computeExitSet([t1]);\n var t2ExitSet = _this2._computeExitSet([t2]);\n var hasIntersection = [].concat(_toConsumableArray(t1ExitSet)).some(function (s) {\n return t2ExitSet.has(s);\n }) || [].concat(_toConsumableArray(t2ExitSet)).some(function (s) {\n return t1ExitSet.has(s);\n });\n _this2._log('t1ExitSet', t1.source.id, [].concat(_toConsumableArray(t1ExitSet)).map(function (s) {\n return s.id;\n }));\n _this2._log('t2ExitSet', t2.source.id, [].concat(_toConsumableArray(t2ExitSet)).map(function (s) {\n return s.id;\n }));\n _this2._log('hasIntersection', hasIntersection);\n if (hasIntersection) {\n if (t2.source.descendants.indexOf(t1.source) > -1) {\n //is this the same as being ancestrally related?\n transitionsToRemove.add(t2);\n } else {\n t1Preempted = true;\n return 'break';\n }\n }\n };\n\n for (var _iterator5 = filteredTransitions.iter()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _ret = _loop();\n\n if (_ret === 'break') break;\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n if (!t1Preempted) {\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = transitionsToRemove[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var t3 = _step6.value;\n\n filteredTransitions.remove(t3);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n filteredTransitions.add(t1);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return filteredTransitions;\n }\n }]);\n\n return Statechart;\n}(base.BaseInterpreter);\n\nbase.Statechart = Statechart;\n//simple default invoker\nbase.InterpreterScriptingContext.invokers = {\n \"http://www.w3.org/TR/scxml/\": function httpWwwW3OrgTRScxml(invokingSession, invokeObj, invokerExecutionContext, cb) {\n //put invoke logic here: \n var method = void 0,\n arg = void 0;\n if (invokeObj.constructorFunction) {\n var fnModel = invokeObj.constructorFunction;\n var options = {\n invokeid: invokeObj.id,\n params: invokeObj.params,\n parentSession: invokingSession,\n docUrl: invokeObj.docUrl\n //sessionid : //TODO: construct or generate a sessionid for invoked session\n };\n var model = invokerExecutionContext;\n var interpreter = void 0;\n if (options.parentSession instanceof Statechart) {\n interpreter = new Statechart(fnModel, options);\n }\n cb(null, interpreter, fnModel, model);\n //we introduce a delay here before starting the interpreter to give clients that are subscribed to onInvokedSessionInitialized event a chance to subscribe to events on the newly instantiated interpreter\n setImmediate(function () {\n return interpreter.start();\n });\n } else {\n throw new Error('Invoke object needs a constructorFunction property');\n }\n }\n};\nbase.InterpreterScriptingContext.invokers[undefined] = base.InterpreterScriptingContext.invokers[null] = base.InterpreterScriptingContext.invokers['scxml'] = base.InterpreterScriptingContext.invokers[\"http://www.w3.org/TR/scxml/\"];\n\nmodule.exports = base;\n\n}).call(this,require(\"timers\").setImmediate)\n},{\"@scion-scxml/core-base\":5,\"timers\":10}],8:[function(require,module,exports){\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n},{}],9:[function(require,module,exports){\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],10:[function(require,module,exports){\n(function (setImmediate,clearImmediate){\nvar nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n}).call(this,require(\"timers\").setImmediate,require(\"timers\").clearImmediate)\n},{\"process/browser.js\":9,\"timers\":10}],11:[function(require,module,exports){\nmodule.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n},{}],12:[function(require,module,exports){\n(function (process,global){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n}).call(this,require('_process'),typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./support/isBuffer\":11,\"_process\":9,\"inherits\":8}]},{},[7])(7)\n});\n"]}