refactor(benchmarks): make ftl benchmarks use their own version of checkBinding
				
					
				
			This commit is contained in:
		
							parent
							
								
									50e5cb15dd
								
							
						
					
					
						commit
						8ed92d75b0
					
				| @ -7,6 +7,9 @@ | |||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| import {ComponentFactory, ComponentRef, ElementRef, Injector, TemplateRef, ViewContainerRef, ViewRef} from '@angular/core'; | import {ComponentFactory, ComponentRef, ElementRef, Injector, TemplateRef, ViewContainerRef, ViewRef} from '@angular/core'; | ||||||
|  | import {devModeEqual, looseIdentical} from '@angular/core/src/change_detection/change_detection_util'; | ||||||
|  | import {ExpressionChangedAfterItHasBeenCheckedError} from '@angular/core/src/linker/errors'; | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| export function unimplemented(): any { | export function unimplemented(): any { | ||||||
|   throw new Error('unimplemented'); |   throw new Error('unimplemented'); | ||||||
| @ -205,3 +208,14 @@ export function createAnchorAndAppend(parent: any) { | |||||||
|   parent.appendChild(txt); |   parent.appendChild(txt); | ||||||
|   return txt; |   return txt; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export function checkBinding(throwOnChange: boolean, oldValue: any, newValue: any): boolean { | ||||||
|  |   if (throwOnChange) { | ||||||
|  |     if (!devModeEqual(oldValue, newValue)) { | ||||||
|  |       throw new ExpressionChangedAfterItHasBeenCheckedError(oldValue, newValue, false); | ||||||
|  |     } | ||||||
|  |     return false; | ||||||
|  |   } else { | ||||||
|  |     return !looseIdentical(oldValue, newValue); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -2,17 +2,17 @@ import {NgIf} from '@angular/common'; | |||||||
| import {TemplateRef, ViewContainerRef} from '@angular/core'; | import {TemplateRef, ViewContainerRef} from '@angular/core'; | ||||||
| import * as import7 from '@angular/core/src/change_detection/change_detection'; | import * as import7 from '@angular/core/src/change_detection/change_detection'; | ||||||
| import * as import4 from '@angular/core/src/linker/view_utils'; | import * as import4 from '@angular/core/src/linker/view_utils'; | ||||||
|  | import {checkBinding} from './ftl_util'; | ||||||
| 
 | 
 | ||||||
| export class NgIfWrapper { | export class NgIfWrapper { | ||||||
|   directive: NgIf; |   directive: NgIf; | ||||||
|   _expr_0: any; |   _expr_0: any; | ||||||
|   constructor(viewContainerRef: ViewContainerRef, templateRef: TemplateRef<any>) { |   constructor(viewContainerRef: ViewContainerRef, templateRef: TemplateRef<any>) { | ||||||
|     this.directive = new NgIf(viewContainerRef, templateRef); |     this.directive = new NgIf(viewContainerRef, templateRef); | ||||||
|     this._expr_0 = import7.UNINITIALIZED; |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   updateNgIf(throwOnChange: boolean, currVal: any) { |   updateNgIf(throwOnChange: boolean, currVal: any) { | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_0, currVal)) { |     if (checkBinding(throwOnChange, this._expr_0, currVal)) { | ||||||
|       this.directive.ngIf = currVal; |       this.directive.ngIf = currVal; | ||||||
|       this._expr_0 = currVal; |       this._expr_0 = currVal; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ import * as import8 from '@angular/core/src/metadata/view'; | |||||||
| import * as import0 from '@angular/core/src/render/api'; | import * as import0 from '@angular/core/src/render/api'; | ||||||
| import * as import12 from '@angular/core/src/security'; | import * as import12 from '@angular/core/src/security'; | ||||||
| 
 | 
 | ||||||
| import {FtlEmbeddedView, FtlTemplateRef, FtlView, FtlViewContainerRef, createAnchorAndAppend, createElementAndAppend, createTextAndAppend} from './ftl_util'; | import {FtlEmbeddedView, FtlTemplateRef, FtlView, FtlViewContainerRef, checkBinding, createAnchorAndAppend, createElementAndAppend, createTextAndAppend} from './ftl_util'; | ||||||
| import {NgIfWrapper} from './ng_if.ngfactory'; | import {NgIfWrapper} from './ng_if.ngfactory'; | ||||||
| import * as import3 from './tree'; | import * as import3 from './tree'; | ||||||
| 
 | 
 | ||||||
| @ -50,9 +50,8 @@ export class _View_TreeComponent0 implements FtlView<import3.TreeComponent> { | |||||||
|     this._TemplateRef_3_5 = new FtlTemplateRef(3, this); |     this._TemplateRef_3_5 = new FtlTemplateRef(3, this); | ||||||
|     this._vc_3 = new FtlViewContainerRef(this._anchor_3); |     this._vc_3 = new FtlViewContainerRef(this._anchor_3); | ||||||
|     this._NgIf_3_6 = new NgIfWrapper(this._vc_3, this._TemplateRef_3_5); |     this._NgIf_3_6 = new NgIfWrapper(this._vc_3, this._TemplateRef_3_5); | ||||||
|     this._expr_0 = import7.UNINITIALIZED; |     this._expr_0 = undefined; | ||||||
|     this._expr_1 = import7.UNINITIALIZED; |     this._expr_1 = undefined; | ||||||
|     this._expr_2 = import7.UNINITIALIZED; |  | ||||||
|   } |   } | ||||||
|   detectChangesInternal(throwOnChange: boolean): void { |   detectChangesInternal(throwOnChange: boolean): void { | ||||||
|     this._NgIf_2_6.updateNgIf(throwOnChange, (this.context.data.right != (null as any))); |     this._NgIf_2_6.updateNgIf(throwOnChange, (this.context.data.right != (null as any))); | ||||||
| @ -60,12 +59,12 @@ export class _View_TreeComponent0 implements FtlView<import3.TreeComponent> { | |||||||
|     this._vc_2.detectChangesInternal(throwOnChange); |     this._vc_2.detectChangesInternal(throwOnChange); | ||||||
|     this._vc_3.detectChangesInternal(throwOnChange); |     this._vc_3.detectChangesInternal(throwOnChange); | ||||||
|     const currVal_0: any = ((this.context.data.depth % 2) ? '' : 'grey'); |     const currVal_0: any = ((this.context.data.depth % 2) ? '' : 'grey'); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_0, currVal_0)) { |     if (checkBinding(throwOnChange, this._expr_0, currVal_0)) { | ||||||
|       this._el_0.style.backgroundColor = currVal_0; |       this._el_0.style.backgroundColor = currVal_0; | ||||||
|       this._expr_0 = currVal_0; |       this._expr_0 = currVal_0; | ||||||
|     } |     } | ||||||
|     const currVal_1: any = import4.inlineInterpolate(1, ' ', this.context.data.value, ' '); |     const currVal_1: any = import4.inlineInterpolate(1, ' ', this.context.data.value, ' '); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_1, currVal_1)) { |     if (checkBinding(throwOnChange, this._expr_1, currVal_1)) { | ||||||
|       this._text_1.nodeValue = currVal_1; |       this._text_1.nodeValue = currVal_1; | ||||||
|       this._expr_1 = currVal_1; |       this._expr_1 = currVal_1; | ||||||
|     } |     } | ||||||
| @ -75,7 +74,7 @@ export class _View_TreeComponent0 implements FtlView<import3.TreeComponent> { | |||||||
|     this._vc_3.destroyInternal(); |     this._vc_3.destroyInternal(); | ||||||
|   } |   } | ||||||
|   updateData(throwOnChange: boolean, currVal: any) { |   updateData(throwOnChange: boolean, currVal: any) { | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_2, currVal)) { |     if (checkBinding(throwOnChange, this._expr_2, currVal)) { | ||||||
|       this.context.data = currVal; |       this.context.data = currVal; | ||||||
|       this._expr_2 = currVal; |       this._expr_2 = currVal; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -5,6 +5,8 @@ | |||||||
|  * Use of this source code is governed by an MIT-style license that can be |  * Use of this source code is governed by an MIT-style license that can be | ||||||
|  * found in the LICENSE file at https://angular.io/license
 |  * found in the LICENSE file at https://angular.io/license
 | ||||||
|  */ |  */ | ||||||
|  | import {devModeEqual, looseIdentical} from '@angular/core/src/change_detection/change_detection_util'; | ||||||
|  | import {ExpressionChangedAfterItHasBeenCheckedError} from '@angular/core/src/linker/errors'; | ||||||
| 
 | 
 | ||||||
| export function createElementAndAppend(parent: any, name: string) { | export function createElementAndAppend(parent: any, name: string) { | ||||||
|   const el = document.createElement(name); |   const el = document.createElement(name); | ||||||
| @ -23,3 +25,14 @@ export function createAnchorAndAppend(parent: any) { | |||||||
|   parent.appendChild(txt); |   parent.appendChild(txt); | ||||||
|   return txt; |   return txt; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export function checkBinding(throwOnChange: boolean, oldValue: any, newValue: any): boolean { | ||||||
|  |   if (throwOnChange) { | ||||||
|  |     if (!devModeEqual(oldValue, newValue)) { | ||||||
|  |       throw new ExpressionChangedAfterItHasBeenCheckedError(oldValue, newValue, false); | ||||||
|  |     } | ||||||
|  |     return false; | ||||||
|  |   } else { | ||||||
|  |     return !looseIdentical(oldValue, newValue); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -16,7 +16,7 @@ import * as import8 from '@angular/core/src/metadata/view'; | |||||||
| import * as import0 from '@angular/core/src/render/api'; | import * as import0 from '@angular/core/src/render/api'; | ||||||
| import * as import12 from '@angular/core/src/security'; | import * as import12 from '@angular/core/src/security'; | ||||||
| 
 | 
 | ||||||
| import {createAnchorAndAppend, createElementAndAppend, createTextAndAppend} from './ftl_util'; | import {checkBinding, createAnchorAndAppend, createElementAndAppend, createTextAndAppend} from './ftl_util'; | ||||||
| import * as import3 from './tree'; | import * as import3 from './tree'; | ||||||
| import * as import11 from './tree_leaf.ngfactory'; | import * as import11 from './tree_leaf.ngfactory'; | ||||||
| 
 | 
 | ||||||
| @ -42,16 +42,15 @@ export class View_TreeTreeComponent { | |||||||
|     this._el_3 = createElementAndAppend(parentRenderNode, 'tree'); |     this._el_3 = createElementAndAppend(parentRenderNode, 'tree'); | ||||||
|     this._TreeComponent20_3_4View = depth > 0 ? new View_TreeTreeComponent(depth - 1, this._el_3) : |     this._TreeComponent20_3_4View = depth > 0 ? new View_TreeTreeComponent(depth - 1, this._el_3) : | ||||||
|                                                 new import11.View_TreeLeafComponent(this._el_3); |                                                 new import11.View_TreeLeafComponent(this._el_3); | ||||||
|     this._expr_0 = import7.UNINITIALIZED; |     this._expr_1 = undefined; | ||||||
|     this._expr_1 = import7.UNINITIALIZED; |     this._expr_2 = undefined; | ||||||
|     this._expr_2 = import7.UNINITIALIZED; |  | ||||||
|   } |   } | ||||||
|   destroyInternal() { |   destroyInternal() { | ||||||
|     this._TreeComponent20_2_4View.destroyInternal(); |     this._TreeComponent20_2_4View.destroyInternal(); | ||||||
|     this._TreeComponent20_3_4View.destroyInternal(); |     this._TreeComponent20_3_4View.destroyInternal(); | ||||||
|   } |   } | ||||||
|   updateData(currVal_2: any) { |   updateData(currVal_2: any) { | ||||||
|     if (import4.checkBinding(false, this._expr_2, currVal_2)) { |     if (checkBinding(false, this._expr_2, currVal_2)) { | ||||||
|       this.context.data = currVal_2; |       this.context.data = currVal_2; | ||||||
|       this._expr_2 = currVal_2; |       this._expr_2 = currVal_2; | ||||||
|     } |     } | ||||||
| @ -61,12 +60,12 @@ export class View_TreeTreeComponent { | |||||||
|     this._TreeComponent20_3_4View.updateData(this.context.data.left); |     this._TreeComponent20_3_4View.updateData(this.context.data.left); | ||||||
| 
 | 
 | ||||||
|     const currVal_0: any = ((this.context.data.depth % 2) ? '' : 'grey'); |     const currVal_0: any = ((this.context.data.depth % 2) ? '' : 'grey'); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_0, currVal_0)) { |     if (checkBinding(throwOnChange, this._expr_0, currVal_0)) { | ||||||
|       this._el_0.style.backgroundColor = currVal_0; |       this._el_0.style.backgroundColor = currVal_0; | ||||||
|       this._expr_0 = currVal_0; |       this._expr_0 = currVal_0; | ||||||
|     } |     } | ||||||
|     const currVal_1: any = import4.inlineInterpolate(1, ' ', this.context.data.value, ' '); |     const currVal_1: any = import4.inlineInterpolate(1, ' ', this.context.data.value, ' '); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_1, currVal_1)) { |     if (checkBinding(throwOnChange, this._expr_1, currVal_1)) { | ||||||
|       this._text_1.nodeValue = currVal_1; |       this._text_1.nodeValue = currVal_1; | ||||||
|       this._expr_1 = currVal_1; |       this._expr_1 = currVal_1; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -16,6 +16,7 @@ import * as import8 from '@angular/core/src/metadata/view'; | |||||||
| import * as import0 from '@angular/core/src/render/api'; | import * as import0 from '@angular/core/src/render/api'; | ||||||
| import * as import10 from '@angular/core/src/security'; | import * as import10 from '@angular/core/src/security'; | ||||||
| 
 | 
 | ||||||
|  | import {checkBinding} from './ftl_util'; | ||||||
| import * as import3 from './tree'; | import * as import3 from './tree'; | ||||||
| 
 | 
 | ||||||
| export class View_TreeLeafComponent { | export class View_TreeLeafComponent { | ||||||
| @ -31,11 +32,9 @@ export class View_TreeLeafComponent { | |||||||
|     parentRenderNode.appendChild(this._el_0); |     parentRenderNode.appendChild(this._el_0); | ||||||
|     this._text_1 = document.createTextNode(''); |     this._text_1 = document.createTextNode(''); | ||||||
|     this._el_0.appendChild(this._text_1); |     this._el_0.appendChild(this._text_1); | ||||||
|     this._expr_0 = import7.UNINITIALIZED; |  | ||||||
|     this._expr_1 = import7.UNINITIALIZED; |  | ||||||
|   } |   } | ||||||
|   updateData(currVal_2: any) { |   updateData(currVal_2: any) { | ||||||
|     if (import4.checkBinding(false, this._expr_2, currVal_2)) { |     if (checkBinding(false, this._expr_2, currVal_2)) { | ||||||
|       this.context.data = currVal_2; |       this.context.data = currVal_2; | ||||||
|       this._expr_2 = currVal_2; |       this._expr_2 = currVal_2; | ||||||
|     } |     } | ||||||
| @ -43,12 +42,12 @@ export class View_TreeLeafComponent { | |||||||
|   destroyInternal() {} |   destroyInternal() {} | ||||||
|   detectChangesInternal(throwOnChange: boolean): void { |   detectChangesInternal(throwOnChange: boolean): void { | ||||||
|     const currVal_0: any = ((this.context.data.depth % 2) ? '' : 'grey'); |     const currVal_0: any = ((this.context.data.depth % 2) ? '' : 'grey'); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_0, currVal_0)) { |     if (checkBinding(throwOnChange, this._expr_0, currVal_0)) { | ||||||
|       this._el_0.style.backgroundColor = currVal_0; |       this._el_0.style.backgroundColor = currVal_0; | ||||||
|       this._expr_0 = currVal_0; |       this._expr_0 = currVal_0; | ||||||
|     } |     } | ||||||
|     const currVal_1: any = import4.inlineInterpolate(1, ' ', this.context.data.value, ' '); |     const currVal_1: any = import4.inlineInterpolate(1, ' ', this.context.data.value, ' '); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_1, currVal_1)) { |     if (checkBinding(throwOnChange, this._expr_1, currVal_1)) { | ||||||
|       this._text_1.nodeValue = currVal_1; |       this._text_1.nodeValue = currVal_1; | ||||||
|       this._expr_1 = currVal_1; |       this._expr_1 = currVal_1; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ import * as import0 from '@angular/core/src/render/api'; | |||||||
| 
 | 
 | ||||||
| import {maxDepth} from '../util'; | import {maxDepth} from '../util'; | ||||||
| 
 | 
 | ||||||
|  | import {checkBinding} from './ftl_util'; | ||||||
| import * as import3 from './tree'; | import * as import3 from './tree'; | ||||||
| import * as import12 from './tree'; | import * as import12 from './tree'; | ||||||
| import * as import13 from './tree_branch.ngfactory'; | import * as import13 from './tree_branch.ngfactory'; | ||||||
| @ -86,7 +87,6 @@ class _View_TreeRootComponent0 extends import1.AppView<import3.TreeRootComponent | |||||||
|     this._appEl_0 = new import2.ViewContainer(0, (null as any), this, this._anchor_0); |     this._appEl_0 = new import2.ViewContainer(0, (null as any), this, this._anchor_0); | ||||||
|     this._TemplateRef_0_5 = new import11.TemplateRef_(this, 0, this._anchor_0); |     this._TemplateRef_0_5 = new import11.TemplateRef_(this, 0, this._anchor_0); | ||||||
|     this._NgIf_0_6 = new import10.NgIf(this._appEl_0.vcRef, this._TemplateRef_0_5); |     this._NgIf_0_6 = new import10.NgIf(this._appEl_0.vcRef, this._TemplateRef_0_5); | ||||||
|     this._expr_0 = import7.UNINITIALIZED; |  | ||||||
|     this.init([], [this._anchor_0], []); |     this.init([], [this._anchor_0], []); | ||||||
|     return (null as any); |     return (null as any); | ||||||
|   } |   } | ||||||
| @ -108,7 +108,7 @@ class _View_TreeRootComponent0 extends import1.AppView<import3.TreeRootComponent | |||||||
|   } |   } | ||||||
|   detectChangesInternal(throwOnChange: boolean): void { |   detectChangesInternal(throwOnChange: boolean): void { | ||||||
|     const currVal_0: any = (this.context.data.left != (null as any)); |     const currVal_0: any = (this.context.data.left != (null as any)); | ||||||
|     if (import4.checkBinding(throwOnChange, this._expr_0, currVal_0)) { |     if (checkBinding(throwOnChange, this._expr_0, currVal_0)) { | ||||||
|       this._NgIf_0_6.ngIf = currVal_0; |       this._NgIf_0_6.ngIf = currVal_0; | ||||||
|       this._expr_0 = currVal_0; |       this._expr_0 = currVal_0; | ||||||
|     } |     } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user