@angular/language-service 8.0.0-rc.3 → 8.0.1

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v8.0.0-rc.3
2
+ * @license Angular v8.0.1
3
3
  * (c) 2010-2019 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -6061,6 +6061,12 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
6061
6061
  JitEvaluator.prototype.evaluateStatements = function (sourceUrl, statements, reflector, createSourceMaps) {
6062
6062
  var converter = new JitEmitterVisitor(reflector);
6063
6063
  var ctx = EmitterVisitorContext.createRoot();
6064
+ // Ensure generated code is in strict mode
6065
+ if (statements.length > 0 && !isUseStrictStatement(statements[0])) {
6066
+ statements = __spread([
6067
+ literal('use strict').toStmt()
6068
+ ], statements);
6069
+ }
6064
6070
  converter.visitAllStatements(statements, ctx);
6065
6071
  converter.createReturnStmt(ctx);
6066
6072
  return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps);
@@ -6171,6 +6177,9 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
6171
6177
  };
6172
6178
  return JitEmitterVisitor;
6173
6179
  }(AbstractJsEmitterVisitor));
6180
+ function isUseStrictStatement(statement) {
6181
+ return statement.isEquivalent(literal('use strict').toStmt());
6182
+ }
6174
6183
 
6175
6184
  /**
6176
6185
  * @license
@@ -7472,6 +7481,9 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7472
7481
  var actionStmts = [];
7473
7482
  flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);
7474
7483
  prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);
7484
+ if (visitor.usesImplicitReceiver) {
7485
+ localResolver.notifyImplicitReceiverUse();
7486
+ }
7475
7487
  var lastIndex = actionStmts.length - 1;
7476
7488
  var preventDefaultVar = null;
7477
7489
  if (lastIndex >= 0) {
@@ -7519,6 +7531,9 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7519
7531
  var visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, interpolationFunction);
7520
7532
  var outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);
7521
7533
  var stmts = getStatementsFromVisitor(visitor, bindingId);
7534
+ if (visitor.usesImplicitReceiver) {
7535
+ localResolver.notifyImplicitReceiverUse();
7536
+ }
7522
7537
  if (visitor.temporaryCount === 0 && form == BindingForm.TrySimple) {
7523
7538
  return new ConvertPropertyBindingResult([], outputExpr);
7524
7539
  }
@@ -7544,6 +7559,9 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7544
7559
  function convertUpdateArguments(localResolver, contextVariableExpression, expressionWithArgumentsToExtract, bindingId) {
7545
7560
  var visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId, undefined);
7546
7561
  var outputExpr = expressionWithArgumentsToExtract.visit(visitor, _Mode.Expression);
7562
+ if (visitor.usesImplicitReceiver) {
7563
+ localResolver.notifyImplicitReceiverUse();
7564
+ }
7547
7565
  var stmts = getStatementsFromVisitor(visitor, bindingId);
7548
7566
  // Removing the first argument, because it was a length for ViewEngine, not Ivy.
7549
7567
  var args = outputExpr.args.slice(1);
@@ -7643,6 +7661,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7643
7661
  this._resultMap = new Map();
7644
7662
  this._currentTemporary = 0;
7645
7663
  this.temporaryCount = 0;
7664
+ this.usesImplicitReceiver = false;
7646
7665
  }
7647
7666
  _AstToIrVisitor.prototype.visitBinary = function (ast, mode) {
7648
7667
  var op;
@@ -7722,6 +7741,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7722
7741
  };
7723
7742
  _AstToIrVisitor.prototype.visitImplicitReceiver = function (ast, mode) {
7724
7743
  ensureExpressionMode(mode, ast);
7744
+ this.usesImplicitReceiver = true;
7725
7745
  return this._implicitReceiver;
7726
7746
  };
7727
7747
  _AstToIrVisitor.prototype.visitInterpolation = function (ast, mode) {
@@ -7785,11 +7805,15 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7785
7805
  }
7786
7806
  else {
7787
7807
  var args = this.visitAll(ast.args, _Mode.Expression);
7808
+ var prevUsesImplicitReceiver = this.usesImplicitReceiver;
7788
7809
  var result = null;
7789
7810
  var receiver = this._visit(ast.receiver, _Mode.Expression);
7790
7811
  if (receiver === this._implicitReceiver) {
7791
7812
  var varExpr = this._getLocal(ast.name);
7792
7813
  if (varExpr) {
7814
+ // Restore the previous "usesImplicitReceiver" state since the implicit
7815
+ // receiver has been replaced with a resolved local expression.
7816
+ this.usesImplicitReceiver = prevUsesImplicitReceiver;
7793
7817
  result = varExpr.callFn(args);
7794
7818
  }
7795
7819
  }
@@ -7812,9 +7836,15 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7812
7836
  }
7813
7837
  else {
7814
7838
  var result = null;
7839
+ var prevUsesImplicitReceiver = this.usesImplicitReceiver;
7815
7840
  var receiver = this._visit(ast.receiver, _Mode.Expression);
7816
7841
  if (receiver === this._implicitReceiver) {
7817
7842
  result = this._getLocal(ast.name);
7843
+ if (result) {
7844
+ // Restore the previous "usesImplicitReceiver" state since the implicit
7845
+ // receiver has been replaced with a resolved local expression.
7846
+ this.usesImplicitReceiver = prevUsesImplicitReceiver;
7847
+ }
7818
7848
  }
7819
7849
  if (result == null) {
7820
7850
  result = receiver.prop(ast.name);
@@ -7824,6 +7854,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7824
7854
  };
7825
7855
  _AstToIrVisitor.prototype.visitPropertyWrite = function (ast, mode) {
7826
7856
  var receiver = this._visit(ast.receiver, _Mode.Expression);
7857
+ var prevUsesImplicitReceiver = this.usesImplicitReceiver;
7827
7858
  var varExpr = null;
7828
7859
  if (receiver === this._implicitReceiver) {
7829
7860
  var localExpr = this._getLocal(ast.name);
@@ -7833,6 +7864,9 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7833
7864
  // to a 'context.property' value and will be used as the target of the
7834
7865
  // write expression.
7835
7866
  varExpr = localExpr;
7867
+ // Restore the previous "usesImplicitReceiver" state since the implicit
7868
+ // receiver has been replaced with a resolved local expression.
7869
+ this.usesImplicitReceiver = prevUsesImplicitReceiver;
7836
7870
  }
7837
7871
  else {
7838
7872
  // Otherwise it's an error.
@@ -7894,7 +7928,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
7894
7928
  // / \ / \
7895
7929
  // . c . e
7896
7930
  // / \ / \
7897
- // a b , d
7931
+ // a b . d
7898
7932
  // / \
7899
7933
  // . c
7900
7934
  // / \
@@ -8053,6 +8087,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
8053
8087
  var DefaultLocalResolver = /** @class */ (function () {
8054
8088
  function DefaultLocalResolver() {
8055
8089
  }
8090
+ DefaultLocalResolver.prototype.notifyImplicitReceiverUse = function () { };
8056
8091
  DefaultLocalResolver.prototype.getLocal = function (name) {
8057
8092
  if (name === EventHandlerVars.event.name) {
8058
8093
  return EventHandlerVars.event;
@@ -15377,8 +15412,6 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15377
15412
  * Use of this source code is governed by an MIT-style license that can be
15378
15413
  * found in the LICENSE file at https://angular.io/license
15379
15414
  */
15380
- // Default selector used by `<ng-content>` if none specified
15381
- var DEFAULT_NG_CONTENT_SELECTOR = '*';
15382
15415
  // Selector attribute name of `<ng-content>`
15383
15416
  var NG_CONTENT_SELECT_ATTR$1 = 'select';
15384
15417
  // Attribute name of `ngProjectAs`.
@@ -15390,14 +15423,17 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15390
15423
  function renderFlagCheckIfStmt(flags, statements) {
15391
15424
  return ifStmt(variable(RENDER_FLAGS).bitwiseAnd(literal(flags), null, false), statements);
15392
15425
  }
15393
- function prepareEventListenerParameters(eventAst, bindingContext, handlerName, scope) {
15426
+ function prepareEventListenerParameters(eventAst, handlerName, scope) {
15394
15427
  if (handlerName === void 0) { handlerName = null; }
15395
15428
  if (scope === void 0) { scope = null; }
15396
15429
  var type = eventAst.type, name = eventAst.name, target = eventAst.target, phase = eventAst.phase, handler = eventAst.handler;
15397
15430
  if (target && !GLOBAL_TARGET_RESOLVERS.has(target)) {
15398
15431
  throw new Error("Unexpected global target '" + target + "' defined for '" + name + "' event.\n Supported list of global targets: " + Array.from(GLOBAL_TARGET_RESOLVERS.keys()) + ".");
15399
15432
  }
15400
- var bindingExpr = convertActionBinding(scope, bindingContext, handler, 'b', function () { return error('Unexpected interpolation'); }, eventAst.handlerSpan);
15433
+ var implicitReceiverExpr = (scope === null || scope.bindingLevel === 0) ?
15434
+ variable(CONTEXT_NAME) :
15435
+ scope.getOrCreateSharedContextVar(0);
15436
+ var bindingExpr = convertActionBinding(scope, implicitReceiverExpr, handler, 'b', function () { return error('Unexpected interpolation'); }, eventAst.handlerSpan);
15401
15437
  var statements = [];
15402
15438
  if (scope) {
15403
15439
  statements.push.apply(statements, __spread(scope.restoreViewStatement()));
@@ -15469,13 +15505,16 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15469
15505
  this._pureFunctionSlots = 0;
15470
15506
  // Number of binding slots
15471
15507
  this._bindingSlots = 0;
15472
- // Whether the template includes <ng-content> tags.
15473
- this._hasNgContent = false;
15474
- // Selectors found in the <ng-content> tags in the template.
15475
- this._ngContentSelectors = [];
15508
+ // Projection slots found in the template. Projection slots can distribute projected
15509
+ // nodes based on a selector, or can just use the wildcard selector to match
15510
+ // all nodes which aren't matching any selector.
15511
+ this._ngContentReservedSlots = [];
15476
15512
  // Number of non-default selectors found in all parent templates of this template. We need to
15477
- // track it to properly adjust projection bucket index in the `projection` instruction.
15513
+ // track it to properly adjust projection slot index in the `projection` instruction.
15478
15514
  this._ngContentSelectorsOffset = 0;
15515
+ // Expression that should be used as implicit receiver when converting template
15516
+ // expressions to output AST.
15517
+ this._implicitReceiverExpr = null;
15479
15518
  // These should be handled in the template or element directly.
15480
15519
  this.visitReference = invalid$1;
15481
15520
  this.visitVariable = invalid$1;
@@ -15548,15 +15587,17 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15548
15587
  // Nested templates must be processed before creation instructions so template()
15549
15588
  // instructions can be generated with the correct internal const count.
15550
15589
  this._nestedTemplateFns.forEach(function (buildTemplateFn) { return buildTemplateFn(); });
15551
- // Output the `projectionDef` instruction when some `<ng-content>` are present.
15552
- // The `projectionDef` instruction only emitted for the component template and it is skipped for
15553
- // nested templates (<ng-template> tags).
15554
- if (this.level === 0 && this._hasNgContent) {
15590
+ // Output the `projectionDef` instruction when some `<ng-content>` tags are present.
15591
+ // The `projectionDef` instruction is only emitted for the component template and
15592
+ // is skipped for nested templates (<ng-template> tags).
15593
+ if (this.level === 0 && this._ngContentReservedSlots.length) {
15555
15594
  var parameters = [];
15556
- // Only selectors with a non-default value are generated
15557
- if (this._ngContentSelectors.length) {
15558
- var r3Selectors = this._ngContentSelectors.map(function (s) { return parseSelectorToR3Selector(s); });
15559
- parameters.push(this.constantPool.getConstLiteral(asLiteral(r3Selectors), true));
15595
+ // By default the `projectionDef` instructions creates one slot for the wildcard
15596
+ // selector if no parameters are passed. Therefore we only want to allocate a new
15597
+ // array for the projection slots if the default projection slot is not sufficient.
15598
+ if (this._ngContentReservedSlots.length > 1 || this._ngContentReservedSlots[0] !== '*') {
15599
+ var r3ReservedSlots = this._ngContentReservedSlots.map(function (s) { return s !== '*' ? parseSelectorToR3Selector(s) : s; });
15600
+ parameters.push(this.constantPool.getConstLiteral(asLiteral(r3ReservedSlots), true));
15560
15601
  }
15561
15602
  // Since we accumulate ngContent selectors while processing template elements,
15562
15603
  // we *prepend* `projectionDef` to creation instructions block, to put it before
@@ -15587,6 +15628,8 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15587
15628
  };
15588
15629
  // LocalResolver
15589
15630
  TemplateDefinitionBuilder.prototype.getLocal = function (name) { return this._bindingScope.get(name); };
15631
+ // LocalResolver
15632
+ TemplateDefinitionBuilder.prototype.notifyImplicitReceiverUse = function () { this._bindingScope.notifyImplicitReceiverUse(); };
15590
15633
  TemplateDefinitionBuilder.prototype.i18nTranslate = function (message, params, ref, transformFn) {
15591
15634
  var _a;
15592
15635
  if (params === void 0) { params = {}; }
@@ -15724,7 +15767,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15724
15767
  var _a = this.i18n, index = _a.index, bindings = _a.bindings;
15725
15768
  if (bindings.size) {
15726
15769
  bindings.forEach(function (binding) {
15727
- _this.updateInstruction(index, span, Identifiers$1.i18nExp, function () { return [_this.convertPropertyBinding(variable(CONTEXT_NAME), binding)]; });
15770
+ _this.updateInstruction(index, span, Identifiers$1.i18nExp, function () { return [_this.convertPropertyBinding(binding)]; });
15728
15771
  });
15729
15772
  this.updateInstruction(index, span, Identifiers$1.i18nApply, [literal(index)]);
15730
15773
  }
@@ -15734,13 +15777,11 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15734
15777
  this.i18n = null; // reset local i18n context
15735
15778
  };
15736
15779
  TemplateDefinitionBuilder.prototype.visitContent = function (ngContent) {
15737
- this._hasNgContent = true;
15738
15780
  var slot = this.allocateDataSlot();
15739
- var selectorIndex = ngContent.selector === DEFAULT_NG_CONTENT_SELECTOR ?
15740
- 0 :
15741
- this._ngContentSelectors.push(ngContent.selector) + this._ngContentSelectorsOffset;
15781
+ var projectionSlotIdx = this._ngContentSelectorsOffset + this._ngContentReservedSlots.length;
15742
15782
  var parameters = [literal(slot)];
15743
15783
  var attributes = [];
15784
+ this._ngContentReservedSlots.push(ngContent.selector);
15744
15785
  ngContent.attributes.forEach(function (attribute) {
15745
15786
  var name = attribute.name, value = attribute.value;
15746
15787
  if (name === NG_PROJECT_AS_ATTR_NAME) {
@@ -15751,10 +15792,10 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15751
15792
  }
15752
15793
  });
15753
15794
  if (attributes.length > 0) {
15754
- parameters.push(literal(selectorIndex), literalArr(attributes));
15795
+ parameters.push(literal(projectionSlotIdx), literalArr(attributes));
15755
15796
  }
15756
- else if (selectorIndex !== 0) {
15757
- parameters.push(literal(selectorIndex));
15797
+ else if (projectionSlotIdx !== 0) {
15798
+ parameters.push(literal(projectionSlotIdx));
15758
15799
  }
15759
15800
  this.creationInstruction(ngContent.sourceSpan, Identifiers$1.projection, parameters);
15760
15801
  };
@@ -15862,7 +15903,6 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15862
15903
  if (currentNamespace !== wasInNamespace) {
15863
15904
  this.addNamespaceInstruction(currentNamespace, element);
15864
15905
  }
15865
- var implicit = variable(CONTEXT_NAME);
15866
15906
  if (this.i18n) {
15867
15907
  this.i18n.appendElement(element.i18n, elementIndex);
15868
15908
  }
@@ -15904,7 +15944,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15904
15944
  i18nAttrArgs_1.push(literal(attr.name), _this.i18nTranslate(message, params));
15905
15945
  converted.expressions.forEach(function (expression) {
15906
15946
  hasBindings_1 = true;
15907
- var binding = _this.convertExpressionBinding(implicit, expression);
15947
+ var binding = _this.convertExpressionBinding(expression);
15908
15948
  _this.updateInstruction(elementIndex, element.sourceSpan, Identifiers$1.i18nExp, [binding]);
15909
15949
  });
15910
15950
  }
@@ -15925,7 +15965,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15925
15965
  // designed to run inside of `elementStart` and `elementEnd`. The update instructions
15926
15966
  // (things like `elementStyleProp`, `elementClassProp`, etc..) are applied later on in this
15927
15967
  // file
15928
- this.processStylingInstruction(implicit, stylingBuilder.buildElementStylingInstruction(element.sourceSpan, this.constantPool), true);
15968
+ this.processStylingInstruction(stylingBuilder.buildElementStylingInstruction(element.sourceSpan, this.constantPool), true);
15929
15969
  // Generate Listeners (outputs)
15930
15970
  element.outputs.forEach(function (outputAst) {
15931
15971
  _this.creationInstruction(outputAst.sourceSpan, Identifiers$1.listener, _this.prepareListenerParameter(element.name, outputAst, elementIndex));
@@ -15942,7 +15982,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15942
15982
  // and assign in the code below.
15943
15983
  stylingBuilder.buildUpdateLevelInstructions(this._valueConverter).forEach(function (instruction) {
15944
15984
  _this._bindingSlots += instruction.allocateBindingSlots;
15945
- _this.processStylingInstruction(implicit, instruction, false);
15985
+ _this.processStylingInstruction(instruction, false);
15946
15986
  });
15947
15987
  // the reason why `undefined` is used is because the renderer understands this as a
15948
15988
  // special value to symbolize that there is no RHS to this binding
@@ -15968,7 +16008,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
15968
16008
  _this.updateInstruction(elementIndex, input.sourceSpan, Identifiers$1.property, function () {
15969
16009
  return [
15970
16010
  literal(bindingName_1),
15971
- (hasValue_1 ? _this.convertPropertyBinding(implicit, value_1, /* skipBindFn */ true) :
16011
+ (hasValue_1 ? _this.convertPropertyBinding(value_1, /* skipBindFn */ true) :
15972
16012
  emptyValueBindInstruction),
15973
16013
  ];
15974
16014
  });
@@ -16001,15 +16041,13 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16001
16041
  if (inputType === 0 /* Property */) {
16002
16042
  if (value_2 instanceof Interpolation) {
16003
16043
  _this.updateInstruction(elementIndex, input.sourceSpan, getPropertyInterpolationExpression(value_2), function () {
16004
- return __spread([literal(attrName_1)], _this.getUpdateInstructionArguments(variable(CONTEXT_NAME), value_2), params_2);
16044
+ return __spread([literal(attrName_1)], _this.getUpdateInstructionArguments(value_2), params_2);
16005
16045
  });
16006
16046
  }
16007
16047
  else {
16008
16048
  // Bound, un-interpolated properties
16009
16049
  _this.updateInstruction(elementIndex, input.sourceSpan, Identifiers$1.property, function () {
16010
- return __spread([
16011
- literal(attrName_1), _this.convertPropertyBinding(implicit, value_2, true)
16012
- ], params_2);
16050
+ return __spread([literal(attrName_1), _this.convertPropertyBinding(value_2, true)], params_2);
16013
16051
  });
16014
16052
  }
16015
16053
  }
@@ -16023,8 +16061,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16023
16061
  }
16024
16062
  _this.updateInstruction(elementIndex, input.sourceSpan, instruction_1, function () {
16025
16063
  return __spread([
16026
- literal(elementIndex), literal(attrName_1),
16027
- _this.convertPropertyBinding(implicit, value_2)
16064
+ literal(elementIndex), literal(attrName_1), _this.convertPropertyBinding(value_2)
16028
16065
  ], params_2);
16029
16066
  });
16030
16067
  }
@@ -16085,11 +16122,10 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16085
16122
  // template definition. e.g. <div *ngIf="showing">{{ foo }}</div> <div #foo></div>
16086
16123
  this._nestedTemplateFns.push(function () {
16087
16124
  var _a;
16088
- var templateFunctionExpr = templateVisitor.buildTemplateFunction(template.children, template.variables, _this._ngContentSelectors.length + _this._ngContentSelectorsOffset, template.i18n);
16125
+ var templateFunctionExpr = templateVisitor.buildTemplateFunction(template.children, template.variables, _this._ngContentReservedSlots.length + _this._ngContentSelectorsOffset, template.i18n);
16089
16126
  _this.constantPool.statements.push(templateFunctionExpr.toDeclStmt(templateName, null));
16090
- if (templateVisitor._hasNgContent) {
16091
- _this._hasNgContent = true;
16092
- (_a = _this._ngContentSelectors).push.apply(_a, __spread(templateVisitor._ngContentSelectors));
16127
+ if (templateVisitor._ngContentReservedSlots.length) {
16128
+ (_a = _this._ngContentReservedSlots).push.apply(_a, __spread(templateVisitor._ngContentReservedSlots));
16093
16129
  }
16094
16130
  });
16095
16131
  // e.g. template(1, MyComp_Template_1)
@@ -16098,12 +16134,11 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16098
16134
  return trimTrailingNulls(parameters);
16099
16135
  });
16100
16136
  // handle property bindings e.g. ɵɵproperty('ngForOf', ctx.items), et al;
16101
- var context = variable(CONTEXT_NAME);
16102
- this.templatePropertyBindings(template, templateIndex, context, template.templateAttrs);
16137
+ this.templatePropertyBindings(template, templateIndex, template.templateAttrs);
16103
16138
  // Only add normal input/output binding instructions on explicit ng-template elements.
16104
16139
  if (template.tagName === NG_TEMPLATE_TAG_NAME) {
16105
16140
  // Add the input bindings
16106
- this.templatePropertyBindings(template, templateIndex, context, template.inputs);
16141
+ this.templatePropertyBindings(template, templateIndex, template.inputs);
16107
16142
  // Generate listeners for directive output
16108
16143
  template.outputs.forEach(function (outputAst) {
16109
16144
  _this.creationInstruction(outputAst.sourceSpan, Identifiers$1.listener, _this.prepareListenerParameter('ng_template', outputAst, templateIndex));
@@ -16125,7 +16160,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16125
16160
  this.creationInstruction(text.sourceSpan, Identifiers$1.text, [literal(nodeIndex)]);
16126
16161
  var value = text.value.visit(this._valueConverter);
16127
16162
  this.allocateBindingSlots(value);
16128
- this.updateInstruction(nodeIndex, text.sourceSpan, Identifiers$1.textBinding, function () { return [literal(nodeIndex), _this.convertPropertyBinding(variable(CONTEXT_NAME), value)]; });
16163
+ this.updateInstruction(nodeIndex, text.sourceSpan, Identifiers$1.textBinding, function () { return [literal(nodeIndex), _this.convertPropertyBinding(value)]; });
16129
16164
  };
16130
16165
  TemplateDefinitionBuilder.prototype.visitText = function (text) {
16131
16166
  // when a text element is located within a translatable
@@ -16172,18 +16207,18 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16172
16207
  TemplateDefinitionBuilder.prototype.getConstCount = function () { return this._dataIndex; };
16173
16208
  TemplateDefinitionBuilder.prototype.getVarCount = function () { return this._pureFunctionSlots; };
16174
16209
  TemplateDefinitionBuilder.prototype.getNgContentSelectors = function () {
16175
- return this._hasNgContent ?
16176
- this.constantPool.getConstLiteral(asLiteral(this._ngContentSelectors), true) :
16210
+ return this._ngContentReservedSlots.length ?
16211
+ this.constantPool.getConstLiteral(asLiteral(this._ngContentReservedSlots), true) :
16177
16212
  null;
16178
16213
  };
16179
16214
  TemplateDefinitionBuilder.prototype.bindingContext = function () { return "" + this._bindingContext++; };
16180
- TemplateDefinitionBuilder.prototype.templatePropertyBindings = function (template, templateIndex, context, attrs) {
16215
+ TemplateDefinitionBuilder.prototype.templatePropertyBindings = function (template, templateIndex, attrs) {
16181
16216
  var _this = this;
16182
16217
  attrs.forEach(function (input) {
16183
16218
  if (input instanceof BoundAttribute) {
16184
16219
  var value_4 = input.value.visit(_this._valueConverter);
16185
16220
  _this.allocateBindingSlots(value_4);
16186
- _this.updateInstruction(templateIndex, template.sourceSpan, Identifiers$1.property, function () { return [literal(input.name), _this.convertPropertyBinding(context, value_4, true)]; });
16221
+ _this.updateInstruction(templateIndex, template.sourceSpan, Identifiers$1.property, function () { return [literal(input.name), _this.convertPropertyBinding(value_4, true)]; });
16187
16222
  }
16188
16223
  });
16189
16224
  };
@@ -16198,11 +16233,11 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16198
16233
  return instruction(span, reference, params).toStmt();
16199
16234
  });
16200
16235
  };
16201
- TemplateDefinitionBuilder.prototype.processStylingInstruction = function (implicit, instruction, createMode) {
16236
+ TemplateDefinitionBuilder.prototype.processStylingInstruction = function (instruction, createMode) {
16202
16237
  var _this = this;
16203
16238
  if (instruction) {
16204
16239
  var paramsFn = function () {
16205
- return instruction.buildParams(function (value) { return _this.convertPropertyBinding(implicit, value, true); });
16240
+ return instruction.buildParams(function (value) { return _this.convertPropertyBinding(value, true); });
16206
16241
  };
16207
16242
  if (createMode) {
16208
16243
  this.creationInstruction(instruction.sourceSpan, instruction.reference, paramsFn);
@@ -16230,17 +16265,29 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16230
16265
  TemplateDefinitionBuilder.prototype.allocateBindingSlots = function (value) {
16231
16266
  this._bindingSlots += value instanceof Interpolation ? value.expressions.length : 1;
16232
16267
  };
16233
- TemplateDefinitionBuilder.prototype.convertExpressionBinding = function (implicit, value) {
16234
- var convertedPropertyBinding = convertPropertyBinding(this, implicit, value, this.bindingContext(), BindingForm.TrySimple);
16268
+ /**
16269
+ * Gets an expression that refers to the implicit receiver. The implicit
16270
+ * receiver is always the root level context.
16271
+ */
16272
+ TemplateDefinitionBuilder.prototype.getImplicitReceiverExpr = function () {
16273
+ if (this._implicitReceiverExpr) {
16274
+ return this._implicitReceiverExpr;
16275
+ }
16276
+ return this._implicitReceiverExpr = this.level === 0 ?
16277
+ variable(CONTEXT_NAME) :
16278
+ this._bindingScope.getOrCreateSharedContextVar(0);
16279
+ };
16280
+ TemplateDefinitionBuilder.prototype.convertExpressionBinding = function (value) {
16281
+ var convertedPropertyBinding = convertPropertyBinding(this, this.getImplicitReceiverExpr(), value, this.bindingContext(), BindingForm.TrySimple);
16235
16282
  var valExpr = convertedPropertyBinding.currValExpr;
16236
16283
  return importExpr(Identifiers$1.bind).callFn([valExpr]);
16237
16284
  };
16238
- TemplateDefinitionBuilder.prototype.convertPropertyBinding = function (implicit, value, skipBindFn) {
16285
+ TemplateDefinitionBuilder.prototype.convertPropertyBinding = function (value, skipBindFn) {
16239
16286
  var _a;
16240
16287
  var interpolationFn = value instanceof Interpolation ? interpolate : function () { return error('Unexpected interpolation'); };
16241
- var convertedPropertyBinding = convertPropertyBinding(this, implicit, value, this.bindingContext(), BindingForm.TrySimple, interpolationFn);
16242
- (_a = this._tempVariables).push.apply(_a, __spread(convertedPropertyBinding.stmts));
16288
+ var convertedPropertyBinding = convertPropertyBinding(this, this.getImplicitReceiverExpr(), value, this.bindingContext(), BindingForm.TrySimple, interpolationFn);
16243
16289
  var valExpr = convertedPropertyBinding.currValExpr;
16290
+ (_a = this._tempVariables).push.apply(_a, __spread(convertedPropertyBinding.stmts));
16244
16291
  return value instanceof Interpolation || skipBindFn ? valExpr :
16245
16292
  importExpr(Identifiers$1.bind).callFn([valExpr]);
16246
16293
  };
@@ -16248,12 +16295,11 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16248
16295
  * Gets a list of argument expressions to pass to an update instruction expression. Also updates
16249
16296
  * the temp variables state with temp variables that were identified as needing to be created
16250
16297
  * while visiting the arguments.
16251
- * @param contextExpression The expression for the context variable used to create arguments
16252
16298
  * @param value The original expression we will be resolving an arguments list from.
16253
16299
  */
16254
- TemplateDefinitionBuilder.prototype.getUpdateInstructionArguments = function (contextExpression, value) {
16300
+ TemplateDefinitionBuilder.prototype.getUpdateInstructionArguments = function (value) {
16255
16301
  var _a;
16256
- var _b = convertUpdateArguments(this, contextExpression, value, this.bindingContext()), args = _b.args, stmts = _b.stmts;
16302
+ var _b = convertUpdateArguments(this, this.getImplicitReceiverExpr(), value, this.bindingContext()), args = _b.args, stmts = _b.stmts;
16257
16303
  (_a = this._tempVariables).push.apply(_a, __spread(stmts));
16258
16304
  return args;
16259
16305
  };
@@ -16372,8 +16418,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16372
16418
  sanitizeIdentifier(eventName);
16373
16419
  var handlerName = _this.templateName + "_" + tagName + "_" + bindingFnName + "_" + index + "_listener";
16374
16420
  var scope = _this._bindingScope.nestedScope(_this._bindingScope.bindingLevel);
16375
- var context = variable(CONTEXT_NAME);
16376
- return prepareEventListenerParameters(outputAst, context, handlerName, scope);
16421
+ return prepareEventListenerParameters(outputAst, handlerName, scope);
16377
16422
  };
16378
16423
  };
16379
16424
  return TemplateDefinitionBuilder;
@@ -16593,13 +16638,35 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
16593
16638
  });
16594
16639
  return this;
16595
16640
  };
16641
+ // Implemented as part of LocalResolver.
16596
16642
  BindingScope.prototype.getLocal = function (name) { return this.get(name); };
16643
+ // Implemented as part of LocalResolver.
16644
+ BindingScope.prototype.notifyImplicitReceiverUse = function () {
16645
+ if (this.bindingLevel !== 0) {
16646
+ // Since the implicit receiver is accessed in an embedded view, we need to
16647
+ // ensure that we declare a shared context variable for the current template
16648
+ // in the update variables.
16649
+ this.map.get(SHARED_CONTEXT_KEY + 0).declare = true;
16650
+ }
16651
+ };
16597
16652
  BindingScope.prototype.nestedScope = function (level) {
16598
16653
  var newScope = new BindingScope(level, this);
16599
16654
  if (level > 0)
16600
16655
  newScope.generateSharedContextVar(0);
16601
16656
  return newScope;
16602
16657
  };
16658
+ /**
16659
+ * Gets or creates a shared context variable and returns its expression. Note that
16660
+ * this does not mean that the shared variable will be declared. Variables in the
16661
+ * binding scope will be only declared if they are used.
16662
+ */
16663
+ BindingScope.prototype.getOrCreateSharedContextVar = function (retrievalLevel) {
16664
+ var bindingKey = SHARED_CONTEXT_KEY + retrievalLevel;
16665
+ if (!this.map.has(bindingKey)) {
16666
+ this.generateSharedContextVar(retrievalLevel);
16667
+ }
16668
+ return this.map.get(bindingKey).lhs;
16669
+ };
16603
16670
  BindingScope.prototype.getSharedContextName = function (retrievalLevel) {
16604
16671
  var sharedCtxObj = this.map.get(SHARED_CONTEXT_KEY + retrievalLevel);
16605
16672
  return sharedCtxObj && sharedCtxObj.declare ? sharedCtxObj.lhs : null;
@@ -17246,7 +17313,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
17246
17313
  // Calculate host event bindings
17247
17314
  var eventBindings = bindingParser.createDirectiveHostEventAsts(directiveSummary, hostBindingSourceSpan);
17248
17315
  if (eventBindings && eventBindings.length) {
17249
- var listeners = createHostListeners(bindingContext, eventBindings, meta);
17316
+ var listeners = createHostListeners(eventBindings, meta);
17250
17317
  createStatements.push.apply(createStatements, __spread(listeners));
17251
17318
  }
17252
17319
  // Calculate the host property bindings
@@ -17382,14 +17449,14 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
17382
17449
  }
17383
17450
  return { bindingName: bindingName, instruction: instruction, isAttribute: !!attrMatches };
17384
17451
  }
17385
- function createHostListeners(bindingContext, eventBindings, meta) {
17452
+ function createHostListeners(eventBindings, meta) {
17386
17453
  return eventBindings.map(function (binding) {
17387
17454
  var bindingName = binding.name && sanitizeIdentifier(binding.name);
17388
17455
  var bindingFnName = binding.type === 1 /* Animation */ ?
17389
17456
  prepareSyntheticListenerFunctionName(bindingName, binding.targetOrPhase) :
17390
17457
  bindingName;
17391
17458
  var handlerName = meta.name && bindingName ? meta.name + "_" + bindingFnName + "_HostBindingHandler" : null;
17392
- var params = prepareEventListenerParameters(BoundEvent.fromParsedEvent(binding), bindingContext, handlerName);
17459
+ var params = prepareEventListenerParameters(BoundEvent.fromParsedEvent(binding), handlerName);
17393
17460
  var instruction = binding.type == 1 /* Animation */ ? Identifiers$1.componentHostSyntheticListener : Identifiers$1.listener;
17394
17461
  return importExpr(instruction).callFn(params).toStmt();
17395
17462
  });
@@ -17766,7 +17833,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
17766
17833
  * Use of this source code is governed by an MIT-style license that can be
17767
17834
  * found in the LICENSE file at https://angular.io/license
17768
17835
  */
17769
- var VERSION$1 = new Version('8.0.0-rc.3');
17836
+ var VERSION$1 = new Version('8.0.1');
17770
17837
 
17771
17838
  /**
17772
17839
  * @license
@@ -29387,7 +29454,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
29387
29454
  * * `factory` gives the zero argument function which will create an instance of the injectable.
29388
29455
  * The factory can call `inject` to access the `Injector` and request injection of dependencies.
29389
29456
  *
29390
- * @publicApi
29457
+ * @codeGenApi
29391
29458
  */
29392
29459
  function ɵɵdefineInjectable(opts) {
29393
29460
  return {
@@ -30206,12 +30273,11 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
30206
30273
  var USE_VALUE$4 = getClosureSafeProperty({ provide: String, useValue: ɵ2 });
30207
30274
  var NG_TOKEN_PATH = 'ngTokenPath';
30208
30275
  var NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';
30209
- var NULL_INJECTOR = Injector.NULL;
30210
30276
  var NEW_LINE = /\n/gm;
30211
30277
  var NO_NEW_LINE = 'ɵ';
30212
30278
  var StaticInjector = /** @class */ (function () {
30213
30279
  function StaticInjector(providers, parent, source) {
30214
- if (parent === void 0) { parent = NULL_INJECTOR; }
30280
+ if (parent === void 0) { parent = Injector.NULL; }
30215
30281
  if (source === void 0) { source = null; }
30216
30282
  this.parent = parent;
30217
30283
  this.source = source;
@@ -30369,7 +30435,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
30369
30435
  records,
30370
30436
  // If we don't know how to resolve dependency and we should not check parent for it,
30371
30437
  // than pass in Null injector.
30372
- !childRecord && !(options & 4 /* CheckParent */) ? NULL_INJECTOR : parent, options & 1 /* Optional */ ? null : Injector.THROW_IF_NOT_FOUND, InjectFlags.Default));
30438
+ !childRecord && !(options & 4 /* CheckParent */) ? Injector.NULL : parent, options & 1 /* Optional */ ? null : Injector.THROW_IF_NOT_FOUND, InjectFlags.Default));
30373
30439
  }
30374
30440
  }
30375
30441
  record.value = value = useNew ? new ((_a = fn).bind.apply(_a, __spread([void 0], deps)))() : fn.apply(obj, deps);
@@ -31659,7 +31725,11 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
31659
31725
  var EMPTY_ARRAY$2 = [];
31660
31726
  // freezing the values prevents any code from accidentally inserting new values in
31661
31727
  if (typeof ngDevMode !== 'undefined' && ngDevMode) {
31728
+ // These property accesses can be ignored because ngDevMode will be set to false
31729
+ // when optimizing code and the whole if statement will be dropped.
31730
+ // tslint:disable-next-line:no-toplevel-property-access
31662
31731
  Object.freeze(EMPTY_OBJ);
31732
+ // tslint:disable-next-line:no-toplevel-property-access
31663
31733
  Object.freeze(EMPTY_ARRAY$2);
31664
31734
  }
31665
31735
 
@@ -31738,9 +31808,12 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
31738
31808
  }
31739
31809
  return renderStringify(value);
31740
31810
  }
31741
- var defaultScheduler = (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame || // browser only
31742
- setTimeout // everything else
31743
- ).bind(_global$1);
31811
+ var ɵ0$5 = function () {
31812
+ return (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame || // browser only
31813
+ setTimeout // everything else
31814
+ ).bind(_global$1);
31815
+ };
31816
+ var defaultScheduler = (ɵ0$5)();
31744
31817
  /**
31745
31818
  * The special delimiter we use to separate property names, prefixes, and suffixes
31746
31819
  * in property binding metadata. See storeBindingMetadata().
@@ -32159,10 +32232,10 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
32159
32232
  }
32160
32233
  return NodeInjectorFactory;
32161
32234
  }());
32162
- var FactoryPrototype = NodeInjectorFactory.prototype;
32163
32235
  function isFactory(obj) {
32164
32236
  // See: https://jsperf.com/instanceof-vs-getprototypeof
32165
- return obj !== null && typeof obj == 'object' && Object.getPrototypeOf(obj) == FactoryPrototype;
32237
+ return obj !== null && typeof obj == 'object' &&
32238
+ Object.getPrototypeOf(obj) == NodeInjectorFactory.prototype;
32166
32239
  }
32167
32240
 
32168
32241
  /**
@@ -32604,9 +32677,9 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
32604
32677
  function isProceduralRenderer(renderer) {
32605
32678
  return !!(renderer.listen);
32606
32679
  }
32607
- var ɵ0$5 = function (hostElement, rendererType) { return document; };
32680
+ var ɵ0$6 = function (hostElement, rendererType) { return document; };
32608
32681
  var domRendererFactory3 = {
32609
- createRenderer: ɵ0$5
32682
+ createRenderer: ɵ0$6
32610
32683
  };
32611
32684
 
32612
32685
  /**
@@ -34577,11 +34650,12 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
34577
34650
  * found in the LICENSE file at https://angular.io/license
34578
34651
  */
34579
34652
 
34653
+ var ɵ0$7 = function () { return Promise.resolve(null); };
34580
34654
  /**
34581
34655
  * A permanent marker promise which signifies that the current CD tree is
34582
34656
  * clean.
34583
34657
  */
34584
- var _CLEAN_PROMISE = Promise.resolve(null);
34658
+ var _CLEAN_PROMISE = (ɵ0$7)();
34585
34659
  /**
34586
34660
  * Refreshes the view, executing the following steps in that order:
34587
34661
  * triggers init hooks, refreshes dynamic embedded views, triggers content hooks, sets host
@@ -36487,12 +36561,12 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
36487
36561
  /**
36488
36562
  * A lazily initialized NullInjector.
36489
36563
  */
36490
- var NULL_INJECTOR$1 = undefined;
36564
+ var NULL_INJECTOR = undefined;
36491
36565
  function getNullInjector() {
36492
- if (NULL_INJECTOR$1 === undefined) {
36493
- NULL_INJECTOR$1 = new NullInjector();
36566
+ if (NULL_INJECTOR === undefined) {
36567
+ NULL_INJECTOR = new NullInjector();
36494
36568
  }
36495
- return NULL_INJECTOR$1;
36569
+ return NULL_INJECTOR;
36496
36570
  }
36497
36571
  /**
36498
36572
  * Create a new `Injector` which is configured using a `defType` of `InjectorType<any>`s.
@@ -37446,7 +37520,7 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
37446
37520
  /**
37447
37521
  * @publicApi
37448
37522
  */
37449
- var VERSION$2 = new Version$1('8.0.0-rc.3');
37523
+ var VERSION$2 = new Version$1('8.0.1');
37450
37524
 
37451
37525
  /**
37452
37526
  * @license
@@ -40351,10 +40425,8 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
40351
40425
  _this.ngModule = ngModule;
40352
40426
  _this.componentType = componentDef.type;
40353
40427
  _this.selector = componentDef.selectors[0][0];
40354
- // The component definition does not include the wildcard ('*') selector in its list.
40355
- // It is implicitly expected as the first item in the projectable nodes array.
40356
40428
  _this.ngContentSelectors =
40357
- componentDef.ngContentSelectors ? __spread(['*'], componentDef.ngContentSelectors) : [];
40429
+ componentDef.ngContentSelectors ? componentDef.ngContentSelectors : [];
40358
40430
  _this.isBoundToModule = !!ngModule;
40359
40431
  return _this;
40360
40432
  }
@@ -40486,9 +40558,13 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
40486
40558
  * NOTE: changes to the `ngI18nClosureMode` name must be synced with `compiler-cli/src/tooling.ts`.
40487
40559
  */
40488
40560
  if (typeof ngI18nClosureMode === 'undefined') {
40561
+ // These property accesses can be ignored because ngI18nClosureMode will be set to false
40562
+ // when optimizing code and the whole if statement will be dropped.
40489
40563
  // Make sure to refer to ngI18nClosureMode as ['ngI18nClosureMode'] for closure.
40564
+ // tslint:disable-next-line:no-toplevel-property-access
40490
40565
  _global$1['ngI18nClosureMode'] =
40491
40566
  // TODO(FW-1250): validate that this actually, you know, works.
40567
+ // tslint:disable-next-line:no-toplevel-property-access
40492
40568
  typeof goog !== 'undefined' && typeof goog.getMsg === 'function';
40493
40569
  }
40494
40570
 
@@ -40500,28 +40576,27 @@ define(['exports', 'path', 'typescript', 'fs'], function (exports, path, ts, fs)
40500
40576
  * found in the LICENSE file at https://angular.io/license
40501
40577
  */
40502
40578
  /**
40503
- * Flattens an array in non-recursive way. Input arrays are not modified.
40579
+ * Flattens an array.
40504
40580
  */
40505
- function flatten$2(list, mapFn) {
40506
- var result = [];
40507
- var i = 0;
40508
- while (i < list.length) {
40581
+ function flatten$2(list, dst) {
40582
+ if (dst === undefined)
40583
+ dst = list;
40584
+ for (var i = 0; i < list.length; i++) {
40509
40585
  var item = list[i];
40510
40586
  if (Array.isArray(item)) {
40511
- if (item.length > 0) {
40512
- list = item.concat(list.slice(i + 1));
40513
- i = 0;
40514
- }
40515
- else {
40516
- i++;
40587
+ // we need to inline it.
40588
+ if (dst === list) {
40589
+ // Our assumption that the list was already flat was wrong and
40590
+ // we need to clone flat since we need to write to it.
40591
+ dst = list.slice(0, i);
40517
40592
  }
40593
+ flatten$2(item, dst);
40518
40594
  }
40519
- else {
40520
- result.push(mapFn ? mapFn(item) : item);
40521
- i++;
40595
+ else if (dst !== list) {
40596
+ dst.push(item);
40522
40597
  }
40523
40598
  }
40524
- return result;
40599
+ return dst;
40525
40600
  }
40526
40601
 
40527
40602
  /**
@@ -42570,7 +42645,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
42570
42645
  * Use of this source code is governed by an MIT-style license that can be
42571
42646
  * found in the LICENSE file at https://angular.io/license
42572
42647
  */
42573
- var ɵ0$6 = function (dir) {
42648
+ var ɵ0$8 = function (dir) {
42574
42649
  if (dir === void 0) { dir = {}; }
42575
42650
  return dir;
42576
42651
  }, ɵ1$2 = function (type, meta) { return SWITCH_COMPILE_DIRECTIVE(type, meta); };
@@ -42579,7 +42654,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
42579
42654
  *
42580
42655
  * @publicApi
42581
42656
  */
42582
- var Directive = makeDecorator('Directive', ɵ0$6, undefined, undefined, ɵ1$2);
42657
+ var Directive = makeDecorator('Directive', ɵ0$8, undefined, undefined, ɵ1$2);
42583
42658
  var ɵ2$2 = function (c) {
42584
42659
  if (c === void 0) { c = {}; }
42585
42660
  return (__assign({ changeDetection: ChangeDetectionStrategy$1.Default }, c));
@@ -42663,7 +42738,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
42663
42738
  * Use of this source code is governed by an MIT-style license that can be
42664
42739
  * found in the LICENSE file at https://angular.io/license
42665
42740
  */
42666
- var ɵ0$7 = function (ngModule) { return ngModule; }, ɵ1$3 =
42741
+ var ɵ0$9 = function (ngModule) { return ngModule; }, ɵ1$3 =
42667
42742
  /**
42668
42743
  * Decorator that marks the following class as an NgModule, and supplies
42669
42744
  * configuration metadata for it.
@@ -42680,7 +42755,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
42680
42755
  * @Annotation
42681
42756
  * @publicApi
42682
42757
  */
42683
- var NgModule = makeDecorator('NgModule', ɵ0$7, undefined, undefined, ɵ1$3);
42758
+ var NgModule = makeDecorator('NgModule', ɵ0$9, undefined, undefined, ɵ1$3);
42684
42759
  function preR3NgModuleCompile(moduleType, metadata) {
42685
42760
  var imports = (metadata && metadata.imports) || [];
42686
42761
  if (metadata && metadata.exports) {
@@ -43044,6 +43119,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
43044
43119
  * an exception is expected during normal execution while profiling.
43045
43120
  *
43046
43121
  * @publicApi
43122
+ * @deprecated the Web Tracing Framework is no longer supported in Angular
43047
43123
  */
43048
43124
  var wtfCreateScope = wtfEnabled ? createScope : function (signature, flags) { return noopScope; };
43049
43125
  /**
@@ -43054,6 +43130,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
43054
43130
  *
43055
43131
  * Returns the `returnValue for easy chaining.
43056
43132
  * @publicApi
43133
+ * @deprecated the Web Tracing Framework is no longer supported in Angular
43057
43134
  */
43058
43135
  var wtfLeave = wtfEnabled ? leave : function (s, r) { return r; };
43059
43136
 
@@ -43064,7 +43141,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
43064
43141
  * Use of this source code is governed by an MIT-style license that can be
43065
43142
  * found in the LICENSE file at https://angular.io/license
43066
43143
  */
43067
- var promise = Promise.resolve(0);
43144
+ var promise = (function () { return Promise.resolve(0); })();
43068
43145
  function scheduleMicroTask(fn) {
43069
43146
  if (typeof Zone === 'undefined') {
43070
43147
  // use promise to schedule microTask instead of use Zone
@@ -48033,7 +48110,7 @@ ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : '';
48033
48110
  * Use of this source code is governed by an MIT-style license that can be
48034
48111
  * found in the LICENSE file at https://angular.io/license
48035
48112
  */
48036
- var VERSION$3 = new Version$1('8.0.0-rc.3');
48113
+ var VERSION$3 = new Version$1('8.0.1');
48037
48114
 
48038
48115
  /**
48039
48116
  * @license