UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

495 lines (494 loc) 25.7 kB
"use strict"; Object.defineProperties(module.exports, { ChangeDetectorJITGenerator: {get: function() { return ChangeDetectorJITGenerator; }}, __esModule: {value: true} }); var $__angular2_47_src_47_facade_47_lang__, $__angular2_47_src_47_facade_47_collection__, $__abstract_95_change_95_detector__, $__change_95_detection_95_util__, $__directive_95_record__, $__proto_95_record__; var $__0 = ($__angular2_47_src_47_facade_47_lang__ = require("angular2/src/facade/lang"), $__angular2_47_src_47_facade_47_lang__ && $__angular2_47_src_47_facade_47_lang__.__esModule && $__angular2_47_src_47_facade_47_lang__ || {default: $__angular2_47_src_47_facade_47_lang__}), isPresent = $__0.isPresent, isBlank = $__0.isBlank, BaseException = $__0.BaseException, Type = $__0.Type; var $__1 = ($__angular2_47_src_47_facade_47_collection__ = require("angular2/src/facade/collection"), $__angular2_47_src_47_facade_47_collection__ && $__angular2_47_src_47_facade_47_collection__.__esModule && $__angular2_47_src_47_facade_47_collection__ || {default: $__angular2_47_src_47_facade_47_collection__}), List = $__1.List, ListWrapper = $__1.ListWrapper, MapWrapper = $__1.MapWrapper, StringMapWrapper = $__1.StringMapWrapper; var AbstractChangeDetector = ($__abstract_95_change_95_detector__ = require("./abstract_change_detector"), $__abstract_95_change_95_detector__ && $__abstract_95_change_95_detector__.__esModule && $__abstract_95_change_95_detector__ || {default: $__abstract_95_change_95_detector__}).AbstractChangeDetector; var ChangeDetectionUtil = ($__change_95_detection_95_util__ = require("./change_detection_util"), $__change_95_detection_95_util__ && $__change_95_detection_95_util__.__esModule && $__change_95_detection_95_util__ || {default: $__change_95_detection_95_util__}).ChangeDetectionUtil; var DirectiveRecord = ($__directive_95_record__ = require("./directive_record"), $__directive_95_record__ && $__directive_95_record__.__esModule && $__directive_95_record__ || {default: $__directive_95_record__}).DirectiveRecord; var $__5 = ($__proto_95_record__ = require("./proto_record"), $__proto_95_record__ && $__proto_95_record__.__esModule && $__proto_95_record__ || {default: $__proto_95_record__}), ProtoRecord = $__5.ProtoRecord, RECORD_TYPE_SELF = $__5.RECORD_TYPE_SELF, RECORD_TYPE_PROPERTY = $__5.RECORD_TYPE_PROPERTY, RECORD_TYPE_LOCAL = $__5.RECORD_TYPE_LOCAL, RECORD_TYPE_INVOKE_METHOD = $__5.RECORD_TYPE_INVOKE_METHOD, RECORD_TYPE_CONST = $__5.RECORD_TYPE_CONST, RECORD_TYPE_INVOKE_CLOSURE = $__5.RECORD_TYPE_INVOKE_CLOSURE, RECORD_TYPE_PRIMITIVE_OP = $__5.RECORD_TYPE_PRIMITIVE_OP, RECORD_TYPE_KEYED_ACCESS = $__5.RECORD_TYPE_KEYED_ACCESS, RECORD_TYPE_PIPE = $__5.RECORD_TYPE_PIPE, RECORD_TYPE_BINDING_PIPE = $__5.RECORD_TYPE_BINDING_PIPE, RECORD_TYPE_INTERPOLATE = $__5.RECORD_TYPE_INTERPOLATE; var ABSTRACT_CHANGE_DETECTOR = "AbstractChangeDetector"; var UTIL = "ChangeDetectionUtil"; var DISPATCHER_ACCESSOR = "this.dispatcher"; var PIPE_REGISTRY_ACCESSOR = "this.pipeRegistry"; var PROTOS_ACCESSOR = "this.protos"; var DIRECTIVES_ACCESSOR = "this.directiveRecords"; var CONTEXT_ACCESSOR = "this.context"; var IS_CHANGED_LOCAL = "isChanged"; var CHANGES_LOCAL = "changes"; var LOCALS_ACCESSOR = "this.locals"; var MODE_ACCESSOR = "this.mode"; var TEMP_LOCAL = "temp"; var CURRENT_PROTO = "currentProto"; function typeTemplate(type, cons, detectChanges, notifyOnAllChangesDone, setContext) { return ("\n" + cons + "\n" + detectChanges + "\n" + notifyOnAllChangesDone + "\n" + setContext + ";\n\nreturn function(dispatcher, pipeRegistry) {\n return new " + type + "(dispatcher, pipeRegistry, protos, directiveRecords);\n}\n"); } Object.defineProperty(typeTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function constructorTemplate(type, fieldsDefinitions) { return ("\nvar " + type + " = function " + type + "(dispatcher, pipeRegistry, protos, directiveRecords) {\n" + ABSTRACT_CHANGE_DETECTOR + ".call(this);\n" + DISPATCHER_ACCESSOR + " = dispatcher;\n" + PIPE_REGISTRY_ACCESSOR + " = pipeRegistry;\n" + PROTOS_ACCESSOR + " = protos;\n" + DIRECTIVES_ACCESSOR + " = directiveRecords;\n" + LOCALS_ACCESSOR + " = null;\n" + fieldsDefinitions + "\n}\n\n" + type + ".prototype = Object.create(" + ABSTRACT_CHANGE_DETECTOR + ".prototype);\n"); } Object.defineProperty(constructorTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function pipeOnDestroyTemplate(pipeNames) { return pipeNames.map((function(p) { return (p + ".onDestroy()"); })).join("\n"); } Object.defineProperty(pipeOnDestroyTemplate, "parameters", {get: function() { return [[List]]; }}); function hydrateTemplate(type, mode, fieldDefinitions, pipeOnDestroy, directiveFieldNames, detectorFieldNames) { var directiveInit = ""; for (var i = 0; i < directiveFieldNames.length; ++i) { directiveInit += (directiveFieldNames[i] + " = directives.getDirectiveFor(this.directiveRecords[" + i + "]);\n"); } var detectorInit = ""; for (var i = 0; i < detectorFieldNames.length; ++i) { detectorInit += (detectorFieldNames[i] + " = directives.getDetectorFor(this.directiveRecords[" + i + "]);\n"); } return ("\n" + type + ".prototype.hydrate = function(context, locals, directives) {\n " + MODE_ACCESSOR + " = \"" + mode + "\";\n " + CONTEXT_ACCESSOR + " = context;\n " + LOCALS_ACCESSOR + " = locals;\n " + directiveInit + "\n " + detectorInit + "\n}\n" + type + ".prototype.dehydrate = function() {\n " + pipeOnDestroy + "\n " + fieldDefinitions + "\n " + LOCALS_ACCESSOR + " = null;\n}\n" + type + ".prototype.hydrated = function() {\n return " + CONTEXT_ACCESSOR + " !== " + UTIL + ".unitialized();\n}\n"); } Object.defineProperty(hydrateTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.genericType(List, String)], [$traceurRuntime.genericType(List, String)]]; }}); function detectChangesTemplate(type, body) { return ("\n" + type + ".prototype.detectChangesInRecords = function(throwOnChange) {\n " + body + "\n}\n"); } Object.defineProperty(detectChangesTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function callOnAllChangesDoneTemplate(type, body) { return ("\n" + type + ".prototype.callOnAllChangesDone = function() {\n " + body + "\n}\n"); } Object.defineProperty(callOnAllChangesDoneTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function onAllChangesDoneTemplate(directive) { return (directive + ".onAllChangesDone();"); } Object.defineProperty(onAllChangesDoneTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string]]; }}); function detectChangesBodyTemplate(localDefinitions, changeDefinitions, records) { return ("\n" + localDefinitions + "\n" + changeDefinitions + "\nvar " + TEMP_LOCAL + ";\nvar " + IS_CHANGED_LOCAL + " = false;\nvar " + CURRENT_PROTO + ";\nvar " + CHANGES_LOCAL + " = null;\n\ncontext = " + CONTEXT_ACCESSOR + ";\n" + records + "\n"); } Object.defineProperty(detectChangesBodyTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function pipeCheckTemplate(protoIndex, context, bindingPropagationConfig, pipe, pipeType, oldValue, newValue, change, update, addToChanges, lastInDirective) { return ("\n" + CURRENT_PROTO + " = " + PROTOS_ACCESSOR + "[" + protoIndex + "];\nif (" + pipe + " === " + UTIL + ".unitialized()) {\n " + pipe + " = " + PIPE_REGISTRY_ACCESSOR + ".get('" + pipeType + "', " + context + ", " + bindingPropagationConfig + ");\n} else if (!" + pipe + ".supports(" + context + ")) {\n " + pipe + ".onDestroy();\n " + pipe + " = " + PIPE_REGISTRY_ACCESSOR + ".get('" + pipeType + "', " + context + ", " + bindingPropagationConfig + ");\n}\n\n" + newValue + " = " + pipe + ".transform(" + context + ");\nif (! " + UTIL + ".noChangeMarker(" + newValue + ")) {\n " + change + " = true;\n " + update + "\n " + addToChanges + "\n " + oldValue + " = " + newValue + ";\n}\n" + lastInDirective + "\n"); } Object.defineProperty(pipeCheckTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.number], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [], [$traceurRuntime.type.string]]; }}); function referenceCheckTemplate(protoIndex, assignment, oldValue, newValue, change, update, addToChanges, lastInDirective) { return ("\n" + CURRENT_PROTO + " = " + PROTOS_ACCESSOR + "[" + protoIndex + "];\n" + assignment + "\nif (" + newValue + " !== " + oldValue + " || (" + newValue + " !== " + newValue + ") && (" + oldValue + " !== " + oldValue + ")) {\n " + change + " = true;\n " + update + "\n " + addToChanges + "\n " + oldValue + " = " + newValue + ";\n}\n" + lastInDirective + "\n"); } Object.defineProperty(referenceCheckTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.number], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function assignmentTemplate(field, value) { return (field + " = " + value + ";"); } Object.defineProperty(assignmentTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function localDefinitionsTemplate(names) { return names.map((function(n) { return ("var " + n + ";"); })).join("\n"); } Object.defineProperty(localDefinitionsTemplate, "parameters", {get: function() { return [[List]]; }}); function changeDefinitionsTemplate(names) { return names.map((function(n) { return ("var " + n + " = false;"); })).join("\n"); } Object.defineProperty(changeDefinitionsTemplate, "parameters", {get: function() { return [[List]]; }}); function fieldDefinitionsTemplate(names) { return names.map((function(n) { return (n + " = " + UTIL + ".unitialized();"); })).join("\n"); } Object.defineProperty(fieldDefinitionsTemplate, "parameters", {get: function() { return [[List]]; }}); function ifChangedGuardTemplate(changeNames, body) { var cond = changeNames.join(" || "); return ("\nif (" + cond + ") {\n " + body + "\n}\n"); } Object.defineProperty(ifChangedGuardTemplate, "parameters", {get: function() { return [[List], [$traceurRuntime.type.string]]; }}); function addToChangesTemplate(oldValue, newValue) { return (CHANGES_LOCAL + " = " + UTIL + ".addChange(" + CHANGES_LOCAL + ", " + CURRENT_PROTO + ".bindingRecord.propertyName, " + UTIL + ".simpleChange(" + oldValue + ", " + newValue + "));"); } Object.defineProperty(addToChangesTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function updateDirectiveTemplate(oldValue, newValue, directiveProperty) { return ("\nif(throwOnChange) " + UTIL + ".throwOnChange(" + CURRENT_PROTO + ", " + UTIL + ".simpleChange(" + oldValue + ", " + newValue + "));\n" + directiveProperty + " = " + newValue + ";\n" + IS_CHANGED_LOCAL + " = true;\n "); } Object.defineProperty(updateDirectiveTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function updateElementTemplate(oldValue, newValue) { return ("\nif(throwOnChange) " + UTIL + ".throwOnChange(" + CURRENT_PROTO + ", " + UTIL + ".simpleChange(" + oldValue + ", " + newValue + "));\n" + DISPATCHER_ACCESSOR + ".notifyOnBinding(" + CURRENT_PROTO + ".bindingRecord, " + newValue + ");\n "); } Object.defineProperty(updateElementTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); function notifyOnChangesTemplate(directive) { return ("\nif(" + CHANGES_LOCAL + ") {\n " + directive + ".onChange(" + CHANGES_LOCAL + ");\n " + CHANGES_LOCAL + " = null;\n}\n"); } Object.defineProperty(notifyOnChangesTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string]]; }}); function notifyOnPushDetectorsTemplate(detector) { return ("\nif(" + IS_CHANGED_LOCAL + ") {\n " + detector + ".markAsCheckOnce();\n}\n"); } Object.defineProperty(notifyOnPushDetectorsTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string]]; }}); function lastInDirectiveTemplate(notifyOnChanges, notifyOnPush) { return ("\n" + notifyOnChanges + "\n" + notifyOnPush + "\n" + IS_CHANGED_LOCAL + " = false;\n"); } Object.defineProperty(lastInDirectiveTemplate, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string]]; }}); var ChangeDetectorJITGenerator = function ChangeDetectorJITGenerator(typeName, changeDetectionStrategy, records, directiveRecords) { this.typeName = typeName; this.changeDetectionStrategy = changeDetectionStrategy; this.records = records; this.directiveRecords = directiveRecords; this.localNames = this.getLocalNames(records); this.changeNames = this.getChangeNames(this.localNames); this.fieldNames = this.getFieldNames(this.localNames); this.pipeNames = this.getPipeNames(this.localNames); }; ($traceurRuntime.createClass)(ChangeDetectorJITGenerator, { getLocalNames: function(records) { var index = 0; var names = records.map((function(r) { var sanitizedName = r.name.replace(new RegExp("\\W", "g"), ''); return ("" + sanitizedName + index++); })); return ["context"].concat(names); }, getChangeNames: function(localNames) { return localNames.map((function(n) { return ("change_" + n); })); }, getFieldNames: function(localNames) { return localNames.map((function(n) { return ("this." + n); })); }, getPipeNames: function(localNames) { return localNames.map((function(n) { return ("this." + n + "_pipe"); })); }, generate: function() { var text = typeTemplate(this.typeName, this.genConstructor(), this.genDetectChanges(), this.genCallOnAllChangesDone(), this.genHydrate()); return new Function('AbstractChangeDetector', 'ChangeDetectionUtil', 'protos', 'directiveRecords', text)(AbstractChangeDetector, ChangeDetectionUtil, this.records, this.directiveRecords); }, genConstructor: function() { return constructorTemplate(this.typeName, this.genFieldDefinitions()); }, genHydrate: function() { var mode = ChangeDetectionUtil.changeDetectionMode(this.changeDetectionStrategy); return hydrateTemplate(this.typeName, mode, this.genFieldDefinitions(), pipeOnDestroyTemplate(this.getNonNullPipeNames()), this.getDirectiveFieldNames(), this.getDetectorFieldNames()); }, getDirectiveFieldNames: function() { var $__6 = this; return this.directiveRecords.map((function(d) { return $__6.getDirective(d); })); }, getDetectorFieldNames: function() { var $__6 = this; return this.directiveRecords.filter((function(r) { return r.isOnPushChangeDetection(); })).map((function(d) { return $__6.getDetector(d); })); }, getDirective: function(d) { return ("this.directive_" + d.name); }, getDetector: function(d) { return ("this.detector_" + d.name); }, genFieldDefinitions: function() { var fields = []; fields = fields.concat(this.fieldNames); fields = fields.concat(this.getNonNullPipeNames()); fields = fields.concat(this.getDirectiveFieldNames()); fields = fields.concat(this.getDetectorFieldNames()); return fieldDefinitionsTemplate(fields); }, getNonNullPipeNames: function() { var $__6 = this; var pipes = []; this.records.forEach((function(r) { if (r.mode === RECORD_TYPE_PIPE || r.mode === RECORD_TYPE_BINDING_PIPE) { pipes.push($__6.pipeNames[r.selfIndex]); } })); return pipes; }, genDetectChanges: function() { var body = this.genDetectChangesBody(); return detectChangesTemplate(this.typeName, body); }, genCallOnAllChangesDone: function() { var notifications = []; var dirs = this.directiveRecords; for (var i = dirs.length - 1; i >= 0; --i) { var dir = dirs[i]; if (dir.callOnAllChangesDone) { var directive = ("this.directive_" + dir.name); notifications.push(onAllChangesDoneTemplate(directive)); } } return callOnAllChangesDoneTemplate(this.typeName, notifications.join(";\n")); }, genDetectChangesBody: function() { var $__6 = this; var rec = this.records.map((function(r) { return $__6.genRecord(r); })).join("\n"); return detectChangesBodyTemplate(this.genLocalDefinitions(), this.genChangeDefinitions(), rec); }, genLocalDefinitions: function() { return localDefinitionsTemplate(this.localNames); }, genChangeDefinitions: function() { return changeDefinitionsTemplate(this.changeNames); }, genRecord: function(r) { if (r.mode === RECORD_TYPE_PIPE || r.mode === RECORD_TYPE_BINDING_PIPE) { return this.genPipeCheck(r); } else { return this.genReferenceCheck(r); } }, genPipeCheck: function(r) { var context = this.localNames[r.contextIndex]; var oldValue = this.fieldNames[r.selfIndex]; var newValue = this.localNames[r.selfIndex]; var change = this.changeNames[r.selfIndex]; var pipe = this.pipeNames[r.selfIndex]; var cdRef = r.mode === RECORD_TYPE_BINDING_PIPE ? "this.ref" : "null"; var update = this.genUpdateDirectiveOrElement(r); var addToChanges = this.genAddToChanges(r); var lastInDirective = this.genLastInDirective(r); return pipeCheckTemplate(r.selfIndex - 1, context, cdRef, pipe, r.name, oldValue, newValue, change, update, addToChanges, lastInDirective); }, genReferenceCheck: function(r) { var oldValue = this.fieldNames[r.selfIndex]; var newValue = this.localNames[r.selfIndex]; var change = this.changeNames[r.selfIndex]; var assignment = this.genUpdateCurrentValue(r); var update = this.genUpdateDirectiveOrElement(r); var addToChanges = this.genAddToChanges(r); var lastInDirective = this.genLastInDirective(r); var check = referenceCheckTemplate(r.selfIndex - 1, assignment, oldValue, newValue, change, update, addToChanges, lastInDirective); if (r.isPureFunction()) { return this.ifChangedGuard(r, check); } else { return check; } }, genUpdateCurrentValue: function(r) { var context = this.localNames[r.contextIndex]; var newValue = this.localNames[r.selfIndex]; var args = this.genArgs(r); switch (r.mode) { case RECORD_TYPE_SELF: return assignmentTemplate(newValue, context); case RECORD_TYPE_CONST: return (newValue + " = " + this.genLiteral(r.funcOrValue)); case RECORD_TYPE_PROPERTY: return assignmentTemplate(newValue, (context + "." + r.name)); case RECORD_TYPE_LOCAL: return assignmentTemplate(newValue, (LOCALS_ACCESSOR + ".get('" + r.name + "')")); case RECORD_TYPE_INVOKE_METHOD: return assignmentTemplate(newValue, (context + "." + r.name + "(" + args + ")")); case RECORD_TYPE_INVOKE_CLOSURE: return assignmentTemplate(newValue, (context + "(" + args + ")")); case RECORD_TYPE_PRIMITIVE_OP: return assignmentTemplate(newValue, (UTIL + "." + r.name + "(" + args + ")")); case RECORD_TYPE_INTERPOLATE: return assignmentTemplate(newValue, this.genInterpolation(r)); case RECORD_TYPE_KEYED_ACCESS: var key = this.localNames[r.args[0]]; return assignmentTemplate(newValue, (context + "[" + key + "]")); default: throw new BaseException(("Unknown operation " + r.mode)); } }, ifChangedGuard: function(r, body) { var $__6 = this; return ifChangedGuardTemplate(r.args.map((function(a) { return $__6.changeNames[a]; })), body); }, genInterpolation: function(r) { var res = ""; for (var i = 0; i < r.args.length; ++i) { res += this.genLiteral(r.fixedArgs[i]); res += " + "; res += this.localNames[r.args[i]]; res += " + "; } res += this.genLiteral(r.fixedArgs[r.args.length]); return res; }, genLiteral: function(value) { return JSON.stringify(value); }, genUpdateDirectiveOrElement: function(r) { if (!r.lastInBinding) return ""; var newValue = this.localNames[r.selfIndex]; var oldValue = this.fieldNames[r.selfIndex]; var br = r.bindingRecord; if (br.isDirective()) { var directiveProperty = (this.getDirective(br.directiveRecord) + "." + br.propertyName); return updateDirectiveTemplate(oldValue, newValue, directiveProperty); } else { return updateElementTemplate(oldValue, newValue); } }, genAddToChanges: function(r) { var newValue = this.localNames[r.selfIndex]; var oldValue = this.fieldNames[r.selfIndex]; return r.bindingRecord.callOnChange() ? addToChangesTemplate(oldValue, newValue) : ""; }, genLastInDirective: function(r) { var onChanges = this.genNotifyOnChanges(r); var onPush = this.genNotifyOnPushDetectors(r); return lastInDirectiveTemplate(onChanges, onPush); }, genNotifyOnChanges: function(r) { var br = r.bindingRecord; if (r.lastInDirective && br.callOnChange()) { return notifyOnChangesTemplate(this.getDirective(br.directiveRecord)); } else { return ""; } }, genNotifyOnPushDetectors: function(r) { var br = r.bindingRecord; if (r.lastInDirective && br.isOnPushChangeDetection()) { return notifyOnPushDetectorsTemplate(this.getDetector(br.directiveRecord)); } else { return ""; } }, genArgs: function(r) { var $__6 = this; return r.args.map((function(arg) { return $__6.localNames[arg]; })).join(", "); } }, {}); Object.defineProperty(ChangeDetectorJITGenerator, "parameters", {get: function() { return [[$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.genericType(List, ProtoRecord)], [List]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.getLocalNames, "parameters", {get: function() { return [[$traceurRuntime.genericType(List, ProtoRecord)]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.getChangeNames, "parameters", {get: function() { return [[$traceurRuntime.genericType(List, $traceurRuntime.type.string)]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.getFieldNames, "parameters", {get: function() { return [[$traceurRuntime.genericType(List, $traceurRuntime.type.string)]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.getPipeNames, "parameters", {get: function() { return [[$traceurRuntime.genericType(List, $traceurRuntime.type.string)]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.getDirective, "parameters", {get: function() { return [[DirectiveRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.getDetector, "parameters", {get: function() { return [[DirectiveRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genRecord, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genPipeCheck, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genReferenceCheck, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genUpdateCurrentValue, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.ifChangedGuard, "parameters", {get: function() { return [[ProtoRecord], [$traceurRuntime.type.string]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genInterpolation, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genUpdateDirectiveOrElement, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genAddToChanges, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genLastInDirective, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genNotifyOnChanges, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genNotifyOnPushDetectors, "parameters", {get: function() { return [[ProtoRecord]]; }}); Object.defineProperty(ChangeDetectorJITGenerator.prototype.genArgs, "parameters", {get: function() { return [[ProtoRecord]]; }}); //# sourceMappingURL=change_detection_jit_generator.es6.map //# sourceMappingURL=./change_detection_jit_generator.map