UNPKG

8.55 kBSource Map (JSON)View Raw
1{"version":3,"sources":["CallExpression.ion"],"names":["ion","DynamicExpression","ArrayExpression","Factory","args","activate",{"type":"Identifier","name":"activate","loc":{"start":{"line":8,"column":8,"fixed":true,"source":"ion/runtime/CallExpression.ion"},"end":{"line":8,"column":16,"fixed":true,"source":"ion/runtime/CallExpression.ion"}}},"calleeExpression","context","createRuntime","callee","watch","calleeWatcher","value","isActive","existential","loc","start","source","console","warn","toCode","line","column","calleeValue","thisArg","objectExpression","unobserve","thisarg","thisObserver","template","deep","Array","isArray","patch","evaluate","observe","argumentExpressions","type","elements","arguments","observeElements","argumentWatcher","argumentsValue","deactivate","unwatch","templateWatcher","_evaluateInternal","apply","setValue","bind","create","DEBUG","e","error","stack","CallExpression","properties","module","exports"],"mappings":"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","sourcesContent":["const\n ion = import '../'\n {DynamicExpression,ArrayExpression,Factory} = import './'\n\nmodule.exports = class CallExpression extends DynamicExpression\n properties:\n args: null\n activate: ->\n super\n @calleeExpression ?= @context.createRuntime(@callee)\n @calleeExpression.watch(\n @calleeWatcher ?= (value) =>\n if @isActive and not value? and not @existential and @loc?.start.source?\n # we need to throw an exception here with location info\n console.warn(\"Function is {{value}} ({{Factory.toCode(@callee)}}) ({{@loc.start.source}}:{{@loc.start.line}}:{{@loc.start.column + 1}})\")\n\n @calleeValue = value\n # get thisArg and watch for changes\n let thisArg = @calleeExpression.objectExpression?.value\n if thisArg isnt @thisArg\n ion.unobserve(@thisarg, @thisObserver)\n @thisArg = thisArg\n if not @calleeValue?.template # we don't need to watch the thisArg if the callee is a template\n let deep = Array.isArray(thisArg)\n if deep\n # console.log('deep watch man-------------------------', thisArg, @calleeValue)\n # deep watch\n ion.patch.watch(\n thisArg\n @thisObserver ?= (patch) =>\n # console.log('deep change', patch)\n @evaluate()\n )\n else\n # shallow observe\n ion.observe(\n thisArg\n @thisObserver ?= =>\n @evaluate()\n )\n @evaluate()\n )\n @argumentExpressions ?= @context.createRuntime({type:'ArrayExpression',elements:@arguments, observeElements:not @calleeValue?.template})\n @argumentExpressions.watch(\n @argumentWatcher ?= (value) =>\n @argumentsValue = value\n @evaluate()\n )\n deactivate: ->\n super\n @calleeExpression.unwatch(@calleeWatcher)\n @argumentExpressions.unwatch(@argumentWatcher)\n if @template?\n @template.unwatch(@templateWatcher)\n delete @template\n _evaluateInternal: ->\n if not (@isActive and @calleeValue? and @argumentsValue?)\n return\n let value = undefined\n if @calleeValue.template\n if @template?\n @template.unwatch(@templateWatcher)\n # always use new on templates\n @template = @calleeValue.apply(@thisArg, @argumentsValue)\n @template.watch(@templateWatcher ?= @setValue.bind(@))\n else\n if @type is 'NewExpression'\n # create a new with variable args\n value = ion.create(@calleeValue, @argumentsValue)\n else # @type is 'CallExpression'\n value = @calleeValue.apply(@thisArg, @argumentsValue)\n @setValue(value)\n if DEBUG\n evaluate: ->\n try\n @_evaluateInternal()\n catch e\n # if we don't catch the errors, they might not be logged when occuring in an Object.observe callback\n console.error(e.stack ? e)\n else\n evaluate: -> @_evaluateInternal()\n"]}
\No newline at end of file