UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 38.5 kB
{"version":3,"sources":["change_detection_jit_generator.es6"],"names":[],"mappings":"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","file":"angular2/src/change_detection/change_detection_jit_generator.es6","sourcesContent":["import {isPresent, isBlank, BaseException, Type} from 'angular2/src/facade/lang';\nimport {List, ListWrapper, MapWrapper, StringMapWrapper} from 'angular2/src/facade/collection';\n\nimport {AbstractChangeDetector} from './abstract_change_detector';\nimport {ChangeDetectionUtil} from './change_detection_util';\nimport {DirectiveRecord} from './directive_record';\n\nimport {\n ProtoRecord,\n RECORD_TYPE_SELF,\n RECORD_TYPE_PROPERTY,\n RECORD_TYPE_LOCAL,\n RECORD_TYPE_INVOKE_METHOD,\n RECORD_TYPE_CONST,\n RECORD_TYPE_INVOKE_CLOSURE,\n RECORD_TYPE_PRIMITIVE_OP,\n RECORD_TYPE_KEYED_ACCESS,\n RECORD_TYPE_PIPE,\n RECORD_TYPE_BINDING_PIPE,\n RECORD_TYPE_INTERPOLATE\n } from './proto_record';\n\n/**\n * The code generator takes a list of proto records and creates a function/class\n * that \"emulates\" what the developer would write by hand to implement the same\n * kind of behaviour.\n *\n * The implementation comprises two parts:\n * * ChangeDetectorJITGenerator has the logic of how everything fits together.\n * * template functions (e.g., constructorTemplate) define what code is generated.\n*/\nvar ABSTRACT_CHANGE_DETECTOR = \"AbstractChangeDetector\";\nvar UTIL = \"ChangeDetectionUtil\";\nvar DISPATCHER_ACCESSOR = \"this.dispatcher\";\nvar PIPE_REGISTRY_ACCESSOR = \"this.pipeRegistry\";\nvar PROTOS_ACCESSOR = \"this.protos\";\nvar DIRECTIVES_ACCESSOR = \"this.directiveRecords\";\nvar CONTEXT_ACCESSOR = \"this.context\";\nvar IS_CHANGED_LOCAL = \"isChanged\";\nvar CHANGES_LOCAL = \"changes\";\nvar LOCALS_ACCESSOR = \"this.locals\";\nvar MODE_ACCESSOR = \"this.mode\";\nvar TEMP_LOCAL = \"temp\";\nvar CURRENT_PROTO = \"currentProto\";\n\nfunction typeTemplate(type:string, cons:string, detectChanges:string,\n notifyOnAllChangesDone:string, setContext:string):string {\n return `\n${cons}\n${detectChanges}\n${notifyOnAllChangesDone}\n${setContext};\n\nreturn function(dispatcher, pipeRegistry) {\n return new ${type}(dispatcher, pipeRegistry, protos, directiveRecords);\n}\n`;\n}\n\nfunction constructorTemplate(type:string, fieldsDefinitions:string):string {\n 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`;\n}\n\nfunction pipeOnDestroyTemplate(pipeNames:List) {\n return pipeNames.map((p) => `${p}.onDestroy()`).join(\"\\n\");\n}\n\nfunction hydrateTemplate(type:string, mode:string, fieldDefinitions:string, pipeOnDestroy:string,\n directiveFieldNames:List<String>, detectorFieldNames:List<String>):string {\n var directiveInit = \"\";\n for(var i = 0; i < directiveFieldNames.length; ++i) {\n directiveInit += `${directiveFieldNames[i]} = directives.getDirectiveFor(this.directiveRecords[${i}]);\\n`;\n }\n\n var detectorInit = \"\";\n for(var i = 0; i < detectorFieldNames.length; ++i) {\n detectorInit += `${detectorFieldNames[i]} = directives.getDetectorFor(this.directiveRecords[${i}]);\\n`;\n }\n\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`;\n}\n\nfunction detectChangesTemplate(type:string, body:string):string {\n return `\n${type}.prototype.detectChangesInRecords = function(throwOnChange) {\n ${body}\n}\n`;\n}\n\nfunction callOnAllChangesDoneTemplate(type:string, body:string):string {\n return `\n${type}.prototype.callOnAllChangesDone = function() {\n ${body}\n}\n`;\n}\n\nfunction onAllChangesDoneTemplate(directive:string):string {\n return `${directive}.onAllChangesDone();`;\n}\n\n\nfunction detectChangesBodyTemplate(localDefinitions:string, changeDefinitions:string, records:string):string {\n 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`;\n}\n\nfunction pipeCheckTemplate(protoIndex:number, context:string, bindingPropagationConfig:string, pipe:string, pipeType:string,\n oldValue:string, newValue:string, change:string, update:string,\n addToChanges, lastInDirective:string):string{\n 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`;\n}\n\nfunction referenceCheckTemplate(protoIndex:number, assignment:string, oldValue:string, newValue:string, change:string,\n update:string, addToChanges:string, lastInDirective:string):string {\n 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`;\n}\n\nfunction assignmentTemplate(field:string, value:string) {\n return `${field} = ${value};`;\n}\n\nfunction localDefinitionsTemplate(names:List):string {\n return names.map((n) => `var ${n};`).join(\"\\n\");\n}\n\nfunction changeDefinitionsTemplate(names:List):string {\n return names.map((n) => `var ${n} = false;`).join(\"\\n\");\n}\n\nfunction fieldDefinitionsTemplate(names:List):string {\n return names.map((n) => `${n} = ${UTIL}.unitialized();`).join(\"\\n\");\n}\n\nfunction ifChangedGuardTemplate(changeNames:List, body:string):string {\n var cond = changeNames.join(\" || \");\n return `\nif (${cond}) {\n ${body}\n}\n`;\n}\n\nfunction addToChangesTemplate(oldValue:string, newValue:string):string {\n return `${CHANGES_LOCAL} = ${UTIL}.addChange(${CHANGES_LOCAL}, ${CURRENT_PROTO}.bindingRecord.propertyName, ${UTIL}.simpleChange(${oldValue}, ${newValue}));`;\n}\n\nfunction updateDirectiveTemplate(oldValue:string, newValue:string, directiveProperty:string):string {\n return `\nif(throwOnChange) ${UTIL}.throwOnChange(${CURRENT_PROTO}, ${UTIL}.simpleChange(${oldValue}, ${newValue}));\n${directiveProperty} = ${newValue};\n${IS_CHANGED_LOCAL} = true;\n `;\n}\n\nfunction updateElementTemplate(oldValue:string, newValue:string):string {\n return `\nif(throwOnChange) ${UTIL}.throwOnChange(${CURRENT_PROTO}, ${UTIL}.simpleChange(${oldValue}, ${newValue}));\n${DISPATCHER_ACCESSOR}.notifyOnBinding(${CURRENT_PROTO}.bindingRecord, ${newValue});\n `;\n}\n\nfunction notifyOnChangesTemplate(directive:string):string{\n return `\nif(${CHANGES_LOCAL}) {\n ${directive}.onChange(${CHANGES_LOCAL});\n ${CHANGES_LOCAL} = null;\n}\n`;\n}\n\nfunction notifyOnPushDetectorsTemplate(detector:string):string{\n return `\nif(${IS_CHANGED_LOCAL}) {\n ${detector}.markAsCheckOnce();\n}\n`;\n}\n\nfunction lastInDirectiveTemplate(notifyOnChanges:string, notifyOnPush:string):string{\n return `\n${notifyOnChanges}\n${notifyOnPush}\n${IS_CHANGED_LOCAL} = false;\n`;\n}\n\n\nexport class ChangeDetectorJITGenerator {\n typeName:string;\n records:List<ProtoRecord>;\n directiveRecords:List;\n localNames:List<string>;\n changeNames:List<string>;\n fieldNames:List<string>;\n pipeNames:List<string>;\n changeDetectionStrategy:stirng;\n\n constructor(typeName:string, changeDetectionStrategy:string, records:List<ProtoRecord>, directiveRecords:List) {\n this.typeName = typeName;\n this.changeDetectionStrategy = changeDetectionStrategy;\n this.records = records;\n this.directiveRecords = directiveRecords;\n\n this.localNames = this.getLocalNames(records);\n this.changeNames = this.getChangeNames(this.localNames);\n this.fieldNames = this.getFieldNames(this.localNames);\n this.pipeNames = this.getPipeNames(this.localNames);\n }\n\n getLocalNames(records:List<ProtoRecord>):List<string> {\n var index = 0;\n var names = records.map((r) => {\n var sanitizedName = r.name.replace(new RegExp(\"\\\\W\", \"g\"), '');\n return `${sanitizedName}${index++}`\n });\n return [\"context\"].concat(names);\n }\n\n getChangeNames(localNames:List<string>):List<string> {\n return localNames.map((n) => `change_${n}`);\n }\n\n getFieldNames(localNames:List<string>):List<string> {\n return localNames.map((n) => `this.${n}`);\n }\n\n getPipeNames(localNames:List<string>):List<string> {\n return localNames.map((n) => `this.${n}_pipe`);\n }\n\n generate():Function {\n var text = typeTemplate(this.typeName, this.genConstructor(), this.genDetectChanges(),\n this.genCallOnAllChangesDone(), this.genHydrate());\n return new Function('AbstractChangeDetector', 'ChangeDetectionUtil', 'protos', 'directiveRecords', text)\n (AbstractChangeDetector, ChangeDetectionUtil, this.records, this.directiveRecords);\n }\n\n genConstructor():string {\n return constructorTemplate(this.typeName, this.genFieldDefinitions());\n }\n\n genHydrate():string {\n var mode = ChangeDetectionUtil.changeDetectionMode(this.changeDetectionStrategy);\n return hydrateTemplate(this.typeName, mode, this.genFieldDefinitions(),\n pipeOnDestroyTemplate(this.getNonNullPipeNames()),\n this.getDirectiveFieldNames(), this.getDetectorFieldNames());\n }\n\n getDirectiveFieldNames():List<string> {\n return this.directiveRecords.map((d) => this.getDirective(d));\n }\n\n getDetectorFieldNames():List<string> {\n return this.directiveRecords.filter(r => r.isOnPushChangeDetection()).map((d) => this.getDetector(d));\n }\n\n getDirective(d:DirectiveRecord) {\n return `this.directive_${d.name}`;\n }\n\n getDetector(d:DirectiveRecord) {\n return `this.detector_${d.name}`;\n }\n\n genFieldDefinitions() {\n var fields = [];\n fields = fields.concat(this.fieldNames);\n fields = fields.concat(this.getNonNullPipeNames());\n fields = fields.concat(this.getDirectiveFieldNames());\n fields = fields.concat(this.getDetectorFieldNames());\n return fieldDefinitionsTemplate(fields);\n }\n\n getNonNullPipeNames():List<string> {\n var pipes = [];\n this.records.forEach((r) => {\n if (r.mode === RECORD_TYPE_PIPE || r.mode === RECORD_TYPE_BINDING_PIPE) {\n pipes.push(this.pipeNames[r.selfIndex]);\n }\n });\n return pipes;\n }\n\n genDetectChanges():string {\n var body = this.genDetectChangesBody();\n return detectChangesTemplate(this.typeName, body);\n }\n\n genCallOnAllChangesDone():string {\n var notifications = [];\n var dirs = this.directiveRecords;\n\n for (var i = dirs.length - 1; i >= 0; --i) {\n var dir = dirs[i];\n if (dir.callOnAllChangesDone) {\n var directive = `this.directive_${dir.name}`;\n notifications.push(onAllChangesDoneTemplate(directive));\n }\n }\n\n return callOnAllChangesDoneTemplate(this.typeName, notifications.join(\";\\n\"));\n }\n\n genDetectChangesBody():string {\n var rec = this.records.map((r) => this.genRecord(r)).join(\"\\n\");\n return detectChangesBodyTemplate(this.genLocalDefinitions(), this.genChangeDefinitions(), rec);\n }\n\n genLocalDefinitions():string {\n return localDefinitionsTemplate(this.localNames);\n }\n\n genChangeDefinitions():string {\n return changeDefinitionsTemplate(this.changeNames);\n }\n\n genRecord(r:ProtoRecord):string {\n if (r.mode === RECORD_TYPE_PIPE || r.mode === RECORD_TYPE_BINDING_PIPE) {\n return this.genPipeCheck (r);\n } else {\n return this.genReferenceCheck(r);\n }\n }\n\n genPipeCheck(r:ProtoRecord):string {\n var context = this.localNames[r.contextIndex];\n var oldValue = this.fieldNames[r.selfIndex];\n var newValue = this.localNames[r.selfIndex];\n var change = this.changeNames[r.selfIndex];\n\n var pipe = this.pipeNames[r.selfIndex];\n var cdRef = r.mode === RECORD_TYPE_BINDING_PIPE ? \"this.ref\" : \"null\";\n\n var update = this.genUpdateDirectiveOrElement(r);\n var addToChanges = this.genAddToChanges(r);\n var lastInDirective = this.genLastInDirective(r);\n\n return pipeCheckTemplate(r.selfIndex - 1, context, cdRef, pipe, r.name, oldValue, newValue, change,\n update, addToChanges, lastInDirective);\n }\n\n genReferenceCheck(r:ProtoRecord):string {\n var oldValue = this.fieldNames[r.selfIndex];\n var newValue = this.localNames[r.selfIndex];\n var change = this.changeNames[r.selfIndex];\n var assignment = this.genUpdateCurrentValue(r);\n\n var update = this.genUpdateDirectiveOrElement(r);\n var addToChanges = this.genAddToChanges(r);\n var lastInDirective = this.genLastInDirective(r);\n\n var check = referenceCheckTemplate(r.selfIndex - 1, assignment, oldValue, newValue, change,\n update, addToChanges, lastInDirective);\n if (r.isPureFunction()) {\n return this.ifChangedGuard(r, check);\n } else {\n return check;\n }\n }\n\n genUpdateCurrentValue(r:ProtoRecord):string {\n var context = this.localNames[r.contextIndex];\n var newValue = this.localNames[r.selfIndex];\n var args = this.genArgs(r);\n\n switch (r.mode) {\n case RECORD_TYPE_SELF:\n return assignmentTemplate(newValue, context);\n\n case RECORD_TYPE_CONST:\n return `${newValue} = ${this.genLiteral(r.funcOrValue)}`;\n\n case RECORD_TYPE_PROPERTY:\n return assignmentTemplate(newValue, `${context}.${r.name}`);\n\n case RECORD_TYPE_LOCAL:\n return assignmentTemplate(newValue, `${LOCALS_ACCESSOR}.get('${r.name}')`);\n\n case RECORD_TYPE_INVOKE_METHOD:\n return assignmentTemplate(newValue, `${context}.${r.name}(${args})`);\n\n case RECORD_TYPE_INVOKE_CLOSURE:\n return assignmentTemplate(newValue, `${context}(${args})`);\n\n case RECORD_TYPE_PRIMITIVE_OP:\n return assignmentTemplate(newValue, `${UTIL}.${r.name}(${args})`);\n\n case RECORD_TYPE_INTERPOLATE:\n return assignmentTemplate(newValue, this.genInterpolation(r));\n\n case RECORD_TYPE_KEYED_ACCESS:\n var key = this.localNames[r.args[0]];\n return assignmentTemplate(newValue, `${context}[${key}]`);\n\n default:\n throw new BaseException(`Unknown operation ${r.mode}`);\n }\n }\n\n ifChangedGuard(r:ProtoRecord, body:string):string {\n return ifChangedGuardTemplate(r.args.map((a) => this.changeNames[a]), body);\n }\n\n genInterpolation(r:ProtoRecord):string{\n var res = \"\";\n for (var i = 0; i < r.args.length; ++i) {\n res += this.genLiteral(r.fixedArgs[i]);\n res += \" + \";\n res += this.localNames[r.args[i]];\n res += \" + \";\n }\n res += this.genLiteral(r.fixedArgs[r.args.length]);\n return res;\n }\n\n genLiteral(value):string {\n return JSON.stringify(value);\n }\n\n genUpdateDirectiveOrElement(r:ProtoRecord):string {\n if (! r.lastInBinding) return \"\";\n\n var newValue = this.localNames[r.selfIndex];\n var oldValue = this.fieldNames[r.selfIndex];\n\n var br = r.bindingRecord;\n if (br.isDirective()) {\n var directiveProperty = `${this.getDirective(br.directiveRecord)}.${br.propertyName}`;\n return updateDirectiveTemplate(oldValue, newValue, directiveProperty);\n } else {\n return updateElementTemplate(oldValue, newValue);\n }\n }\n\n genAddToChanges(r:ProtoRecord):string {\n var newValue = this.localNames[r.selfIndex];\n var oldValue = this.fieldNames[r.selfIndex];\n return r.bindingRecord.callOnChange() ? addToChangesTemplate(oldValue, newValue) : \"\";\n }\n\n genLastInDirective(r:ProtoRecord):string{\n var onChanges = this.genNotifyOnChanges(r);\n var onPush = this.genNotifyOnPushDetectors(r);\n return lastInDirectiveTemplate(onChanges, onPush);\n }\n\n genNotifyOnChanges(r:ProtoRecord):string{\n var br = r.bindingRecord;\n if (r.lastInDirective && br.callOnChange()) {\n return notifyOnChangesTemplate(this.getDirective(br.directiveRecord));\n } else {\n return \"\";\n }\n }\n\n genNotifyOnPushDetectors(r:ProtoRecord):string{\n var br = r.bindingRecord;\n if (r.lastInDirective && br.isOnPushChangeDetection()) {\n return notifyOnPushDetectorsTemplate(this.getDetector(br.directiveRecord));\n } else {\n return \"\";\n }\n }\n\n genArgs(r:ProtoRecord):string {\n return r.args.map((arg) => this.localNames[arg]).join(\", \");\n }\n}\n\n\n\n\n"]}