@@ -8,6 +8,7 @@ import { Device } from "tns-core-modules/platform";
88import { View } from "tns-core-modules/ui/core/view" ;
99import { addCss } from "tns-core-modules/application" ;
1010import { topmost } from "tns-core-modules/ui/frame" ;
11+ import { profile } from "tns-core-modules/profiling" ;
1112
1213import { APP_ROOT_VIEW , DEVICE , getRootPage } from "./platform-providers" ;
1314import { isBlank } from "./lang-facade" ;
@@ -83,119 +84,143 @@ export class NativeScriptRenderer extends Renderer2 {
8384 traceLog ( "NativeScriptRenderer created" ) ;
8485 }
8586
87+ @profile
8688 appendChild ( parent : any , newChild : NgView ) : void {
8789 traceLog ( `NativeScriptRenderer.appendChild child: ${ newChild } parent: ${ parent } ` ) ;
8890 this . viewUtil . insertChild ( parent , newChild ) ;
8991 }
9092
93+ @profile
9194 insertBefore ( parent : NgView , newChild : NgView , refChildIndex : number ) : void {
9295 traceLog ( `NativeScriptRenderer.insertBefore child: ${ newChild } parent: ${ parent } ` ) ;
9396 this . viewUtil . insertChild ( parent , newChild , refChildIndex ) ;
9497 }
9598
99+ @profile
96100 removeChild ( parent : any , oldChild : NgView ) : void {
97101 traceLog ( `NativeScriptRenderer.removeChild child: ${ oldChild } parent: ${ parent } ` ) ;
98102 this . viewUtil . removeChild ( parent , oldChild ) ;
99103 }
100104
105+ @profile
101106 selectRootElement ( selector : string ) : NgView {
102107 traceLog ( "selectRootElement: " + selector ) ;
103108 return this . rootView ;
104109 }
105110
111+ @profile
106112 parentNode ( node : NgView ) : any {
107113 return node . parent || node . templateParent ;
108114 }
109115
116+ @profile
110117 nextSibling ( node : NgView ) : number {
111118 traceLog ( `NativeScriptRenderer.nextSibling ${ node } ` ) ;
112119 return this . viewUtil . nextSiblingIndex ( node ) ;
113120 }
114121
122+ @profile
115123 createComment ( _value : any ) : CommentNode {
116124 traceLog ( `NativeScriptRenderer.createComment ${ _value } ` ) ;
117125 return this . viewUtil . createComment ( ) ;
118126 }
119127
128+ @profile
120129 createElement ( name : any , _namespace : string ) : NgView {
121130 traceLog ( `NativeScriptRenderer.createElement: ${ name } ` ) ;
122131 return this . viewUtil . createView ( name ) ;
123132 }
124133
134+ @profile
125135 createText ( _value : string ) : CommentNode {
126136 traceLog ( `NativeScriptRenderer.createText ${ _value } ` ) ;
127137 return this . viewUtil . createText ( ) ;
128138 }
129139
140+ @profile
130141 createViewRoot ( hostElement : NgView ) : NgView {
131142 traceLog ( `NativeScriptRenderer.createViewRoot ${ hostElement . nodeName } ` ) ;
132143 return hostElement ;
133144 }
134145
146+ @profile
135147 projectNodes ( parentElement : NgView , nodes : NgView [ ] ) : void {
136148 traceLog ( "NativeScriptRenderer.projectNodes" ) ;
137149 nodes . forEach ( ( node ) => this . viewUtil . insertChild ( parentElement , node ) ) ;
138150 }
139151
152+ @profile
140153 destroy ( ) {
141154 traceLog ( "NativeScriptRenderer.destroy" ) ;
142155 // Seems to be called on component dispose only (router outlet)
143156 // TODO: handle this when we resolve routing and navigation.
144157 }
145158
159+ @profile
146160 setAttribute ( view : NgView , name : string , value : string , namespace ?: string ) {
147161 traceLog ( `NativeScriptRenderer.setAttribute ${ view } : ${ name } = ${ value } , namespace: ${ namespace } ` ) ;
148162 return this . viewUtil . setProperty ( view , name , value , namespace ) ;
149163 }
150164
165+ @profile
151166 removeAttribute ( _el : NgView , _name : string ) : void {
152167 traceLog ( `NativeScriptRenderer.removeAttribute ${ _el } : ${ _name } ` ) ;
153168 }
154169
170+ @profile
155171 setProperty ( view : any , name : string , value : any ) {
156172 traceLog ( `NativeScriptRenderer.setProperty ${ view } : ${ name } = ${ value } ` ) ;
157173 return this . viewUtil . setProperty ( view , name , value ) ;
158174 }
159175
176+ @profile
160177 addClass ( view : NgView , name : string ) : void {
161178 traceLog ( `NativeScriptRenderer.addClass ${ name } ` ) ;
162179 this . viewUtil . addClass ( view , name ) ;
163180 }
164181
182+ @profile
165183 removeClass ( view : NgView , name : string ) : void {
166184 traceLog ( `NativeScriptRenderer.removeClass ${ name } ` ) ;
167185 this . viewUtil . removeClass ( view , name ) ;
168186 }
169187
188+ @profile
170189 setStyle ( view : NgView , styleName : string , value : any , _flags ?: RendererStyleFlags2 ) : void {
171190 traceLog ( `NativeScriptRenderer.setStyle: ${ styleName } = ${ value } ` ) ;
172191 this . viewUtil . setStyle ( view , styleName , value ) ;
173192 }
174193
194+ @profile
175195 removeStyle ( view : NgView , styleName : string , _flags ?: RendererStyleFlags2 ) : void {
176196 traceLog ( "NativeScriptRenderer.removeStyle: ${styleName}" ) ;
177197 this . viewUtil . removeStyle ( view , styleName ) ;
178198 }
179199
180200 // Used only in debug mode to serialize property changes to comment nodes,
181201 // such as <template> placeholders.
202+ @profile
182203 setBindingDebugInfo ( renderElement : NgView , propertyName : string , propertyValue : string ) : void {
183204 traceLog ( "NativeScriptRenderer.setBindingDebugInfo: " + renderElement + ", " +
184205 propertyName + " = " + propertyValue ) ;
185206 }
186207
208+ @profile
187209 setElementDebugInfo ( renderElement : any , _info : any /*RenderDebugInfo*/ ) : void {
188210 traceLog ( "NativeScriptRenderer.setElementDebugInfo: " + renderElement ) ;
189211 }
190212
213+ @profile
191214 invokeElementMethod ( _renderElement : NgView , methodName : string , args : Array < any > ) {
192215 traceLog ( "NativeScriptRenderer.invokeElementMethod " + methodName + " " + args ) ;
193216 }
194217
218+ @profile
195219 setValue ( _renderNode : any , _value : string ) {
196220 traceLog ( "NativeScriptRenderer.setValue" ) ;
197221 }
198222
223+ @profile
199224 listen ( renderElement : any , eventName : string , callback : ( event : any ) => boolean ) :
200225 ( ) => void {
201226 traceLog ( "NativeScriptRenderer.listen: " + eventName ) ;
@@ -251,16 +276,17 @@ class EmulatedRenderer extends NativeScriptRenderer {
251276 return view ;
252277 }
253278
279+ @profile
254280 private addStyles ( styles : ( string | any [ ] ) [ ] , componentId : string ) {
255281 styles . map ( s => s . toString ( ) )
256282 . map ( s => replaceNgAttribute ( s , componentId ) )
257283 . forEach ( addStyleToCss ) ;
258284 }
259285}
260286
261- function addStyleToCss ( style : string ) : void {
287+ const addStyleToCss = profile ( '"renderer".addStyleToCss' , function addStyleToCss ( style : string ) : void {
262288 addCss ( style ) ;
263- }
289+ } ) ;
264290
265291function replaceNgAttribute ( input : string , componentId : string ) : string {
266292 return input . replace ( COMPONENT_REGEX , componentId ) ;
0 commit comments