angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 44.9 kB
Source Map (JSON)
{"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"]}