@@ -8,6 +8,7 @@ import { Device } from "tns-core-modules/platform";
8
8
import { View } from "tns-core-modules/ui/core/view" ;
9
9
import { addCss } from "tns-core-modules/application" ;
10
10
import { topmost } from "tns-core-modules/ui/frame" ;
11
+ import { profile } from "tns-core-modules/profiling" ;
11
12
12
13
import { APP_ROOT_VIEW , DEVICE , getRootPage } from "./platform-providers" ;
13
14
import { isBlank } from "./lang-facade" ;
@@ -83,119 +84,143 @@ export class NativeScriptRenderer extends Renderer2 {
83
84
traceLog ( "NativeScriptRenderer created" ) ;
84
85
}
85
86
87
+ @profile
86
88
appendChild ( parent : any , newChild : NgView ) : void {
87
89
traceLog ( `NativeScriptRenderer.appendChild child: ${ newChild } parent: ${ parent } ` ) ;
88
90
this . viewUtil . insertChild ( parent , newChild ) ;
89
91
}
90
92
93
+ @profile
91
94
insertBefore ( parent : NgView , newChild : NgView , refChildIndex : number ) : void {
92
95
traceLog ( `NativeScriptRenderer.insertBefore child: ${ newChild } parent: ${ parent } ` ) ;
93
96
this . viewUtil . insertChild ( parent , newChild , refChildIndex ) ;
94
97
}
95
98
99
+ @profile
96
100
removeChild ( parent : any , oldChild : NgView ) : void {
97
101
traceLog ( `NativeScriptRenderer.removeChild child: ${ oldChild } parent: ${ parent } ` ) ;
98
102
this . viewUtil . removeChild ( parent , oldChild ) ;
99
103
}
100
104
105
+ @profile
101
106
selectRootElement ( selector : string ) : NgView {
102
107
traceLog ( "selectRootElement: " + selector ) ;
103
108
return this . rootView ;
104
109
}
105
110
111
+ @profile
106
112
parentNode ( node : NgView ) : any {
107
113
return node . parent || node . templateParent ;
108
114
}
109
115
116
+ @profile
110
117
nextSibling ( node : NgView ) : number {
111
118
traceLog ( `NativeScriptRenderer.nextSibling ${ node } ` ) ;
112
119
return this . viewUtil . nextSiblingIndex ( node ) ;
113
120
}
114
121
122
+ @profile
115
123
createComment ( _value : any ) : CommentNode {
116
124
traceLog ( `NativeScriptRenderer.createComment ${ _value } ` ) ;
117
125
return this . viewUtil . createComment ( ) ;
118
126
}
119
127
128
+ @profile
120
129
createElement ( name : any , _namespace : string ) : NgView {
121
130
traceLog ( `NativeScriptRenderer.createElement: ${ name } ` ) ;
122
131
return this . viewUtil . createView ( name ) ;
123
132
}
124
133
134
+ @profile
125
135
createText ( _value : string ) : CommentNode {
126
136
traceLog ( `NativeScriptRenderer.createText ${ _value } ` ) ;
127
137
return this . viewUtil . createText ( ) ;
128
138
}
129
139
140
+ @profile
130
141
createViewRoot ( hostElement : NgView ) : NgView {
131
142
traceLog ( `NativeScriptRenderer.createViewRoot ${ hostElement . nodeName } ` ) ;
132
143
return hostElement ;
133
144
}
134
145
146
+ @profile
135
147
projectNodes ( parentElement : NgView , nodes : NgView [ ] ) : void {
136
148
traceLog ( "NativeScriptRenderer.projectNodes" ) ;
137
149
nodes . forEach ( ( node ) => this . viewUtil . insertChild ( parentElement , node ) ) ;
138
150
}
139
151
152
+ @profile
140
153
destroy ( ) {
141
154
traceLog ( "NativeScriptRenderer.destroy" ) ;
142
155
// Seems to be called on component dispose only (router outlet)
143
156
// TODO: handle this when we resolve routing and navigation.
144
157
}
145
158
159
+ @profile
146
160
setAttribute ( view : NgView , name : string , value : string , namespace ?: string ) {
147
161
traceLog ( `NativeScriptRenderer.setAttribute ${ view } : ${ name } = ${ value } , namespace: ${ namespace } ` ) ;
148
162
return this . viewUtil . setProperty ( view , name , value , namespace ) ;
149
163
}
150
164
165
+ @profile
151
166
removeAttribute ( _el : NgView , _name : string ) : void {
152
167
traceLog ( `NativeScriptRenderer.removeAttribute ${ _el } : ${ _name } ` ) ;
153
168
}
154
169
170
+ @profile
155
171
setProperty ( view : any , name : string , value : any ) {
156
172
traceLog ( `NativeScriptRenderer.setProperty ${ view } : ${ name } = ${ value } ` ) ;
157
173
return this . viewUtil . setProperty ( view , name , value ) ;
158
174
}
159
175
176
+ @profile
160
177
addClass ( view : NgView , name : string ) : void {
161
178
traceLog ( `NativeScriptRenderer.addClass ${ name } ` ) ;
162
179
this . viewUtil . addClass ( view , name ) ;
163
180
}
164
181
182
+ @profile
165
183
removeClass ( view : NgView , name : string ) : void {
166
184
traceLog ( `NativeScriptRenderer.removeClass ${ name } ` ) ;
167
185
this . viewUtil . removeClass ( view , name ) ;
168
186
}
169
187
188
+ @profile
170
189
setStyle ( view : NgView , styleName : string , value : any , _flags ?: RendererStyleFlags2 ) : void {
171
190
traceLog ( `NativeScriptRenderer.setStyle: ${ styleName } = ${ value } ` ) ;
172
191
this . viewUtil . setStyle ( view , styleName , value ) ;
173
192
}
174
193
194
+ @profile
175
195
removeStyle ( view : NgView , styleName : string , _flags ?: RendererStyleFlags2 ) : void {
176
196
traceLog ( "NativeScriptRenderer.removeStyle: ${styleName}" ) ;
177
197
this . viewUtil . removeStyle ( view , styleName ) ;
178
198
}
179
199
180
200
// Used only in debug mode to serialize property changes to comment nodes,
181
201
// such as <template> placeholders.
202
+ @profile
182
203
setBindingDebugInfo ( renderElement : NgView , propertyName : string , propertyValue : string ) : void {
183
204
traceLog ( "NativeScriptRenderer.setBindingDebugInfo: " + renderElement + ", " +
184
205
propertyName + " = " + propertyValue ) ;
185
206
}
186
207
208
+ @profile
187
209
setElementDebugInfo ( renderElement : any , _info : any /*RenderDebugInfo*/ ) : void {
188
210
traceLog ( "NativeScriptRenderer.setElementDebugInfo: " + renderElement ) ;
189
211
}
190
212
213
+ @profile
191
214
invokeElementMethod ( _renderElement : NgView , methodName : string , args : Array < any > ) {
192
215
traceLog ( "NativeScriptRenderer.invokeElementMethod " + methodName + " " + args ) ;
193
216
}
194
217
218
+ @profile
195
219
setValue ( _renderNode : any , _value : string ) {
196
220
traceLog ( "NativeScriptRenderer.setValue" ) ;
197
221
}
198
222
223
+ @profile
199
224
listen ( renderElement : any , eventName : string , callback : ( event : any ) => boolean ) :
200
225
( ) => void {
201
226
traceLog ( "NativeScriptRenderer.listen: " + eventName ) ;
@@ -251,16 +276,17 @@ class EmulatedRenderer extends NativeScriptRenderer {
251
276
return view ;
252
277
}
253
278
279
+ @profile
254
280
private addStyles ( styles : ( string | any [ ] ) [ ] , componentId : string ) {
255
281
styles . map ( s => s . toString ( ) )
256
282
. map ( s => replaceNgAttribute ( s , componentId ) )
257
283
. forEach ( addStyleToCss ) ;
258
284
}
259
285
}
260
286
261
- function addStyleToCss ( style : string ) : void {
287
+ const addStyleToCss = profile ( '"renderer".addStyleToCss' , function addStyleToCss ( style : string ) : void {
262
288
addCss ( style ) ;
263
- }
289
+ } ) ;
264
290
265
291
function replaceNgAttribute ( input : string , componentId : string ) : string {
266
292
return input . replace ( COMPONENT_REGEX , componentId ) ;
0 commit comments