@angular/compiler-cli 11.2.5 → 11.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1 -0
- package/index.js +5 -3
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +1 -1
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +4 -4
- package/ngcc/src/analysis/decoration_analyzer.js +10 -8
- package/ngcc/src/execution/analyze_entry_points.js +10 -4
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/package.json +3 -3
- package/src/ngtsc/annotations/src/component.d.ts +4 -7
- package/src/ngtsc/annotations/src/component.js +107 -77
- package/src/ngtsc/annotations/src/directive.d.ts +3 -1
- package/src/ngtsc/annotations/src/directive.js +6 -3
- package/src/ngtsc/annotations/src/injectable.d.ts +3 -1
- package/src/ngtsc/annotations/src/injectable.js +6 -3
- package/src/ngtsc/annotations/src/ng_module.d.ts +3 -1
- package/src/ngtsc/annotations/src/ng_module.js +6 -3
- package/src/ngtsc/annotations/src/pipe.d.ts +3 -1
- package/src/ngtsc/annotations/src/pipe.js +6 -3
- package/src/ngtsc/core/api/src/options.d.ts +2 -3
- package/src/ngtsc/core/api/src/options.js +1 -1
- package/src/ngtsc/core/src/compiler.d.ts +19 -8
- package/src/ngtsc/core/src/compiler.js +222 -165
- package/src/ngtsc/cycles/src/imports.d.ts +3 -1
- package/src/ngtsc/cycles/src/imports.js +35 -30
- package/src/ngtsc/diagnostics/src/error_code.d.ts +7 -1
- package/src/ngtsc/diagnostics/src/error_code.js +10 -4
- package/src/ngtsc/incremental/src/state.d.ts +2 -1
- package/src/ngtsc/incremental/src/state.js +134 -129
- package/src/ngtsc/perf/index.d.ts +2 -2
- package/src/ngtsc/perf/index.js +8 -5
- package/src/ngtsc/perf/src/api.d.ts +300 -5
- package/src/ngtsc/perf/src/api.js +268 -1
- package/src/ngtsc/perf/src/noop.d.ts +7 -0
- package/src/ngtsc/perf/src/noop.js +25 -10
- package/src/ngtsc/perf/src/recorder.d.ts +58 -0
- package/src/ngtsc/perf/src/recorder.js +143 -0
- package/src/ngtsc/program.d.ts +0 -2
- package/src/ngtsc/program.js +138 -122
- package/src/ngtsc/transform/src/compilation.js +6 -4
- package/src/ngtsc/transform/src/transform.d.ts +2 -1
- package/src/ngtsc/transform/src/transform.js +5 -4
- package/src/ngtsc/tsc_plugin.js +14 -4
- package/src/ngtsc/typecheck/api/api.d.ts +27 -0
- package/src/ngtsc/typecheck/api/api.js +1 -1
- package/src/ngtsc/typecheck/src/checker.d.ts +3 -1
- package/src/ngtsc/typecheck/src/checker.js +132 -110
- package/src/ngtsc/typecheck/src/context.d.ts +3 -1
- package/src/ngtsc/typecheck/src/context.js +31 -30
- package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
- package/src/ngtsc/typecheck/src/environment.js +1 -1
- package/src/ngtsc/typecheck/src/oob.d.ts +6 -0
- package/src/ngtsc/typecheck/src/oob.js +36 -1
- package/src/ngtsc/typecheck/src/type_check_block.js +107 -23
- package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_file.js +3 -3
- package/src/perform_compile.js +16 -10
- package/src/version.js +1 -1
- package/src/ngtsc/perf/src/tracking.d.ts +0 -33
- package/src/ngtsc/perf/src/tracking.js +0 -103
|
@@ -6,10 +6,305 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
/// <amd-module name="@angular/compiler-cli/src/ngtsc/perf/src/api" />
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A phase of compilation for which time is tracked in a distinct bucket.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum PerfPhase {
|
|
13
|
+
/**
|
|
14
|
+
* The "default" phase which tracks time not spent in any other phase.
|
|
15
|
+
*/
|
|
16
|
+
Unaccounted = 0,
|
|
17
|
+
/**
|
|
18
|
+
* Time spent setting up the compiler, before a TypeScript program is created.
|
|
19
|
+
*
|
|
20
|
+
* This includes operations like configuring the `ts.CompilerHost` and any wrappers.
|
|
21
|
+
*/
|
|
22
|
+
Setup = 1,
|
|
23
|
+
/**
|
|
24
|
+
* Time spent in `ts.createProgram`, including reading and parsing `ts.SourceFile`s in the
|
|
25
|
+
* `ts.CompilerHost`.
|
|
26
|
+
*
|
|
27
|
+
* This might be an incremental program creation operation.
|
|
28
|
+
*/
|
|
29
|
+
TypeScriptProgramCreate = 2,
|
|
30
|
+
/**
|
|
31
|
+
* Time spent reconciling the contents of an old `ts.Program` with the new incremental one.
|
|
32
|
+
*
|
|
33
|
+
* Only present in incremental compilations.
|
|
34
|
+
*/
|
|
35
|
+
Reconciliation = 3,
|
|
36
|
+
/**
|
|
37
|
+
* Time spent updating an `NgCompiler` instance with a resource-only change.
|
|
38
|
+
*
|
|
39
|
+
* Only present in incremental compilations where the change was resource-only.
|
|
40
|
+
*/
|
|
41
|
+
ResourceUpdate = 4,
|
|
42
|
+
/**
|
|
43
|
+
* Time spent calculating the plain TypeScript diagnostics (structural and semantic).
|
|
44
|
+
*/
|
|
45
|
+
TypeScriptDiagnostics = 5,
|
|
46
|
+
/**
|
|
47
|
+
* Time spent in Angular analysis of individual classes in the program.
|
|
48
|
+
*/
|
|
49
|
+
Analysis = 6,
|
|
50
|
+
/**
|
|
51
|
+
* Time spent in Angular global analysis (synthesis of analysis information into a complete
|
|
52
|
+
* understanding of the program).
|
|
53
|
+
*/
|
|
54
|
+
Resolve = 7,
|
|
55
|
+
/**
|
|
56
|
+
* Time spent building the import graph of the program in order to perform cycle detection.
|
|
57
|
+
*/
|
|
58
|
+
CycleDetection = 8,
|
|
59
|
+
/**
|
|
60
|
+
* Time spent generating the text of Type Check Blocks in order to perform template type checking.
|
|
61
|
+
*/
|
|
62
|
+
TcbGeneration = 9,
|
|
63
|
+
/**
|
|
64
|
+
* Time spent updating the `ts.Program` with new Type Check Block code.
|
|
65
|
+
*/
|
|
66
|
+
TcbUpdateProgram = 10,
|
|
67
|
+
/**
|
|
68
|
+
* Time spent by TypeScript performing its emit operations, including downleveling and writing
|
|
69
|
+
* output files.
|
|
70
|
+
*/
|
|
71
|
+
TypeScriptEmit = 11,
|
|
72
|
+
/**
|
|
73
|
+
* Time spent by Angular performing code transformations of ASTs as they're about to be emitted.
|
|
74
|
+
*
|
|
75
|
+
* This includes the actual code generation step for templates, and occurs during the emit phase
|
|
76
|
+
* (but is tracked separately from `TypeScriptEmit` time).
|
|
77
|
+
*/
|
|
78
|
+
Compile = 12,
|
|
79
|
+
/**
|
|
80
|
+
* Time spent performing a `TemplateTypeChecker` autocompletion operation.
|
|
81
|
+
*/
|
|
82
|
+
TtcAutocompletion = 13,
|
|
83
|
+
/**
|
|
84
|
+
* Time spent computing template type-checking diagnostics.
|
|
85
|
+
*/
|
|
86
|
+
TtcDiagnostics = 14,
|
|
87
|
+
/**
|
|
88
|
+
* Time spent getting a `Symbol` from the `TemplateTypeChecker`.
|
|
89
|
+
*/
|
|
90
|
+
TtcSymbol = 15,
|
|
91
|
+
/**
|
|
92
|
+
* Time spent by the Angular Language Service calculating a "get references" or a renaming
|
|
93
|
+
* operation.
|
|
94
|
+
*/
|
|
95
|
+
LsReferencesAndRenames = 16,
|
|
96
|
+
/**
|
|
97
|
+
* Time spent by the Angular Language Service calculating a "quick info" operation.
|
|
98
|
+
*/
|
|
99
|
+
LsQuickInfo = 17,
|
|
100
|
+
/**
|
|
101
|
+
* Time spent by the Angular Language Service calculating a "get type definition" or "get
|
|
102
|
+
* definition" operation.
|
|
103
|
+
*/
|
|
104
|
+
LsDefinition = 18,
|
|
105
|
+
/**
|
|
106
|
+
* Time spent by the Angular Language Service calculating a "get completions" (AKA autocomplete)
|
|
107
|
+
* operation.
|
|
108
|
+
*/
|
|
109
|
+
LsCompletions = 19,
|
|
110
|
+
/**
|
|
111
|
+
* Time spent by the Angular Language Service calculating a "view template typecheck block"
|
|
112
|
+
* operation.
|
|
113
|
+
*/
|
|
114
|
+
LsTcb = 20,
|
|
115
|
+
/**
|
|
116
|
+
* Time spent by the Angular Language Service calculating diagnostics.
|
|
117
|
+
*/
|
|
118
|
+
LsDiagnostics = 21,
|
|
119
|
+
/**
|
|
120
|
+
* Time spent by the Angular Language Service calculating a "get component locations for template"
|
|
121
|
+
* operation.
|
|
122
|
+
*/
|
|
123
|
+
LsComponentLocations = 22,
|
|
124
|
+
/**
|
|
125
|
+
* Tracks the number of `PerfPhase`s, and must appear at the end of the list.
|
|
126
|
+
*/
|
|
127
|
+
LAST = 23
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Represents some occurrence during compilation, and is tracked with a counter.
|
|
131
|
+
*/
|
|
132
|
+
export declare enum PerfEvent {
|
|
133
|
+
/**
|
|
134
|
+
* Counts the number of `.d.ts` files in the program.
|
|
135
|
+
*/
|
|
136
|
+
InputDtsFile = 0,
|
|
137
|
+
/**
|
|
138
|
+
* Counts the number of non-`.d.ts` files in the program.
|
|
139
|
+
*/
|
|
140
|
+
InputTsFile = 1,
|
|
141
|
+
/**
|
|
142
|
+
* An `@Component` class was analyzed.
|
|
143
|
+
*/
|
|
144
|
+
AnalyzeComponent = 2,
|
|
145
|
+
/**
|
|
146
|
+
* An `@Directive` class was analyzed.
|
|
147
|
+
*/
|
|
148
|
+
AnalyzeDirective = 3,
|
|
149
|
+
/**
|
|
150
|
+
* An `@Injectable` class was analyzed.
|
|
151
|
+
*/
|
|
152
|
+
AnalyzeInjectable = 4,
|
|
153
|
+
/**
|
|
154
|
+
* An `@NgModule` class was analyzed.
|
|
155
|
+
*/
|
|
156
|
+
AnalyzeNgModule = 5,
|
|
157
|
+
/**
|
|
158
|
+
* An `@Pipe` class was analyzed.
|
|
159
|
+
*/
|
|
160
|
+
AnalyzePipe = 6,
|
|
161
|
+
/**
|
|
162
|
+
* A trait was analyzed.
|
|
163
|
+
*
|
|
164
|
+
* In theory, this should be the sum of the `Analyze` counters for each decorator type.
|
|
165
|
+
*/
|
|
166
|
+
TraitAnalyze = 7,
|
|
167
|
+
/**
|
|
168
|
+
* A trait had a prior analysis available from an incremental program, and did not need to be
|
|
169
|
+
* re-analyzed.
|
|
170
|
+
*/
|
|
171
|
+
TraitReuseAnalysis = 8,
|
|
172
|
+
/**
|
|
173
|
+
* A `ts.SourceFile` directly changed between the prior program and a new incremental compilation.
|
|
174
|
+
*/
|
|
175
|
+
SourceFilePhysicalChange = 9,
|
|
176
|
+
/**
|
|
177
|
+
* A `ts.SourceFile` did not physically changed, but according to the file dependency graph, has
|
|
178
|
+
* logically changed between the prior program and a new incremental compilation.
|
|
179
|
+
*/
|
|
180
|
+
SourceFileLogicalChange = 10,
|
|
181
|
+
/**
|
|
182
|
+
* A `ts.SourceFile` has not logically changed and all of its analysis results were thus available
|
|
183
|
+
* for reuse.
|
|
184
|
+
*/
|
|
185
|
+
SourceFileReuseAnalysis = 11,
|
|
186
|
+
/**
|
|
187
|
+
* A Type Check Block (TCB) was generated.
|
|
188
|
+
*/
|
|
189
|
+
GenerateTcb = 12,
|
|
190
|
+
/**
|
|
191
|
+
* A Type Check Block (TCB) could not be generated because inlining was disabled, and the block
|
|
192
|
+
* would've required inlining.
|
|
193
|
+
*/
|
|
194
|
+
SkipGenerateTcbNoInline = 13,
|
|
195
|
+
/**
|
|
196
|
+
* A `.ngtypecheck.ts` file could be reused from the previous program and did not need to be
|
|
197
|
+
* regenerated.
|
|
198
|
+
*/
|
|
199
|
+
ReuseTypeCheckFile = 14,
|
|
200
|
+
/**
|
|
201
|
+
* The template type-checking program required changes and had to be updated in an incremental
|
|
202
|
+
* step.
|
|
203
|
+
*/
|
|
204
|
+
UpdateTypeCheckProgram = 15,
|
|
205
|
+
/**
|
|
206
|
+
* The compiler was able to prove that a `ts.SourceFile` did not need to be re-emitted.
|
|
207
|
+
*/
|
|
208
|
+
EmitSkipSourceFile = 16,
|
|
209
|
+
/**
|
|
210
|
+
* A `ts.SourceFile` was emitted.
|
|
211
|
+
*/
|
|
212
|
+
EmitSourceFile = 17,
|
|
213
|
+
/**
|
|
214
|
+
* Tracks the number of `PrefEvent`s, and must appear at the end of the list.
|
|
215
|
+
*/
|
|
216
|
+
LAST = 18
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Represents a checkpoint during compilation at which the memory usage of the compiler should be
|
|
220
|
+
* recorded.
|
|
221
|
+
*/
|
|
222
|
+
export declare enum PerfCheckpoint {
|
|
223
|
+
/**
|
|
224
|
+
* The point at which the `PerfRecorder` was created, and ideally tracks memory used before any
|
|
225
|
+
* compilation structures are created.
|
|
226
|
+
*/
|
|
227
|
+
Initial = 0,
|
|
228
|
+
/**
|
|
229
|
+
* The point just after the `ts.Program` has been created.
|
|
230
|
+
*/
|
|
231
|
+
TypeScriptProgramCreate = 1,
|
|
232
|
+
/**
|
|
233
|
+
* The point just before Angular analysis starts.
|
|
234
|
+
*
|
|
235
|
+
* In the main usage pattern for the compiler, TypeScript diagnostics have been calculated at this
|
|
236
|
+
* point, so the `ts.TypeChecker` has fully ingested the current program, all `ts.Type` structures
|
|
237
|
+
* and `ts.Symbol`s have been created.
|
|
238
|
+
*/
|
|
239
|
+
PreAnalysis = 2,
|
|
240
|
+
/**
|
|
241
|
+
* The point just after Angular analysis completes.
|
|
242
|
+
*/
|
|
243
|
+
Analysis = 3,
|
|
244
|
+
/**
|
|
245
|
+
* The point just after Angular resolution is complete.
|
|
246
|
+
*/
|
|
247
|
+
Resolve = 4,
|
|
248
|
+
/**
|
|
249
|
+
* The point just after Type Check Blocks (TCBs) have been generated.
|
|
250
|
+
*/
|
|
251
|
+
TtcGeneration = 5,
|
|
252
|
+
/**
|
|
253
|
+
* The point just after the template type-checking program has been updated with any new TCBs.
|
|
254
|
+
*/
|
|
255
|
+
TtcUpdateProgram = 6,
|
|
256
|
+
/**
|
|
257
|
+
* The point just before emit begins.
|
|
258
|
+
*
|
|
259
|
+
* In the main usage pattern for the compiler, all template type-checking diagnostics have been
|
|
260
|
+
* requested at this point.
|
|
261
|
+
*/
|
|
262
|
+
PreEmit = 7,
|
|
263
|
+
/**
|
|
264
|
+
* The point just after the program has been fully emitted.
|
|
265
|
+
*/
|
|
266
|
+
Emit = 8,
|
|
267
|
+
/**
|
|
268
|
+
* Tracks the number of `PerfCheckpoint`s, and must appear at the end of the list.
|
|
269
|
+
*/
|
|
270
|
+
LAST = 9
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Records timing, memory, or counts at specific points in the compiler's operation.
|
|
274
|
+
*/
|
|
10
275
|
export interface PerfRecorder {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
276
|
+
/**
|
|
277
|
+
* Set the current phase of compilation.
|
|
278
|
+
*
|
|
279
|
+
* Time spent in the previous phase will be accounted to that phase. The caller is responsible for
|
|
280
|
+
* exiting the phase when work that should be tracked within it is completed, and either returning
|
|
281
|
+
* to the previous phase or transitioning to the next one directly.
|
|
282
|
+
*
|
|
283
|
+
* In general, prefer using `inPhase()` to instrument a section of code, as it automatically
|
|
284
|
+
* handles entering and exiting the phase. `phase()` should only be used when the former API
|
|
285
|
+
* cannot be cleanly applied to a particular operation.
|
|
286
|
+
*
|
|
287
|
+
* @returns the previous phase
|
|
288
|
+
*/
|
|
289
|
+
phase(phase: PerfPhase): PerfPhase;
|
|
290
|
+
/**
|
|
291
|
+
* Run `fn` in the given `PerfPhase` and return the result.
|
|
292
|
+
*
|
|
293
|
+
* Enters `phase` before executing the given `fn`, then exits the phase and returns the result.
|
|
294
|
+
* Prefer this API to `phase()` where possible.
|
|
295
|
+
*/
|
|
296
|
+
inPhase<T>(phase: PerfPhase, fn: () => T): T;
|
|
297
|
+
/**
|
|
298
|
+
* Record the memory usage of the compiler at the given checkpoint.
|
|
299
|
+
*/
|
|
300
|
+
memory(after: PerfCheckpoint): void;
|
|
301
|
+
/**
|
|
302
|
+
* Record that a specific event has occurred, possibly more than once.
|
|
303
|
+
*/
|
|
304
|
+
eventCount(event: PerfEvent, incrementBy?: number): void;
|
|
305
|
+
/**
|
|
306
|
+
* Return the `PerfRecorder` to an empty state (clear all tracked statistics) and reset the zero
|
|
307
|
+
* point to the current time.
|
|
308
|
+
*/
|
|
309
|
+
reset(): void;
|
|
15
310
|
}
|
|
@@ -16,5 +16,272 @@
|
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.PerfCheckpoint = exports.PerfEvent = exports.PerfPhase = void 0;
|
|
20
|
+
/**
|
|
21
|
+
* A phase of compilation for which time is tracked in a distinct bucket.
|
|
22
|
+
*/
|
|
23
|
+
var PerfPhase;
|
|
24
|
+
(function (PerfPhase) {
|
|
25
|
+
/**
|
|
26
|
+
* The "default" phase which tracks time not spent in any other phase.
|
|
27
|
+
*/
|
|
28
|
+
PerfPhase[PerfPhase["Unaccounted"] = 0] = "Unaccounted";
|
|
29
|
+
/**
|
|
30
|
+
* Time spent setting up the compiler, before a TypeScript program is created.
|
|
31
|
+
*
|
|
32
|
+
* This includes operations like configuring the `ts.CompilerHost` and any wrappers.
|
|
33
|
+
*/
|
|
34
|
+
PerfPhase[PerfPhase["Setup"] = 1] = "Setup";
|
|
35
|
+
/**
|
|
36
|
+
* Time spent in `ts.createProgram`, including reading and parsing `ts.SourceFile`s in the
|
|
37
|
+
* `ts.CompilerHost`.
|
|
38
|
+
*
|
|
39
|
+
* This might be an incremental program creation operation.
|
|
40
|
+
*/
|
|
41
|
+
PerfPhase[PerfPhase["TypeScriptProgramCreate"] = 2] = "TypeScriptProgramCreate";
|
|
42
|
+
/**
|
|
43
|
+
* Time spent reconciling the contents of an old `ts.Program` with the new incremental one.
|
|
44
|
+
*
|
|
45
|
+
* Only present in incremental compilations.
|
|
46
|
+
*/
|
|
47
|
+
PerfPhase[PerfPhase["Reconciliation"] = 3] = "Reconciliation";
|
|
48
|
+
/**
|
|
49
|
+
* Time spent updating an `NgCompiler` instance with a resource-only change.
|
|
50
|
+
*
|
|
51
|
+
* Only present in incremental compilations where the change was resource-only.
|
|
52
|
+
*/
|
|
53
|
+
PerfPhase[PerfPhase["ResourceUpdate"] = 4] = "ResourceUpdate";
|
|
54
|
+
/**
|
|
55
|
+
* Time spent calculating the plain TypeScript diagnostics (structural and semantic).
|
|
56
|
+
*/
|
|
57
|
+
PerfPhase[PerfPhase["TypeScriptDiagnostics"] = 5] = "TypeScriptDiagnostics";
|
|
58
|
+
/**
|
|
59
|
+
* Time spent in Angular analysis of individual classes in the program.
|
|
60
|
+
*/
|
|
61
|
+
PerfPhase[PerfPhase["Analysis"] = 6] = "Analysis";
|
|
62
|
+
/**
|
|
63
|
+
* Time spent in Angular global analysis (synthesis of analysis information into a complete
|
|
64
|
+
* understanding of the program).
|
|
65
|
+
*/
|
|
66
|
+
PerfPhase[PerfPhase["Resolve"] = 7] = "Resolve";
|
|
67
|
+
/**
|
|
68
|
+
* Time spent building the import graph of the program in order to perform cycle detection.
|
|
69
|
+
*/
|
|
70
|
+
PerfPhase[PerfPhase["CycleDetection"] = 8] = "CycleDetection";
|
|
71
|
+
/**
|
|
72
|
+
* Time spent generating the text of Type Check Blocks in order to perform template type checking.
|
|
73
|
+
*/
|
|
74
|
+
PerfPhase[PerfPhase["TcbGeneration"] = 9] = "TcbGeneration";
|
|
75
|
+
/**
|
|
76
|
+
* Time spent updating the `ts.Program` with new Type Check Block code.
|
|
77
|
+
*/
|
|
78
|
+
PerfPhase[PerfPhase["TcbUpdateProgram"] = 10] = "TcbUpdateProgram";
|
|
79
|
+
/**
|
|
80
|
+
* Time spent by TypeScript performing its emit operations, including downleveling and writing
|
|
81
|
+
* output files.
|
|
82
|
+
*/
|
|
83
|
+
PerfPhase[PerfPhase["TypeScriptEmit"] = 11] = "TypeScriptEmit";
|
|
84
|
+
/**
|
|
85
|
+
* Time spent by Angular performing code transformations of ASTs as they're about to be emitted.
|
|
86
|
+
*
|
|
87
|
+
* This includes the actual code generation step for templates, and occurs during the emit phase
|
|
88
|
+
* (but is tracked separately from `TypeScriptEmit` time).
|
|
89
|
+
*/
|
|
90
|
+
PerfPhase[PerfPhase["Compile"] = 12] = "Compile";
|
|
91
|
+
/**
|
|
92
|
+
* Time spent performing a `TemplateTypeChecker` autocompletion operation.
|
|
93
|
+
*/
|
|
94
|
+
PerfPhase[PerfPhase["TtcAutocompletion"] = 13] = "TtcAutocompletion";
|
|
95
|
+
/**
|
|
96
|
+
* Time spent computing template type-checking diagnostics.
|
|
97
|
+
*/
|
|
98
|
+
PerfPhase[PerfPhase["TtcDiagnostics"] = 14] = "TtcDiagnostics";
|
|
99
|
+
/**
|
|
100
|
+
* Time spent getting a `Symbol` from the `TemplateTypeChecker`.
|
|
101
|
+
*/
|
|
102
|
+
PerfPhase[PerfPhase["TtcSymbol"] = 15] = "TtcSymbol";
|
|
103
|
+
/**
|
|
104
|
+
* Time spent by the Angular Language Service calculating a "get references" or a renaming
|
|
105
|
+
* operation.
|
|
106
|
+
*/
|
|
107
|
+
PerfPhase[PerfPhase["LsReferencesAndRenames"] = 16] = "LsReferencesAndRenames";
|
|
108
|
+
/**
|
|
109
|
+
* Time spent by the Angular Language Service calculating a "quick info" operation.
|
|
110
|
+
*/
|
|
111
|
+
PerfPhase[PerfPhase["LsQuickInfo"] = 17] = "LsQuickInfo";
|
|
112
|
+
/**
|
|
113
|
+
* Time spent by the Angular Language Service calculating a "get type definition" or "get
|
|
114
|
+
* definition" operation.
|
|
115
|
+
*/
|
|
116
|
+
PerfPhase[PerfPhase["LsDefinition"] = 18] = "LsDefinition";
|
|
117
|
+
/**
|
|
118
|
+
* Time spent by the Angular Language Service calculating a "get completions" (AKA autocomplete)
|
|
119
|
+
* operation.
|
|
120
|
+
*/
|
|
121
|
+
PerfPhase[PerfPhase["LsCompletions"] = 19] = "LsCompletions";
|
|
122
|
+
/**
|
|
123
|
+
* Time spent by the Angular Language Service calculating a "view template typecheck block"
|
|
124
|
+
* operation.
|
|
125
|
+
*/
|
|
126
|
+
PerfPhase[PerfPhase["LsTcb"] = 20] = "LsTcb";
|
|
127
|
+
/**
|
|
128
|
+
* Time spent by the Angular Language Service calculating diagnostics.
|
|
129
|
+
*/
|
|
130
|
+
PerfPhase[PerfPhase["LsDiagnostics"] = 21] = "LsDiagnostics";
|
|
131
|
+
/**
|
|
132
|
+
* Time spent by the Angular Language Service calculating a "get component locations for template"
|
|
133
|
+
* operation.
|
|
134
|
+
*/
|
|
135
|
+
PerfPhase[PerfPhase["LsComponentLocations"] = 22] = "LsComponentLocations";
|
|
136
|
+
/**
|
|
137
|
+
* Tracks the number of `PerfPhase`s, and must appear at the end of the list.
|
|
138
|
+
*/
|
|
139
|
+
PerfPhase[PerfPhase["LAST"] = 23] = "LAST";
|
|
140
|
+
})(PerfPhase = exports.PerfPhase || (exports.PerfPhase = {}));
|
|
141
|
+
/**
|
|
142
|
+
* Represents some occurrence during compilation, and is tracked with a counter.
|
|
143
|
+
*/
|
|
144
|
+
var PerfEvent;
|
|
145
|
+
(function (PerfEvent) {
|
|
146
|
+
/**
|
|
147
|
+
* Counts the number of `.d.ts` files in the program.
|
|
148
|
+
*/
|
|
149
|
+
PerfEvent[PerfEvent["InputDtsFile"] = 0] = "InputDtsFile";
|
|
150
|
+
/**
|
|
151
|
+
* Counts the number of non-`.d.ts` files in the program.
|
|
152
|
+
*/
|
|
153
|
+
PerfEvent[PerfEvent["InputTsFile"] = 1] = "InputTsFile";
|
|
154
|
+
/**
|
|
155
|
+
* An `@Component` class was analyzed.
|
|
156
|
+
*/
|
|
157
|
+
PerfEvent[PerfEvent["AnalyzeComponent"] = 2] = "AnalyzeComponent";
|
|
158
|
+
/**
|
|
159
|
+
* An `@Directive` class was analyzed.
|
|
160
|
+
*/
|
|
161
|
+
PerfEvent[PerfEvent["AnalyzeDirective"] = 3] = "AnalyzeDirective";
|
|
162
|
+
/**
|
|
163
|
+
* An `@Injectable` class was analyzed.
|
|
164
|
+
*/
|
|
165
|
+
PerfEvent[PerfEvent["AnalyzeInjectable"] = 4] = "AnalyzeInjectable";
|
|
166
|
+
/**
|
|
167
|
+
* An `@NgModule` class was analyzed.
|
|
168
|
+
*/
|
|
169
|
+
PerfEvent[PerfEvent["AnalyzeNgModule"] = 5] = "AnalyzeNgModule";
|
|
170
|
+
/**
|
|
171
|
+
* An `@Pipe` class was analyzed.
|
|
172
|
+
*/
|
|
173
|
+
PerfEvent[PerfEvent["AnalyzePipe"] = 6] = "AnalyzePipe";
|
|
174
|
+
/**
|
|
175
|
+
* A trait was analyzed.
|
|
176
|
+
*
|
|
177
|
+
* In theory, this should be the sum of the `Analyze` counters for each decorator type.
|
|
178
|
+
*/
|
|
179
|
+
PerfEvent[PerfEvent["TraitAnalyze"] = 7] = "TraitAnalyze";
|
|
180
|
+
/**
|
|
181
|
+
* A trait had a prior analysis available from an incremental program, and did not need to be
|
|
182
|
+
* re-analyzed.
|
|
183
|
+
*/
|
|
184
|
+
PerfEvent[PerfEvent["TraitReuseAnalysis"] = 8] = "TraitReuseAnalysis";
|
|
185
|
+
/**
|
|
186
|
+
* A `ts.SourceFile` directly changed between the prior program and a new incremental compilation.
|
|
187
|
+
*/
|
|
188
|
+
PerfEvent[PerfEvent["SourceFilePhysicalChange"] = 9] = "SourceFilePhysicalChange";
|
|
189
|
+
/**
|
|
190
|
+
* A `ts.SourceFile` did not physically changed, but according to the file dependency graph, has
|
|
191
|
+
* logically changed between the prior program and a new incremental compilation.
|
|
192
|
+
*/
|
|
193
|
+
PerfEvent[PerfEvent["SourceFileLogicalChange"] = 10] = "SourceFileLogicalChange";
|
|
194
|
+
/**
|
|
195
|
+
* A `ts.SourceFile` has not logically changed and all of its analysis results were thus available
|
|
196
|
+
* for reuse.
|
|
197
|
+
*/
|
|
198
|
+
PerfEvent[PerfEvent["SourceFileReuseAnalysis"] = 11] = "SourceFileReuseAnalysis";
|
|
199
|
+
/**
|
|
200
|
+
* A Type Check Block (TCB) was generated.
|
|
201
|
+
*/
|
|
202
|
+
PerfEvent[PerfEvent["GenerateTcb"] = 12] = "GenerateTcb";
|
|
203
|
+
/**
|
|
204
|
+
* A Type Check Block (TCB) could not be generated because inlining was disabled, and the block
|
|
205
|
+
* would've required inlining.
|
|
206
|
+
*/
|
|
207
|
+
PerfEvent[PerfEvent["SkipGenerateTcbNoInline"] = 13] = "SkipGenerateTcbNoInline";
|
|
208
|
+
/**
|
|
209
|
+
* A `.ngtypecheck.ts` file could be reused from the previous program and did not need to be
|
|
210
|
+
* regenerated.
|
|
211
|
+
*/
|
|
212
|
+
PerfEvent[PerfEvent["ReuseTypeCheckFile"] = 14] = "ReuseTypeCheckFile";
|
|
213
|
+
/**
|
|
214
|
+
* The template type-checking program required changes and had to be updated in an incremental
|
|
215
|
+
* step.
|
|
216
|
+
*/
|
|
217
|
+
PerfEvent[PerfEvent["UpdateTypeCheckProgram"] = 15] = "UpdateTypeCheckProgram";
|
|
218
|
+
/**
|
|
219
|
+
* The compiler was able to prove that a `ts.SourceFile` did not need to be re-emitted.
|
|
220
|
+
*/
|
|
221
|
+
PerfEvent[PerfEvent["EmitSkipSourceFile"] = 16] = "EmitSkipSourceFile";
|
|
222
|
+
/**
|
|
223
|
+
* A `ts.SourceFile` was emitted.
|
|
224
|
+
*/
|
|
225
|
+
PerfEvent[PerfEvent["EmitSourceFile"] = 17] = "EmitSourceFile";
|
|
226
|
+
/**
|
|
227
|
+
* Tracks the number of `PrefEvent`s, and must appear at the end of the list.
|
|
228
|
+
*/
|
|
229
|
+
PerfEvent[PerfEvent["LAST"] = 18] = "LAST";
|
|
230
|
+
})(PerfEvent = exports.PerfEvent || (exports.PerfEvent = {}));
|
|
231
|
+
/**
|
|
232
|
+
* Represents a checkpoint during compilation at which the memory usage of the compiler should be
|
|
233
|
+
* recorded.
|
|
234
|
+
*/
|
|
235
|
+
var PerfCheckpoint;
|
|
236
|
+
(function (PerfCheckpoint) {
|
|
237
|
+
/**
|
|
238
|
+
* The point at which the `PerfRecorder` was created, and ideally tracks memory used before any
|
|
239
|
+
* compilation structures are created.
|
|
240
|
+
*/
|
|
241
|
+
PerfCheckpoint[PerfCheckpoint["Initial"] = 0] = "Initial";
|
|
242
|
+
/**
|
|
243
|
+
* The point just after the `ts.Program` has been created.
|
|
244
|
+
*/
|
|
245
|
+
PerfCheckpoint[PerfCheckpoint["TypeScriptProgramCreate"] = 1] = "TypeScriptProgramCreate";
|
|
246
|
+
/**
|
|
247
|
+
* The point just before Angular analysis starts.
|
|
248
|
+
*
|
|
249
|
+
* In the main usage pattern for the compiler, TypeScript diagnostics have been calculated at this
|
|
250
|
+
* point, so the `ts.TypeChecker` has fully ingested the current program, all `ts.Type` structures
|
|
251
|
+
* and `ts.Symbol`s have been created.
|
|
252
|
+
*/
|
|
253
|
+
PerfCheckpoint[PerfCheckpoint["PreAnalysis"] = 2] = "PreAnalysis";
|
|
254
|
+
/**
|
|
255
|
+
* The point just after Angular analysis completes.
|
|
256
|
+
*/
|
|
257
|
+
PerfCheckpoint[PerfCheckpoint["Analysis"] = 3] = "Analysis";
|
|
258
|
+
/**
|
|
259
|
+
* The point just after Angular resolution is complete.
|
|
260
|
+
*/
|
|
261
|
+
PerfCheckpoint[PerfCheckpoint["Resolve"] = 4] = "Resolve";
|
|
262
|
+
/**
|
|
263
|
+
* The point just after Type Check Blocks (TCBs) have been generated.
|
|
264
|
+
*/
|
|
265
|
+
PerfCheckpoint[PerfCheckpoint["TtcGeneration"] = 5] = "TtcGeneration";
|
|
266
|
+
/**
|
|
267
|
+
* The point just after the template type-checking program has been updated with any new TCBs.
|
|
268
|
+
*/
|
|
269
|
+
PerfCheckpoint[PerfCheckpoint["TtcUpdateProgram"] = 6] = "TtcUpdateProgram";
|
|
270
|
+
/**
|
|
271
|
+
* The point just before emit begins.
|
|
272
|
+
*
|
|
273
|
+
* In the main usage pattern for the compiler, all template type-checking diagnostics have been
|
|
274
|
+
* requested at this point.
|
|
275
|
+
*/
|
|
276
|
+
PerfCheckpoint[PerfCheckpoint["PreEmit"] = 7] = "PreEmit";
|
|
277
|
+
/**
|
|
278
|
+
* The point just after the program has been fully emitted.
|
|
279
|
+
*/
|
|
280
|
+
PerfCheckpoint[PerfCheckpoint["Emit"] = 8] = "Emit";
|
|
281
|
+
/**
|
|
282
|
+
* Tracks the number of `PerfCheckpoint`s, and must appear at the end of the list.
|
|
283
|
+
*/
|
|
284
|
+
PerfCheckpoint[PerfCheckpoint["LAST"] = 9] = "LAST";
|
|
285
|
+
})(PerfCheckpoint = exports.PerfCheckpoint || (exports.PerfCheckpoint = {}));
|
|
19
286
|
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9wZXJmL3NyYy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RGVjbGFyYXRpb25Ob2RlfSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXJmUmVjb3JkZXIge1xuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuXG4gIG1hcmsobmFtZTogc3RyaW5nLCBub2RlPzogRGVjbGFyYXRpb25Ob2RlLCBjYXRlZ29yeT86IHN0cmluZywgZGV0YWlsPzogc3RyaW5nKTogdm9pZDtcbiAgc3RhcnQobmFtZTogc3RyaW5nLCBub2RlPzogRGVjbGFyYXRpb25Ob2RlLCBjYXRlZ29yeT86IHN0cmluZywgZGV0YWlsPzogc3RyaW5nKTogbnVtYmVyO1xuICBzdG9wKHNwYW46IG51bWJlcik6IHZvaWQ7XG59XG4iXX0=
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9wZXJmL3NyYy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUg7O09BRUc7SUFDSCxJQUFZLFNBMklYO0lBM0lELFdBQVksU0FBUztRQUNuQjs7V0FFRztRQUNILHVEQUFXLENBQUE7UUFFWDs7OztXQUlHO1FBQ0gsMkNBQUssQ0FBQTtRQUVMOzs7OztXQUtHO1FBQ0gsK0VBQXVCLENBQUE7UUFFdkI7Ozs7V0FJRztRQUNILDZEQUFjLENBQUE7UUFFZDs7OztXQUlHO1FBQ0gsNkRBQWMsQ0FBQTtRQUVkOztXQUVHO1FBQ0gsMkVBQXFCLENBQUE7UUFFckI7O1dBRUc7UUFDSCxpREFBUSxDQUFBO1FBRVI7OztXQUdHO1FBQ0gsK0NBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gsNkRBQWMsQ0FBQTtRQUVkOztXQUVHO1FBQ0gsMkRBQWEsQ0FBQTtRQUViOztXQUVHO1FBQ0gsa0VBQWdCLENBQUE7UUFFaEI7OztXQUdHO1FBQ0gsOERBQWMsQ0FBQTtRQUVkOzs7OztXQUtHO1FBQ0gsZ0RBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gsb0VBQWlCLENBQUE7UUFFakI7O1dBRUc7UUFDSCw4REFBYyxDQUFBO1FBRWQ7O1dBRUc7UUFDSCxvREFBUyxDQUFBO1FBRVQ7OztXQUdHO1FBQ0gsOEVBQXNCLENBQUE7UUFFdEI7O1dBRUc7UUFDSCx3REFBVyxDQUFBO1FBRVg7OztXQUdHO1FBQ0gsMERBQVksQ0FBQTtRQUVaOzs7V0FHRztRQUNILDREQUFhLENBQUE7UUFFYjs7O1dBR0c7UUFDSCw0Q0FBSyxDQUFBO1FBRUw7O1dBRUc7UUFDSCw0REFBYSxDQUFBO1FBRWI7OztXQUdHO1FBQ0gsMEVBQW9CLENBQUE7UUFFcEI7O1dBRUc7UUFDSCwwQ0FBSSxDQUFBO0lBQ04sQ0FBQyxFQTNJVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQTJJcEI7SUFFRDs7T0FFRztJQUNILElBQVksU0F1R1g7SUF2R0QsV0FBWSxTQUFTO1FBQ25COztXQUVHO1FBQ0gseURBQVksQ0FBQTtRQUVaOztXQUVHO1FBQ0gsdURBQVcsQ0FBQTtRQUVYOztXQUVHO1FBQ0gsaUVBQWdCLENBQUE7UUFFaEI7O1dBRUc7UUFDSCxpRUFBZ0IsQ0FBQTtRQUVoQjs7V0FFRztRQUNILG1FQUFpQixDQUFBO1FBRWpCOztXQUVHO1FBQ0gsK0RBQWUsQ0FBQTtRQUVmOztXQUVHO1FBQ0gsdURBQVcsQ0FBQTtRQUVYOzs7O1dBSUc7UUFDSCx5REFBWSxDQUFBO1FBRVo7OztXQUdHO1FBQ0gscUVBQWtCLENBQUE7UUFFbEI7O1dBRUc7UUFDSCxpRkFBd0IsQ0FBQTtRQUV4Qjs7O1dBR0c7UUFDSCxnRkFBdUIsQ0FBQTtRQUV2Qjs7O1dBR0c7UUFDSCxnRkFBdUIsQ0FBQTtRQUV2Qjs7V0FFRztRQUNILHdEQUFXLENBQUE7UUFFWDs7O1dBR0c7UUFDSCxnRkFBdUIsQ0FBQTtRQUV2Qjs7O1dBR0c7UUFDSCxzRUFBa0IsQ0FBQTtRQUVsQjs7O1dBR0c7UUFDSCw4RUFBc0IsQ0FBQTtRQUV0Qjs7V0FFRztRQUNILHNFQUFrQixDQUFBO1FBRWxCOztXQUVHO1FBQ0gsOERBQWMsQ0FBQTtRQUVkOztXQUVHO1FBQ0gsMENBQUksQ0FBQTtJQUNOLENBQUMsRUF2R1csU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUF1R3BCO0lBRUQ7OztPQUdHO0lBQ0gsSUFBWSxjQTBEWDtJQTFERCxXQUFZLGNBQWM7UUFDeEI7OztXQUdHO1FBQ0gseURBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gseUZBQXVCLENBQUE7UUFFdkI7Ozs7OztXQU1HO1FBQ0gsaUVBQVcsQ0FBQTtRQUVYOztXQUVHO1FBQ0gsMkRBQVEsQ0FBQTtRQUVSOztXQUVHO1FBQ0gseURBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gscUVBQWEsQ0FBQTtRQUViOztXQUVHO1FBQ0gsMkVBQWdCLENBQUE7UUFFaEI7Ozs7O1dBS0c7UUFDSCx5REFBTyxDQUFBO1FBRVA7O1dBRUc7UUFDSCxtREFBSSxDQUFBO1FBRUo7O1dBRUc7UUFDSCxtREFBSSxDQUFBO0lBQ04sQ0FBQyxFQTFEVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQTBEekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIHBoYXNlIG9mIGNvbXBpbGF0aW9uIGZvciB3aGljaCB0aW1lIGlzIHRyYWNrZWQgaW4gYSBkaXN0aW5jdCBidWNrZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFBlcmZQaGFzZSB7XG4gIC8qKlxuICAgKiBUaGUgXCJkZWZhdWx0XCIgcGhhc2Ugd2hpY2ggdHJhY2tzIHRpbWUgbm90IHNwZW50IGluIGFueSBvdGhlciBwaGFzZS5cbiAgICovXG4gIFVuYWNjb3VudGVkLFxuXG4gIC8qKlxuICAgKiBUaW1lIHNwZW50IHNldHRpbmcgdXAgdGhlIGNvbXBpbGVyLCBiZWZvcmUgYSBUeXBlU2NyaXB0IHByb2dyYW0gaXMgY3JlYXRlZC5cbiAgICpcbiAgICogVGhpcyBpbmNsdWRlcyBvcGVyYXRpb25zIGxpa2UgY29uZmlndXJpbmcgdGhlIGB0cy5Db21waWxlckhvc3RgIGFuZCBhbnkgd3JhcHBlcnMuXG4gICAqL1xuICBTZXR1cCxcblxuICAvKipcbiAgICogVGltZSBzcGVudCBpbiBgdHMuY3JlYXRlUHJvZ3JhbWAsIGluY2x1ZGluZyByZWFkaW5nIGFuZCBwYXJzaW5nIGB0cy5Tb3VyY2VGaWxlYHMgaW4gdGhlXG4gICAqIGB0cy5Db21waWxlckhvc3RgLlxuICAgKlxuICAgKiBUaGlzIG1pZ2h0IGJlIGFuIGluY3JlbWVudGFsIHByb2dyYW0gY3JlYXRpb24gb3BlcmF0aW9uLlxuICAgKi9cbiAgVHlwZVNjcmlwdFByb2dyYW1DcmVhdGUsXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgcmVjb25jaWxpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIG9sZCBgdHMuUHJvZ3JhbWAgd2l0aCB0aGUgbmV3IGluY3JlbWVudGFsIG9uZS5cbiAgICpcbiAgICogT25seSBwcmVzZW50IGluIGluY3JlbWVudGFsIGNvbXBpbGF0aW9ucy5cbiAgICovXG4gIFJlY29uY2lsaWF0aW9uLFxuXG4gIC8qKlxuICAgKiBUaW1lIHNwZW50IHVwZGF0aW5nIGFuIGBOZ0NvbXBpbGVyYCBpbnN0YW5jZSB3aXRoIGEgcmVzb3VyY2Utb25seSBjaGFuZ2UuXG4gICAqXG4gICAqIE9ubHkgcHJlc2VudCBpbiBpbmNyZW1lbnRhbCBjb21waWxhdGlvbnMgd2hlcmUgdGhlIGNoYW5nZSB3YXMgcmVzb3VyY2Utb25seS5cbiAgICovXG4gIFJlc291cmNlVXBkYXRlLFxuXG4gIC8qKlxuICAgKiBUaW1lIHNwZW50IGNhbGN1bGF0aW5nIHRoZSBwbGFpbiBUeXBlU2NyaXB0IGRpYWdub3N0aWNzIChzdHJ1Y3R1cmFsIGFuZCBzZW1hbnRpYykuXG4gICAqL1xuICBUeXBlU2NyaXB0RGlhZ25vc3RpY3MsXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgaW4gQW5ndWxhciBhbmFseXNpcyBvZiBpbmRpdmlkdWFsIGNsYXNzZXMgaW4gdGhlIHByb2dyYW0uXG4gICAqL1xuICBBbmFseXNpcyxcblxuICAvKipcbiAgICogVGltZSBzcGVudCBpbiBBbmd1bGFyIGdsb2JhbCBhbmFseXNpcyAoc3ludGhlc2lzIG9mIGFuYWx5c2lzIGluZm9ybWF0aW9uIGludG8gYSBjb21wbGV0ZVxuICAgKiB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwcm9ncmFtKS5cbiAgICovXG4gIFJlc29sdmUsXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgYnVpbGRpbmcgdGhlIGltcG9ydCBncmFwaCBvZiB0aGUgcHJvZ3JhbSBpbiBvcmRlciB0byBwZXJmb3JtIGN5Y2xlIGRldGVjdGlvbi5cbiAgICovXG4gIEN5Y2xlRGV0ZWN0aW9uLFxuXG4gIC8qKlxuICAgKiBUaW1lIHNwZW50IGdlbmVyYXRpbmcgdGhlIHRleHQgb2YgVHlwZSBDaGVjayBCbG9ja3MgaW4gb3JkZXIgdG8gcGVyZm9ybSB0ZW1wbGF0ZSB0eXBlIGNoZWNraW5nLlxuICAgKi9cbiAgVGNiR2VuZXJhdGlvbixcblxuICAvKipcbiAgICogVGltZSBzcGVudCB1cGRhdGluZyB0aGUgYHRzLlByb2dyYW1gIHdpdGggbmV3IFR5cGUgQ2hlY2sgQmxvY2sgY29kZS5cbiAgICovXG4gIFRjYlVwZGF0ZVByb2dyYW0sXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgYnkgVHlwZVNjcmlwdCBwZXJmb3JtaW5nIGl0cyBlbWl0IG9wZXJhdGlvbnMsIGluY2x1ZGluZyBkb3dubGV2ZWxpbmcgYW5kIHdyaXRpbmdcbiAgICogb3V0cHV0IGZpbGVzLlxuICAgKi9cbiAgVHlwZVNjcmlwdEVtaXQsXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgYnkgQW5ndWxhciBwZXJmb3JtaW5nIGNvZGUgdHJhbnNmb3JtYXRpb25zIG9mIEFTVHMgYXMgdGhleSdyZSBhYm91dCB0byBiZSBlbWl0dGVkLlxuICAgKlxuICAgKiBUaGlzIGluY2x1ZGVzIHRoZSBhY3R1YWwgY29kZSBnZW5lcmF0aW9uIHN0ZXAgZm9yIHRlbXBsYXRlcywgYW5kIG9jY3VycyBkdXJpbmcgdGhlIGVtaXQgcGhhc2VcbiAgICogKGJ1dCBpcyB0cmFja2VkIHNlcGFyYXRlbHkgZnJvbSBgVHlwZVNjcmlwdEVtaXRgIHRpbWUpLlxuICAgKi9cbiAgQ29tcGlsZSxcblxuICAvKipcbiAgICogVGltZSBzcGVudCBwZXJmb3JtaW5nIGEgYFRlbXBsYXRlVHlwZUNoZWNrZXJgIGF1dG9jb21wbGV0aW9uIG9wZXJhdGlvbi5cbiAgICovXG4gIFR0Y0F1dG9jb21wbGV0aW9uLFxuXG4gIC8qKlxuICAgKiBUaW1lIHNwZW50IGNvbXB1dGluZyB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIGRpYWdub3N0aWNzLlxuICAgKi9cbiAgVHRjRGlhZ25vc3RpY3MsXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgZ2V0dGluZyBhIGBTeW1ib2xgIGZyb20gdGhlIGBUZW1wbGF0ZVR5cGVDaGVja2VyYC5cbiAgICovXG4gIFR0Y1N5bWJvbCxcblxuICAvKipcbiAgICogVGltZSBzcGVudCBieSB0aGUgQW5ndWxhciBMYW5ndWFnZSBTZXJ2aWNlIGNhbGN1bGF0aW5nIGEgXCJnZXQgcmVmZXJlbmNlc1wiIG9yIGEgcmVuYW1pbmdcbiAgICogb3BlcmF0aW9uLlxuICAgKi9cbiAgTHNSZWZlcmVuY2VzQW5kUmVuYW1lcyxcblxuICAvKipcbiAgICogVGltZSBzcGVudCBieSB0aGUgQW5ndWxhciBMYW5ndWFnZSBTZXJ2aWNlIGNhbGN1bGF0aW5nIGEgXCJxdWljayBpbmZvXCIgb3BlcmF0aW9uLlxuICAgKi9cbiAgTHNRdWlja0luZm8sXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgYnkgdGhlIEFuZ3VsYXIgTGFuZ3VhZ2UgU2VydmljZSBjYWxjdWxhdGluZyBhIFwiZ2V0IHR5cGUgZGVmaW5pdGlvblwiIG9yIFwiZ2V0XG4gICAqIGRlZmluaXRpb25cIiBvcGVyYXRpb24uXG4gICAqL1xuICBMc0RlZmluaXRpb24sXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgYnkgdGhlIEFuZ3VsYXIgTGFuZ3VhZ2UgU2VydmljZSBjYWxjdWxhdGluZyBhIFwiZ2V0IGNvbXBsZXRpb25zXCIgKEFLQSBhdXRvY29tcGxldGUpXG4gICAqIG9wZXJhdGlvbi5cbiAgICovXG4gIExzQ29tcGxldGlvbnMsXG5cbiAgLyoqXG4gICAqIFRpbWUgc3BlbnQgYnkgdGhlIEFuZ3VsYXIgTGFuZ3VhZ2UgU2VydmljZSBjYWxjdWxhdGluZyBhIFwidmlldyB0ZW1wbGF0ZSB0eXBlY2hlY2sgYmxvY2tcIlxuICAgKiBvcGVyYXRpb24uXG4gICAqL1xuICBMc1RjYixcblxuICAvKipcbiAgICogVGltZSBzcGVudCBieSB0aGUgQW5ndWxhciBMYW5ndWFnZSBTZXJ2aWNlIGNhbGN1bGF0aW5nIGRpYWdub3N0aWNzLlxuICAgKi9cbiAgTHNEaWFnbm9zdGljcyxcblxuICAvKipcbiAgICogVGltZSBzcGVudCBieSB0aGUgQW5ndWxhciBMYW5ndWFnZSBTZXJ2aWNlIGNhbGN1bGF0aW5nIGEgXCJnZXQgY29tcG9uZW50IGxvY2F0aW9ucyBmb3IgdGVtcGxhdGVcIlxuICAgKiBvcGVyYXRpb24uXG4gICAqL1xuICBMc0NvbXBvbmVudExvY2F0aW9ucyxcblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBudW1iZXIgb2YgYFBlcmZQaGFzZWBzLCBhbmQgbXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC5cbiAgICovXG4gIExBU1QsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBzb21lIG9jY3VycmVuY2UgZHVyaW5nIGNvbXBpbGF0aW9uLCBhbmQgaXMgdHJhY2tlZCB3aXRoIGEgY291bnRlci5cbiAqL1xuZXhwb3J0IGVudW0gUGVyZkV2ZW50IHtcbiAgLyoqXG4gICAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGAuZC50c2AgZmlsZXMgaW4gdGhlIHByb2dyYW0uXG4gICAqL1xuICBJbnB1dER0c0ZpbGUsXG5cbiAgLyoqXG4gICAqIENvdW50cyB0aGUgbnVtYmVyIG9mIG5vbi1gLmQudHNgIGZpbGVzIGluIHRoZSBwcm9ncmFtLlxuICAgKi9cbiAgSW5wdXRUc0ZpbGUsXG5cbiAgLyoqXG4gICAqIEFuIGBAQ29tcG9uZW50YCBjbGFzcyB3YXMgYW5hbHl6ZWQuXG4gICAqL1xuICBBbmFseXplQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBBbiBgQERpcmVjdGl2ZWAgY2xhc3Mgd2FzIGFuYWx5emVkLlxuICAgKi9cbiAgQW5hbHl6ZURpcmVjdGl2ZSxcblxuICAvKipcbiAgICogQW4gYEBJbmplY3RhYmxlYCBjbGFzcyB3YXMgYW5hbHl6ZWQuXG4gICAqL1xuICBBbmFseXplSW5qZWN0YWJsZSxcblxuICAvKipcbiAgICogQW4gYEBOZ01vZHVsZWAgY2xhc3Mgd2FzIGFuYWx5emVkLlxuICAgKi9cbiAgQW5hbHl6ZU5nTW9kdWxlLFxuXG4gIC8qKlxuICAgKiBBbiBgQFBpcGVgIGNsYXNzIHdhcyBhbmFseXplZC5cbiAgICovXG4gIEFuYWx5emVQaXBlLFxuXG4gIC8qKlxuICAgKiBBIHRyYWl0IHdhcyBhbmFseXplZC5cbiAgICpcbiAgICogSW4gdGhlb3J5LCB0aGlzIHNob3VsZCBiZSB0aGUgc3VtIG9mIHRoZSBgQW5hbHl6ZWAgY291bnRlcnMgZm9yIGVhY2ggZGVjb3JhdG9yIHR5cGUuXG4gICAqL1xuICBUcmFpdEFuYWx5emUsXG5cbiAgLyoqXG4gICAqIEEgdHJhaXQgaGFkIGEgcHJpb3IgYW5hbHlzaXMgYXZhaWxhYmxlIGZyb20gYW4gaW5jcmVtZW50YWwgcHJvZ3JhbSwgYW5kIGRpZCBub3QgbmVlZCB0byBiZVxuICAgKiByZS1hbmFseXplZC5cbiAgICovXG4gIFRyYWl0UmV1c2VBbmFseXNpcyxcblxuICAvKipcbiAgICogQSBgdHMuU291cmNlRmlsZWAgZGlyZWN0bHkgY2hhbmdlZCBiZXR3ZWVuIHRoZSBwcmlvciBwcm9ncmFtIGFuZCBhIG5ldyBpbmNyZW1lbnRhbCBjb21waWxhdGlvbi5cbiAgICovXG4gIFNvdXJjZUZpbGVQaHlzaWNhbENoYW5nZSxcblxuICAvKipcbiAgICogQSBgdHMuU291cmNlRmlsZWAgZGlkIG5vdCBwaHlzaWNhbGx5IGNoYW5nZWQsIGJ1dCBhY2NvcmRpbmcgdG8gdGhlIGZpbGUgZGVwZW5kZW5jeSBncmFwaCwgaGFzXG4gICAqIGxvZ2ljYWxseSBjaGFuZ2VkIGJldHdlZW4gdGhlIHByaW9yIHByb2dyYW0gYW5kIGEgbmV3IGluY3JlbWVudGFsIGNvbXBpbGF0aW9uLlxuICAgKi9cbiAgU291cmNlRmlsZUxvZ2ljYWxDaGFuZ2UsXG5cbiAgLyoqXG4gICAqIEEgYHRzLlNvdXJjZUZpbGVgIGhhcyBub3QgbG9naWNhbGx5IGNoYW5nZWQgYW5kIGFsbCBvZiBpdHMgYW5hbHlzaXMgcmVzdWx0cyB3ZXJlIHRodXMgYXZhaWxhYmxlXG4gICAqIGZvciByZXVzZS5cbiAgICovXG4gIFNvdXJjZUZpbGVSZXVzZUFuYWx5c2lzLFxuXG4gIC8qKlxuICAgKiBBIFR5cGUgQ2hlY2sgQmxvY2sgKFRDQikgd2FzIGdlbmVyYXRlZC5cbiAgICovXG4gIEdlbmVyYXRlVGNiLFxuXG4gIC8qKlxuICAgKiBBIFR5cGUgQ2hlY2sgQmxvY2sgKFRDQikgY291bGQgbm90IGJlIGdlbmVyYXRlZCBiZWNhdXNlIGlubGluaW5nIHdhcyBkaXNhYmxlZCwgYW5kIHRoZSBibG9ja1xuICAgKiB3b3VsZCd2ZSByZXF1aXJlZCBpbmxpbmluZy5cbiAgICovXG4gIFNraXBHZW5lcmF0ZVRjYk5vSW5saW5lLFxuXG4gIC8qKlxuICAgKiBBIGAubmd0eXBlY2hlY2sudHNgIGZpbGUgY291bGQgYmUgcmV1c2VkIGZyb20gdGhlIHByZXZpb3VzIHByb2dyYW0gYW5kIGRpZCBub3QgbmVlZCB0byBiZVxuICAgKiByZWdlbmVyYXRlZC5cbiAgICovXG4gIFJldXNlVHlwZUNoZWNrRmlsZSxcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbSByZXF1aXJlZCBjaGFuZ2VzIGFuZCBoYWQgdG8gYmUgdXBkYXRlZCBpbiBhbiBpbmNyZW1lbnRhbFxuICAgKiBzdGVwLlxuICAgKi9cbiAgVXBkYXRlVHlwZUNoZWNrUHJvZ3JhbSxcblxuICAvKipcbiAgICogVGhlIGNvbXBpbGVyIHdhcyBhYmxlIHRvIHByb3ZlIHRoYXQgYSBgdHMuU291cmNlRmlsZWAgZGlkIG5vdCBuZWVkIHRvIGJlIHJlLWVtaXR0ZWQuXG4gICAqL1xuICBFbWl0U2tpcFNvdXJjZUZpbGUsXG5cbiAgLyoqXG4gICAqIEEgYHRzLlNvdXJjZUZpbGVgIHdhcyBlbWl0dGVkLlxuICAgKi9cbiAgRW1pdFNvdXJjZUZpbGUsXG5cbiAgLyoqXG4gICAqIFRyYWNrcyB0aGUgbnVtYmVyIG9mIGBQcmVmRXZlbnRgcywgYW5kIG11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuXG4gICAqL1xuICBMQVNULFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjaGVja3BvaW50IGR1cmluZyBjb21waWxhdGlvbiBhdCB3aGljaCB0aGUgbWVtb3J5IHVzYWdlIG9mIHRoZSBjb21waWxlciBzaG91bGQgYmVcbiAqIHJlY29yZGVkLlxuICovXG5leHBvcnQgZW51bSBQZXJmQ2hlY2twb2ludCB7XG4gIC8qKlxuICAgKiBUaGUgcG9pbnQgYXQgd2hpY2ggdGhlIGBQZXJmUmVjb3JkZXJgIHdhcyBjcmVhdGVkLCBhbmQgaWRlYWxseSB0cmFja3MgbWVtb3J5IHVzZWQgYmVmb3JlIGFueVxuICAgKiBjb21waWxhdGlvbiBzdHJ1Y3R1cmVzIGFyZSBjcmVhdGVkLlxuICAgKi9cbiAgSW5pdGlhbCxcblxuICAvKipcbiAgICogVGhlIHBvaW50IGp1c3QgYWZ0ZXIgdGhlIGB0cy5Qcm9ncmFtYCBoYXMgYmVlbiBjcmVhdGVkLlxuICAgKi9cbiAgVHlwZVNjcmlwdFByb2dyYW1DcmVhdGUsXG5cbiAgLyoqXG4gICAqIFRoZSBwb2ludCBqdXN0IGJlZm9yZSBBbmd1bGFyIGFuYWx5c2lzIHN0YXJ0cy5cbiAgICpcbiAgICogSW4gdGhlIG1haW4gdXNhZ2UgcGF0dGVybiBmb3IgdGhlIGNvbXBpbGVyLCBUeXBlU2NyaXB0IGRpYWdub3N0aWNzIGhhdmUgYmVlbiBjYWxjdWxhdGVkIGF0IHRoaXNcbiAgICogcG9pbnQsIHNvIHRoZSBgdHMuVHlwZUNoZWNrZXJgIGhhcyBmdWxseSBpbmdlc3RlZCB0aGUgY3VycmVudCBwcm9ncmFtLCBhbGwgYHRzLlR5cGVgIHN0cnVjdHVyZXNcbiAgICogYW5kIGB0cy5TeW1ib2xgcyBoYXZlIGJlZW4gY3JlYXRlZC5cbiAgICovXG4gIFByZUFuYWx5c2lzLFxuXG4gIC8qKlxuICAgKiBUaGUgcG9pbnQganVzdCBhZnRlciBBbmd1bGFyIGFuYWx5c2lzIGNvbXBsZXRlcy5cbiAgICovXG4gIEFuYWx5c2lzLFxuXG4gIC8qKlxuICAgKiBUaGUgcG9pbnQganVzdCBhZnRlciBBbmd1bGFyIHJlc29sdXRpb24gaXMgY29tcGxldGUuXG4gICAqL1xuICBSZXNvbHZlLFxuXG4gIC8qKlxuICAgKiBUaGUgcG9pbnQganVzdCBhZnRlciBUeXBlIENoZWNrIEJsb2NrcyAoVENCcykgaGF2ZSBiZWVuIGdlbmVyYXRlZC5cbiAgICovXG4gIFR0Y0dlbmVyYXRpb24sXG5cbiAgLyoqXG4gICAqIFRoZSBwb2ludCBqdXN0IGFmdGVyIHRoZSB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIHByb2dyYW0gaGFzIGJlZW4gdXBkYXRlZCB3aXRoIGFueSBuZXcgVENCcy5cbiAgICovXG4gIFR0Y1VwZGF0ZVByb2dyYW0sXG5cbiAgLyoqXG4gICAqIFRoZSBwb2ludCBqdXN0IGJlZm9yZSBlbWl0IGJlZ2lucy5cbiAgICpcbiAgICogSW4gdGhlIG1haW4gdXNhZ2UgcGF0dGVybiBmb3IgdGhlIGNvbXBpbGVyLCBhbGwgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBkaWFnbm9zdGljcyBoYXZlIGJlZW5cbiAgICogcmVxdWVzdGVkIGF0IHRoaXMgcG9pbnQuXG4gICAqL1xuICBQcmVFbWl0LFxuXG4gIC8qKlxuICAgKiBUaGUgcG9pbnQganVzdCBhZnRlciB0aGUgcHJvZ3JhbSBoYXMgYmVlbiBmdWxseSBlbWl0dGVkLlxuICAgKi9cbiAgRW1pdCxcblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBudW1iZXIgb2YgYFBlcmZDaGVja3BvaW50YHMsIGFuZCBtdXN0IGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LlxuICAgKi9cbiAgTEFTVCxcbn1cblxuLyoqXG4gKiBSZWNvcmRzIHRpbWluZywgbWVtb3J5LCBvciBjb3VudHMgYXQgc3BlY2lmaWMgcG9pbnRzIGluIHRoZSBjb21waWxlcidzIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJmUmVjb3JkZXIge1xuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IHBoYXNlIG9mIGNvbXBpbGF0aW9uLlxuICAgKlxuICAgKiBUaW1lIHNwZW50IGluIHRoZSBwcmV2aW91cyBwaGFzZSB3aWxsIGJlIGFjY291bnRlZCB0byB0aGF0IHBoYXNlLiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvclxuICAgKiBleGl0aW5nIHRoZSBwaGFzZSB3aGVuIHdvcmsgdGhhdCBzaG91bGQgYmUgdHJhY2tlZCB3aXRoaW4gaXQgaXMgY29tcGxldGVkLCBhbmQgZWl0aGVyIHJldHVybmluZ1xuICAgKiB0byB0aGUgcHJldmlvdXMgcGhhc2Ugb3IgdHJhbnNpdGlvbmluZyB0byB0aGUgbmV4dCBvbmUgZGlyZWN0bHkuXG4gICAqXG4gICAqIEluIGdlbmVyYWwsIHByZWZlciB1c2luZyBgaW5QaGFzZSgpYCB0byBpbnN0cnVtZW50IGEgc2VjdGlvbiBvZiBjb2RlLCBhcyBpdCBhdXRvbWF0aWNhbGx5XG4gICAqIGhhbmRsZXMgZW50ZXJpbmcgYW5kIGV4aXRpbmcgdGhlIHBoYXNlLiBgcGhhc2UoKWAgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIHRoZSBmb3JtZXIgQVBJXG4gICAqIGNhbm5vdCBiZSBjbGVhbmx5IGFwcGxpZWQgdG8gYSBwYXJ0aWN1bGFyIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgdGhlIHByZXZpb3VzIHBoYXNlXG4gICAqL1xuICBwaGFzZShwaGFzZTogUGVyZlBoYXNlKTogUGVyZlBoYXNlO1xuXG4gIC8qKlxuICAgKiBSdW4gYGZuYCBpbiB0aGUgZ2l2ZW4gYFBlcmZQaGFzZWAgYW5kIHJldHVybiB0aGUgcmVzdWx0LlxuICAgKlxuICAgKiBFbnRlcnMgYHBoYXNlYCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBnaXZlbiBgZm5gLCB0aGVuIGV4aXRzIHRoZSBwaGFzZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LlxuICAgKiBQcmVmZXIgdGhpcyBBUEkgdG8gYHBoYXNlKClgIHdoZXJlIHBvc3NpYmxlLlxuICAgKi9cbiAgaW5QaGFzZTxUPihwaGFzZTogUGVyZlBoYXNlLCBmbjogKCkgPT4gVCk6IFQ7XG5cbiAgLyoqXG4gICAqIFJlY29yZCB0aGUgbWVtb3J5IHVzYWdlIG9mIHRoZSBjb21waWxlciBhdCB0aGUgZ2l2ZW4gY2hlY2twb2ludC5cbiAgICovXG4gIG1lbW9yeShhZnRlcjogUGVyZkNoZWNrcG9pbnQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWNvcmQgdGhhdCBhIHNwZWNpZmljIGV2ZW50IGhhcyBvY2N1cnJlZCwgcG9zc2libHkgbW9yZSB0aGFuIG9uY2UuXG4gICAqL1xuICBldmVudENvdW50KGV2ZW50OiBQZXJmRXZlbnQsIGluY3JlbWVudEJ5PzogbnVtYmVyKTogdm9pZDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBgUGVyZlJlY29yZGVyYCB0byBhbiBlbXB0eSBzdGF0ZSAoY2xlYXIgYWxsIHRyYWNrZWQgc3RhdGlzdGljcykgYW5kIHJlc2V0IHRoZSB6ZXJvXG4gICAqIHBvaW50IHRvIHRoZSBjdXJyZW50IHRpbWUuXG4gICAqL1xuICByZXNldCgpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
/// <amd-module name="@angular/compiler-cli/src/ngtsc/perf/src/noop" />
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
2
9
|
import { PerfRecorder } from './api';
|
|
3
10
|
export declare const NOOP_PERF_RECORDER: PerfRecorder;
|
|
@@ -4,19 +4,34 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/compiler-cli/src/ngtsc/perf/src/noop", ["require", "exports"], factory);
|
|
7
|
+
define("@angular/compiler-cli/src/ngtsc/perf/src/noop", ["require", "exports", "@angular/compiler-cli/src/ngtsc/perf/src/api"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.NOOP_PERF_RECORDER = void 0;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @license
|
|
15
|
+
* Copyright Google LLC All Rights Reserved.
|
|
16
|
+
*
|
|
17
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
18
|
+
* found in the LICENSE file at https://angular.io/license
|
|
19
|
+
*/
|
|
20
|
+
var api_1 = require("@angular/compiler-cli/src/ngtsc/perf/src/api");
|
|
21
|
+
var NoopPerfRecorder = /** @class */ (function () {
|
|
22
|
+
function NoopPerfRecorder() {
|
|
23
|
+
}
|
|
24
|
+
NoopPerfRecorder.prototype.eventCount = function () { };
|
|
25
|
+
NoopPerfRecorder.prototype.memory = function () { };
|
|
26
|
+
NoopPerfRecorder.prototype.phase = function () {
|
|
27
|
+
return api_1.PerfPhase.Unaccounted;
|
|
28
|
+
};
|
|
29
|
+
NoopPerfRecorder.prototype.inPhase = function (phase, fn) {
|
|
30
|
+
return fn();
|
|
31
|
+
};
|
|
32
|
+
NoopPerfRecorder.prototype.reset = function () { };
|
|
33
|
+
return NoopPerfRecorder;
|
|
34
|
+
}());
|
|
35
|
+
exports.NOOP_PERF_RECORDER = new NoopPerfRecorder();
|
|
21
36
|
});
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGVyZi9zcmMvbm9vcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCxvRUFBOEM7SUFFOUM7UUFBQTtRQWNBLENBQUM7UUFiQyxxQ0FBVSxHQUFWLGNBQW9CLENBQUM7UUFFckIsaUNBQU0sR0FBTixjQUFnQixDQUFDO1FBRWpCLGdDQUFLLEdBQUw7WUFDRSxPQUFPLGVBQVMsQ0FBQyxXQUFXLENBQUM7UUFDL0IsQ0FBQztRQUVELGtDQUFPLEdBQVAsVUFBVyxLQUFnQixFQUFFLEVBQVc7WUFDdEMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxnQ0FBSyxHQUFMLGNBQWUsQ0FBQztRQUNsQix1QkFBQztJQUFELENBQUMsQUFkRCxJQWNDO0lBR1ksUUFBQSxrQkFBa0IsR0FBaUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1BlcmZQaGFzZSwgUGVyZlJlY29yZGVyfSBmcm9tICcuL2FwaSc7XG5cbmNsYXNzIE5vb3BQZXJmUmVjb3JkZXIgaW1wbGVtZW50cyBQZXJmUmVjb3JkZXIge1xuICBldmVudENvdW50KCk6IHZvaWQge31cblxuICBtZW1vcnkoKTogdm9pZCB7fVxuXG4gIHBoYXNlKCk6IFBlcmZQaGFzZSB7XG4gICAgcmV0dXJuIFBlcmZQaGFzZS5VbmFjY291bnRlZDtcbiAgfVxuXG4gIGluUGhhc2U8VD4ocGhhc2U6IFBlcmZQaGFzZSwgZm46ICgpID0+IFQpOiBUIHtcbiAgICByZXR1cm4gZm4oKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge31cbn1cblxuXG5leHBvcnQgY29uc3QgTk9PUF9QRVJGX1JFQ09SREVSOiBQZXJmUmVjb3JkZXIgPSBuZXcgTm9vcFBlcmZSZWNvcmRlcigpO1xuIl19
|