@microsoft/applicationinsights-core-js 3.0.8 → 3.0.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.
Files changed (97) hide show
  1. package/browser/es5/applicationinsights-core-js.cjs.js +179 -162
  2. package/browser/es5/applicationinsights-core-js.cjs.js.map +1 -1
  3. package/browser/es5/applicationinsights-core-js.cjs.min.js +2 -2
  4. package/browser/es5/applicationinsights-core-js.cjs.min.js.map +1 -1
  5. package/browser/es5/applicationinsights-core-js.gbl.js +181 -164
  6. package/browser/es5/applicationinsights-core-js.gbl.js.map +1 -1
  7. package/browser/es5/applicationinsights-core-js.gbl.min.js +2 -2
  8. package/browser/es5/applicationinsights-core-js.gbl.min.js.map +1 -1
  9. package/browser/es5/applicationinsights-core-js.integrity.json +25 -25
  10. package/browser/es5/applicationinsights-core-js.js +181 -164
  11. package/browser/es5/applicationinsights-core-js.js.map +1 -1
  12. package/browser/es5/applicationinsights-core-js.min.js +2 -2
  13. package/browser/es5/applicationinsights-core-js.min.js.map +1 -1
  14. package/dist/es5/applicationinsights-core-js.js +179 -162
  15. package/dist/es5/applicationinsights-core-js.js.map +1 -1
  16. package/dist/es5/applicationinsights-core-js.min.js +2 -2
  17. package/dist/es5/applicationinsights-core-js.min.js.map +1 -1
  18. package/dist-es5/Config/ConfigDefaultHelpers.js +1 -1
  19. package/dist-es5/Config/ConfigDefaults.js +1 -1
  20. package/dist-es5/Config/DynamicConfig.js +2 -1
  21. package/dist-es5/Config/DynamicConfig.js.map +1 -1
  22. package/dist-es5/Config/DynamicProperty.js +1 -1
  23. package/dist-es5/Config/DynamicState.js +1 -1
  24. package/dist-es5/Config/DynamicSupport.js +1 -1
  25. package/dist-es5/Config/IConfigDefaults.js +1 -1
  26. package/dist-es5/Config/IDynamicConfigHandler.js +1 -1
  27. package/dist-es5/Config/IDynamicPropertyHandler.js +1 -1
  28. package/dist-es5/Config/IDynamicWatcher.js +1 -1
  29. package/dist-es5/Config/_IDynamicConfigHandlerState.js +1 -1
  30. package/dist-es5/JavaScriptSDK/AggregationError.js +1 -1
  31. package/dist-es5/JavaScriptSDK/AppInsightsCore.js +59 -44
  32. package/dist-es5/JavaScriptSDK/AppInsightsCore.js.map +1 -1
  33. package/dist-es5/JavaScriptSDK/AsyncUtils.js +1 -1
  34. package/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js +3 -3
  35. package/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js.map +1 -1
  36. package/dist-es5/JavaScriptSDK/Constants.js +1 -1
  37. package/dist-es5/JavaScriptSDK/CookieMgr.js +1 -1
  38. package/dist-es5/JavaScriptSDK/CoreUtils.js +1 -1
  39. package/dist-es5/JavaScriptSDK/DataCacheHelper.js +2 -2
  40. package/dist-es5/JavaScriptSDK/DataCacheHelper.js.map +1 -1
  41. package/dist-es5/JavaScriptSDK/DbgExtensionUtils.js +1 -1
  42. package/dist-es5/JavaScriptSDK/DiagnosticLogger.js +1 -1
  43. package/dist-es5/JavaScriptSDK/EnvUtils.js +1 -1
  44. package/dist-es5/JavaScriptSDK/EventHelpers.js +1 -1
  45. package/dist-es5/JavaScriptSDK/HelperFuncs.js +1 -1
  46. package/dist-es5/JavaScriptSDK/InstrumentHooks.js +1 -1
  47. package/dist-es5/JavaScriptSDK/InternalConstants.js +1 -1
  48. package/dist-es5/JavaScriptSDK/NotificationManager.js +38 -18
  49. package/dist-es5/JavaScriptSDK/NotificationManager.js.map +1 -1
  50. package/dist-es5/JavaScriptSDK/PerfManager.js +1 -1
  51. package/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js +1 -1
  52. package/dist-es5/JavaScriptSDK/RandomHelper.js +1 -1
  53. package/dist-es5/JavaScriptSDK/TelemetryHelpers.js +1 -1
  54. package/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js +1 -1
  55. package/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js +1 -1
  56. package/dist-es5/JavaScriptSDK/UnloadHookContainer.js +20 -1
  57. package/dist-es5/JavaScriptSDK/UnloadHookContainer.js.map +1 -1
  58. package/dist-es5/JavaScriptSDK/W3cTraceParent.js +1 -1
  59. package/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js +1 -1
  60. package/dist-es5/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  61. package/dist-es5/JavaScriptSDK.Enums/FeatureOptInEnums.js +1 -1
  62. package/dist-es5/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
  63. package/dist-es5/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  64. package/dist-es5/JavaScriptSDK.Enums/TelemetryUnloadReason.js +1 -1
  65. package/dist-es5/JavaScriptSDK.Enums/TelemetryUpdateReason.js +1 -1
  66. package/dist-es5/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
  67. package/dist-es5/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  68. package/dist-es5/JavaScriptSDK.Interfaces/IChannelControlsHost.js +1 -1
  69. package/dist-es5/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  70. package/dist-es5/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  71. package/dist-es5/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  72. package/dist-es5/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  73. package/dist-es5/JavaScriptSDK.Interfaces/IDistributedTraceContext.js +1 -1
  74. package/dist-es5/JavaScriptSDK.Interfaces/IFeatureOptIn.js +1 -1
  75. package/dist-es5/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  76. package/dist-es5/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  77. package/dist-es5/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  78. package/dist-es5/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  79. package/dist-es5/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  80. package/dist-es5/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  81. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryInitializers.js +1 -1
  82. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  83. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  84. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
  85. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryUnloadState.js +1 -1
  86. package/dist-es5/JavaScriptSDK.Interfaces/ITelemetryUpdateState.js +1 -1
  87. package/dist-es5/JavaScriptSDK.Interfaces/ITraceParent.js +1 -1
  88. package/dist-es5/JavaScriptSDK.Interfaces/IUnloadHook.js +1 -1
  89. package/dist-es5/JavaScriptSDK.Interfaces/IUnloadableComponent.js +1 -1
  90. package/dist-es5/JavaScriptSDK.Interfaces/IXHROverride.js +1 -1
  91. package/dist-es5/__DynamicConstants.js +9 -9
  92. package/dist-es5/__DynamicConstants.js.map +1 -1
  93. package/dist-es5/applicationinsights-core-js.js +2 -2
  94. package/dist-es5/applicationinsights-core-js.js.map +1 -1
  95. package/package.json +78 -75
  96. package/types/applicationinsights-core-js.d.ts +60 -2
  97. package/types/applicationinsights-core-js.namespaced.d.ts +1287 -104
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Core, 3.0.8
2
+ * Application Insights JavaScript SDK - Core, 3.0.9
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -7,8 +7,8 @@
7
7
  typeof exports === "object" && typeof module !== undef ? factory(exports) :
8
8
  typeof define === "function" && define.amd ? define(["exports"], factory) :
9
9
  (function(global){
10
- var nsKey, key, nm, theExports = {}, modName = "es5_applicationinsights_core_js_3_0_8", msMod="__ms$mod__";
11
- var mods={}, modDetail=mods[modName]={}, ver="3.0.8";
10
+ var nsKey, key, nm, theExports = {}, modName = "es5_applicationinsights_core_js_3_0_9", msMod="__ms$mod__";
11
+ var mods={}, modDetail=mods[modName]={}, ver="3.0.9";
12
12
  var baseNs=global, nsKey="Microsoft", baseNs=baseNs[nsKey]=(baseNs[nsKey]||{});
13
13
  // Versioned namespace "Microsoft.ApplicationInsights3"
14
14
  var exportNs=baseNs, nsKey="ApplicationInsights3", exportNs=exportNs[nsKey]=(exportNs[nsKey]||{});
@@ -35,23 +35,16 @@ var MinChannelPriorty = 100;
35
35
  var UNDEF_VALUE = undefined;
36
36
  var NULL_VALUE = null;
37
37
  var EMPTY = "";
38
- var BOOLEAN = "boolean";
39
38
  var FUNCTION = "function";
40
- var NUMBER = "number";
41
39
  var OBJECT = "object";
42
40
  var PROTOTYPE = "prototype";
43
41
  var __PROTO__ = "__proto__";
44
- var STRING = "string";
45
42
  var UNDEFINED = "undefined";
46
43
  var CONSTRUCTOR = "constructor";
47
44
  var SYMBOL = "Symbol";
48
45
  var POLYFILL_TAG = "_polyfill";
49
- var INDEX_OF = "indexOf";
50
46
  var LENGTH = "length";
51
- var DONE = "done";
52
- var VALUE = "value";
53
47
  var NAME = "name";
54
- var SLICE = "slice";
55
48
  var CALL = "call";
56
49
  var TO_STRING = "toString";
57
50
  var ObjClass$1 = Object;
@@ -61,6 +54,7 @@ var StrProto = StrCls[PROTOTYPE];
61
54
  var MathCls = Math;
62
55
  var ArrCls = Array;
63
56
  var ArrProto = ArrCls[PROTOTYPE];
57
+ var ArrSlice = ArrProto["slice"];
64
58
 
65
59
  function safe(func, argArray) {
66
60
  try {
@@ -73,12 +67,13 @@ function safe(func, argArray) {
73
67
  }
74
68
  }
75
69
 
70
+ /*#__NO_SIDE_EFFECTS__*/
76
71
  function safeGet(cb, defValue) {
77
72
  var result = safe(cb);
78
73
  return result.e ? defValue : result.v;
79
74
  }
80
75
 
81
- var PRIMITIVE_TYPES = [STRING, NUMBER, BOOLEAN, UNDEFINED, "symbol", "bigint"];
76
+ var _primitiveTypes;
82
77
  /*#__NO_SIDE_EFFECTS__*/
83
78
  function _createIs(theType) {
84
79
  return function (value) {
@@ -118,9 +113,10 @@ function isDefined(arg) {
118
113
  }
119
114
  /*#__NO_SIDE_EFFECTS__*/
120
115
  function isPrimitiveType(theType) {
121
- return theType !== OBJECT && PRIMITIVE_TYPES.indexOf(theType) !== -1;
116
+ !_primitiveTypes && (_primitiveTypes = ["string", "number", "boolean", UNDEFINED, "symbol", "bigint"]);
117
+ return theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1;
122
118
  }
123
- var isString = ( /*#__PURE__*/_createIs(STRING));
119
+ var isString = ( /*#__PURE__*/_createIs("string"));
124
120
  var isFunction = ( /*#__PURE__*/_createIs(FUNCTION));
125
121
  /*#__NO_SIDE_EFFECTS__*/
126
122
  function isObject(value) {
@@ -131,8 +127,8 @@ function isObject(value) {
131
127
  }
132
128
  var isArray = ArrCls.isArray;
133
129
  var isDate = ( /*#__PURE__*/_createObjIs("Date"));
134
- var isNumber = ( /*#__PURE__*/_createIs(NUMBER));
135
- var isBoolean = ( /*#__PURE__*/_createIs(BOOLEAN));
130
+ var isNumber = ( /*#__PURE__*/_createIs("number"));
131
+ var isBoolean = ( /*#__PURE__*/_createIs("boolean"));
136
132
  var isError = ( /*#__PURE__*/_createObjIs("Error"));
137
133
  /*#__NO_SIDE_EFFECTS__*/
138
134
  function isPromiseLike(value) {
@@ -255,6 +251,7 @@ var asString = StrCls;
255
251
 
256
252
  var GLOBAL_CONFIG_KEY = "__tsUtils$gblCfg";
257
253
  var _globalCfg;
254
+ /*#__NO_SIDE_EFFECTS__*/
258
255
  function _getGlobalValue() {
259
256
  var result;
260
257
  if (typeof globalThis !== UNDEFINED) {
@@ -289,7 +286,7 @@ function dumpObj(object, format) {
289
286
  object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };
290
287
  }
291
288
  try {
292
- propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === NUMBER) ? format : 4) : UNDEF_VALUE);
289
+ propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === "number") ? format : 4) : UNDEF_VALUE);
293
290
  propertyValueDump = (propertyValueDump && propertyValueDump.replace(/"(\w+)"\s*:\s{0,1}/g, "$1: ")) || asString(object);
294
291
  }
295
292
  catch (e) {
@@ -298,18 +295,15 @@ function dumpObj(object, format) {
298
295
  return objType + ": " + propertyValueDump;
299
296
  }
300
297
 
301
- var _slice;
302
- var _unwrapInstFunction = _unwrapFunctionWithPoly;
303
298
  var _unwrapFunction = _unwrapFunctionWithPoly;
304
299
  /*#__NO_SIDE_EFFECTS__*/
305
300
  function _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {
306
- _slice = _slice || ArrProto[SLICE];
307
301
  var clsFn = clsProto && clsProto[funcName];
308
302
  return function (thisArg) {
309
303
  var theFunc = (thisArg && thisArg[funcName]) || clsFn;
310
304
  if (theFunc || polyFunc) {
311
305
  var theArgs = arguments;
312
- return (theFunc || polyFunc).apply(thisArg, theFunc ? _slice[CALL](theArgs, 1) : theArgs);
306
+ return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);
313
307
  }
314
308
  throwTypeError("\"" + asString(funcName) + "\" not defined for " + dumpObj(thisArg));
315
309
  };
@@ -323,7 +317,7 @@ function _unwrapProp(propName) {
323
317
 
324
318
  var mathMax = MathCls.max;
325
319
 
326
- var strSlice = ( /*#__PURE__*/_unwrapFunction(SLICE, StrProto));
320
+ var strSlice = ( /*#__PURE__*/_unwrapFunction("slice", StrProto));
327
321
 
328
322
  var strSubstring = ( /*#__PURE__*/_unwrapFunction("substring", StrProto));
329
323
  var strSubstr = ( /*#__PURE__*/_unwrapFunctionWithPoly("substr", StrProto, polyStrSubstr));
@@ -395,7 +389,7 @@ function polyGetKnownSymbol(name) {
395
389
  var propMap = {
396
390
  e: "enumerable",
397
391
  c: "configurable",
398
- v: VALUE,
392
+ v: "value",
399
393
  w: "writable",
400
394
  g: "get",
401
395
  s: "set"
@@ -441,6 +435,7 @@ var _globalLazyTestHooks;
441
435
  function _initTestHooks() {
442
436
  _globalLazyTestHooks = _getGlobalConfig();
443
437
  }
438
+ /*#__NO_SIDE_EFFECTS__*/
444
439
  function getLazy(cb) {
445
440
  var lazyValue = {};
446
441
  !_globalLazyTestHooks && _initTestHooks();
@@ -478,11 +473,14 @@ function createCachedValue(value) {
478
473
 
479
474
  var WINDOW = "window";
480
475
  var _cachedGlobal;
481
- var _cachedWindow;
482
- var _cachedDocument;
483
- var _cachedNavigator;
484
- var _cachedHistory;
485
- var _isNode;
476
+ function _getGlobalInstFn(getFn, theArgs) {
477
+ var cachedValue;
478
+ return function () {
479
+ !_globalLazyTestHooks && _initTestHooks();
480
+ (!cachedValue || _globalLazyTestHooks.lzy) && (cachedValue = createCachedValue(safe(getFn, theArgs).v));
481
+ return cachedValue.v;
482
+ };
483
+ }
486
484
  /*#__NO_SIDE_EFFECTS__*/
487
485
  function lazySafeGetInst(name) {
488
486
  return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });
@@ -499,8 +497,8 @@ function getInst(name, useCached) {
499
497
  if (gbl && gbl[name]) {
500
498
  return gbl[name];
501
499
  }
502
- if (name === WINDOW && _cachedWindow) {
503
- return _cachedWindow.v;
500
+ if (name === WINDOW) {
501
+ return getWindow();
504
502
  }
505
503
  return NULL_VALUE;
506
504
  }
@@ -508,46 +506,25 @@ function getInst(name, useCached) {
508
506
  function hasDocument() {
509
507
  return !!getDocument();
510
508
  }
511
- /*#__NO_SIDE_EFFECTS__*/
512
- function getDocument() {
513
- !_globalLazyTestHooks && _initTestHooks();
514
- (!_cachedDocument || _globalLazyTestHooks.lzy) && (_cachedDocument = createCachedValue(safe((getInst), ["document"]).v));
515
- return _cachedDocument.v;
516
- }
509
+ var getDocument = ( /*#__PURE__*/_getGlobalInstFn(getInst, ["document"]));
517
510
  /*#__NO_SIDE_EFFECTS__*/
518
511
  function hasWindow() {
519
512
  return !!getWindow();
520
513
  }
521
- /*#__NO_SIDE_EFFECTS__*/
522
- function getWindow() {
523
- !_globalLazyTestHooks && _initTestHooks();
524
- (!_cachedWindow || _globalLazyTestHooks.lzy) && (_cachedWindow = createCachedValue(safe((getInst), [WINDOW]).v));
525
- return _cachedWindow.v;
526
- }
514
+ var getWindow = ( /*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));
527
515
  /*#__NO_SIDE_EFFECTS__*/
528
516
  function hasNavigator() {
529
517
  return !!getNavigator();
530
518
  }
531
- /*#__NO_SIDE_EFFECTS__*/
532
- function getNavigator() {
533
- !_globalLazyTestHooks && _initTestHooks();
534
- (!_cachedNavigator || _globalLazyTestHooks.lzy) && (_cachedNavigator = createCachedValue(safe((getInst), ["navigator"]).v));
535
- return _cachedNavigator.v;
536
- }
519
+ var getNavigator = ( /*#__PURE__*/_getGlobalInstFn(getInst, ["navigator"]));
537
520
  /*#__NO_SIDE_EFFECTS__*/
538
521
  function hasHistory() {
539
522
  return !!getHistory();
540
523
  }
541
- /*#__NO_SIDE_EFFECTS__*/
542
- function getHistory() {
543
- !_globalLazyTestHooks && _initTestHooks();
544
- (!_cachedHistory || _globalLazyTestHooks.lzy) && (_cachedHistory = createCachedValue(safe((getInst), ["history"]).v));
545
- return _cachedHistory.v;
546
- }
547
- function isNode() {
548
- !_isNode && (_isNode = createCachedValue(!!safe(function () { return (process && (process.versions || {}).node); }).v));
549
- return _isNode.v;
550
- }
524
+ var getHistory = ( /*#__PURE__*/_getGlobalInstFn(getInst, ["history"]));
525
+ var isNode = ( /*#__PURE__*/_getGlobalInstFn(function () {
526
+ return !!safe(function () { return (process && (process.versions || {}).node); }).v;
527
+ }));
551
528
 
552
529
  var _symbol;
553
530
  var _symbolFor;
@@ -609,8 +586,8 @@ function iterForOf(iter, callbackfn, thisArg) {
609
586
  var iterResult = void 0;
610
587
  try {
611
588
  var count = 0;
612
- while (!(iterResult = iter.next())[DONE]) {
613
- if (callbackfn[CALL](thisArg || iter, iterResult[VALUE], count, iter) === -1) {
589
+ while (!(iterResult = iter.next()).done) {
590
+ if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {
614
591
  break;
615
592
  }
616
593
  count++;
@@ -625,7 +602,7 @@ function iterForOf(iter, callbackfn, thisArg) {
625
602
  }
626
603
  finally {
627
604
  try {
628
- if (iterResult && !iterResult[DONE]) {
605
+ if (iterResult && !iterResult.done) {
629
606
  iter.return && iter.return(iterResult);
630
607
  }
631
608
  }
@@ -639,7 +616,9 @@ function iterForOf(iter, callbackfn, thisArg) {
639
616
  }
640
617
  }
641
618
 
642
- var fnApply = ( /*#__PURE__*/_unwrapInstFunction("apply"));
619
+ function fnApply(fn, thisArg, argArray) {
620
+ return fn.apply(thisArg, argArray);
621
+ }
643
622
 
644
623
  function arrAppend(target, elms) {
645
624
  if (!isUndefined(elms) && target) {
@@ -671,11 +650,13 @@ function arrForEach(theArray, callbackfn, thisArg) {
671
650
  }
672
651
  }
673
652
 
674
- var arrIndexOf = ( /*#__PURE__*/_unwrapFunction(INDEX_OF, ArrProto));
653
+ var arrIndexOf = ( /*#__PURE__*/_unwrapFunction("indexOf", ArrProto));
675
654
 
676
655
  var arrMap = ( /*#__PURE__*/_unwrapFunction("map", ArrProto));
677
656
 
678
- var arrSlice = ( /*#__PURE__*/_unwrapFunction(SLICE, ArrProto));
657
+ function arrSlice(theArray, start, end) {
658
+ return ((theArray && theArray["slice"]) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));
659
+ }
679
660
 
680
661
  var arrReduce = ( /*#__PURE__*/_unwrapFunction("reduce", ArrProto));
681
662
 
@@ -707,6 +688,7 @@ function objSetPrototypeOf(obj, proto) {
707
688
  return fn(obj, proto);
708
689
  }
709
690
 
691
+ /*#__NO_SIDE_EFFECTS__*/
710
692
  function _createCustomError(name, d, b) {
711
693
  safe(objDefine, [d, NAME, { v: name, c: true, e: false }]);
712
694
  d = objSetPrototypeOf(d, b);
@@ -730,7 +712,7 @@ function createCustomError(name, constructCb, errorBase) {
730
712
  var theArgs = arguments;
731
713
  try {
732
714
  safe(_setName, [theBaseClass, name]);
733
- var _self = fnApply(theBaseClass, _this, ArrProto[SLICE][CALL](theArgs)) || _this;
715
+ var _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;
734
716
  if (_self !== _this) {
735
717
  var orgProto = objGetPrototypeOf(_this);
736
718
  if (orgProto !== objGetPrototypeOf(_self)) {
@@ -805,16 +787,18 @@ function isPlainObject(value) {
805
787
  return result;
806
788
  }
807
789
 
808
- var _defaultDeepCopyHandler = function (details) {
790
+ /*#__NO_SIDE_EFFECTS__*/
791
+ function _defaultDeepCopyHandler(details) {
809
792
  details.value && plainObjDeepCopyHandler(details);
810
793
  return true;
811
- };
794
+ }
812
795
  var defaultDeepCopyHandlers = [
813
796
  arrayDeepCopyHandler,
814
797
  plainObjDeepCopyHandler,
815
798
  functionDeepCopyHandler,
816
799
  dateDeepCopyHandler
817
800
  ];
801
+ /*#__NO_SIDE_EFFECTS__*/
818
802
  function _getSetVisited(visitMap, source, newPath, cb) {
819
803
  var theEntry;
820
804
  arrForEach(visitMap, function (entry) {
@@ -949,7 +933,7 @@ function _doExtend(target, theArgs) {
949
933
  return target;
950
934
  }
951
935
  function deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {
952
- return _doExtend(objDeepCopy(target) || {}, ArrProto[SLICE][CALL](arguments));
936
+ return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));
953
937
  }
954
938
 
955
939
  var getLength = ( /*#__PURE__*/_unwrapProp(LENGTH));
@@ -981,7 +965,7 @@ function polyStrEndsWith(value, searchString, length) {
981
965
  return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;
982
966
  }
983
967
 
984
- var strIndexOf = ( /*#__PURE__*/_unwrapFunction(INDEX_OF, StrProto));
968
+ var strIndexOf = ( /*#__PURE__*/_unwrapFunction("indexOf", StrProto));
985
969
 
986
970
  var strStartsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly("startsWith", StrProto, polyStrStartsWith));
987
971
  /*#__NO_SIDE_EFFECTS__*/
@@ -995,55 +979,51 @@ function polyStrStartsWith(value, searchString, position) {
995
979
  }
996
980
 
997
981
  var REF = "ref";
998
- var UNREF = "un" + REF;
982
+ var UNREF = "unref";
999
983
  var HAS_REF = "hasRef";
1000
984
  var ENABLED = "enabled";
985
+ /*#__NO_SIDE_EFFECTS__*/
1001
986
  function _createTimerHandler(startTimer, refreshFn, cancelFn) {
1002
- var _a;
1003
987
  var ref = true;
1004
988
  var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;
1005
989
  var theTimerHandler;
1006
- var _unref = function () {
990
+ function _unref() {
1007
991
  ref = false;
1008
992
  timerId && timerId[UNREF] && timerId[UNREF]();
1009
993
  return theTimerHandler;
1010
- };
1011
- var _ref = function () {
1012
- ref = true;
1013
- timerId && timerId[REF] && timerId[REF]();
994
+ }
995
+ function _cancel() {
996
+ timerId && cancelFn(timerId);
997
+ timerId = NULL_VALUE;
998
+ }
999
+ function _refresh() {
1000
+ timerId = refreshFn(timerId);
1001
+ if (!ref) {
1002
+ _unref();
1003
+ }
1014
1004
  return theTimerHandler;
1005
+ }
1006
+ function _setEnabled(value) {
1007
+ !value && timerId && _cancel();
1008
+ value && !timerId && _refresh();
1009
+ }
1010
+ theTimerHandler = {
1011
+ cancel: _cancel,
1012
+ refresh: _refresh
1015
1013
  };
1016
- var _hasRef = function () {
1014
+ theTimerHandler[HAS_REF] = function () {
1017
1015
  if (timerId && timerId[HAS_REF]) {
1018
1016
  return timerId[HAS_REF]();
1019
1017
  }
1020
1018
  return ref;
1021
1019
  };
1022
- var _refresh = function () {
1023
- timerId = refreshFn(timerId);
1024
- if (!ref) {
1025
- _unref();
1026
- }
1020
+ theTimerHandler[REF] = function () {
1021
+ ref = true;
1022
+ timerId && timerId[REF] && timerId[REF]();
1027
1023
  return theTimerHandler;
1028
1024
  };
1029
- var _cancel = function () {
1030
- timerId && cancelFn(timerId);
1031
- timerId = NULL_VALUE;
1032
- };
1033
- var _setEnabled = function (value) {
1034
- !value && timerId && _cancel();
1035
- value && !timerId && _refresh();
1036
- };
1037
- theTimerHandler = (_a = {
1038
- cancel: _cancel,
1039
- refresh: _refresh
1040
- },
1041
- _a[HAS_REF] = _hasRef,
1042
- _a[REF] = _ref,
1043
- _a[UNREF] = _unref,
1044
- _a[ENABLED] = false,
1045
- _a);
1046
- objDefineProp(theTimerHandler, ENABLED, {
1025
+ theTimerHandler[UNREF] = _unref;
1026
+ theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {
1047
1027
  get: function () { return !!timerId; },
1048
1028
  set: _setEnabled
1049
1029
  });
@@ -1055,7 +1035,7 @@ function _createTimerHandler(startTimer, refreshFn, cancelFn) {
1055
1035
  };
1056
1036
  }
1057
1037
 
1058
- function _createTimeoutWith(self, startTimer, overrideFn, theArgs) {
1038
+ function _createTimeoutWith(startTimer, overrideFn, theArgs) {
1059
1039
  var isArr = isArray(overrideFn);
1060
1040
  var len = isArr ? overrideFn.length : 0;
1061
1041
  var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;
@@ -1063,7 +1043,7 @@ function _createTimeoutWith(self, startTimer, overrideFn, theArgs) {
1063
1043
  var timerFn = theArgs[0];
1064
1044
  theArgs[0] = function () {
1065
1045
  handler.dn();
1066
- fnApply(timerFn, self, ArrProto[SLICE][CALL](arguments));
1046
+ fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));
1067
1047
  };
1068
1048
  var handler = _createTimerHandler(startTimer, function (timerId) {
1069
1049
  if (timerId) {
@@ -1071,19 +1051,19 @@ function _createTimeoutWith(self, startTimer, overrideFn, theArgs) {
1071
1051
  timerId.refresh();
1072
1052
  return timerId;
1073
1053
  }
1074
- fnApply(clearFn, self, [timerId]);
1054
+ fnApply(clearFn, UNDEF_VALUE, [timerId]);
1075
1055
  }
1076
- return fnApply(setFn, self, theArgs);
1056
+ return fnApply(setFn, UNDEF_VALUE, theArgs);
1077
1057
  }, function (timerId) {
1078
- fnApply(clearFn, self, [timerId]);
1058
+ fnApply(clearFn, UNDEF_VALUE, [timerId]);
1079
1059
  });
1080
1060
  return handler.h;
1081
1061
  }
1082
1062
  function scheduleTimeout(callback, timeout) {
1083
- return _createTimeoutWith(this, true, UNDEF_VALUE, ArrProto[SLICE][CALL](arguments));
1063
+ return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));
1084
1064
  }
1085
1065
  function createTimeout(callback, timeout) {
1086
- return _createTimeoutWith(this, false, UNDEF_VALUE, ArrProto[SLICE][CALL](arguments));
1066
+ return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));
1087
1067
  }
1088
1068
 
1089
1069
  var createEnumStyle = createEnum;
@@ -1115,16 +1095,16 @@ var _DYN_HDLR = "hdlr";
1115
1095
  var _DYN_CANCEL = "cancel";
1116
1096
  var _DYN_INITIALIZE = "initialize";
1117
1097
  var _DYN_IDENTIFIER = "identifier";
1098
+ var _DYN_REMOVE_NOTIFICATION_0 = "removeNotificationListener";
1099
+ var _DYN_ADD_NOTIFICATION_LIS1 = "addNotificationListener";
1118
1100
  var _DYN_IS_INITIALIZED = "isInitialized";
1101
+ var _DYN_GET_NOTIFY_MGR = "getNotifyMgr";
1119
1102
  var _DYN_GET_PLUGIN = "getPlugin";
1120
1103
  var _DYN_POLL_INTERNAL_LOGS = "pollInternalLogs";
1121
1104
  var _DYN_NAME = "name";
1122
1105
  var _DYN_TIME = "time";
1123
1106
  var _DYN_PROCESS_NEXT = "processNext";
1124
- var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
1125
- var _DYN_GET_NOTIFY_MGR = "getNotifyMgr";
1126
- var _DYN_ADD_NOTIFICATION_LIS1 = "addNotificationListener";
1127
- var _DYN_REMOVE_NOTIFICATION_2 = "removeNotificationListener";
1107
+ var _DYN_GET_PROCESS_TEL_CONT2 = "getProcessTelContext";
1128
1108
  var _DYN_ENABLED = "enabled";
1129
1109
  var _DYN_STOP_POLLING_INTERNA3 = "stopPollingInternalLogs";
1130
1110
  var _DYN_UNLOAD = "unload";
@@ -2318,7 +2298,7 @@ function newId(maxLength) {
2318
2298
  return result;
2319
2299
  }
2320
2300
 
2321
- var version = '3.0.8';
2301
+ var version = '3.0.9';
2322
2302
  var instanceName = "." + newId(6);
2323
2303
  var _dataUid = 0;
2324
2304
  function _canAcceptData(target) {
@@ -2887,6 +2867,7 @@ function _createAndUseHandler(state, configHandler) {
2887
2867
  configHandler = null;
2888
2868
  }
2889
2869
  };
2870
+ objDefine(handler, "toJSON", { v: function () { return "WatcherHandler" + (handler.fn ? "" : "[X]"); } });
2890
2871
  state.use(handler, configHandler);
2891
2872
  return handler;
2892
2873
  }
@@ -3603,18 +3584,26 @@ function uaDisallowsSameSiteNone(userAgent) {
3603
3584
  var defaultValues$1 = {
3604
3585
  perfEvtsSendAll: false
3605
3586
  };
3606
- function _runListeners(listeners, name, isAsync, callback) {
3587
+ function _runScheduledListeners(asyncNotifications) {
3588
+ asyncNotifications.h = null;
3589
+ var callbacks = asyncNotifications.cb;
3590
+ asyncNotifications.cb = [];
3591
+ arrForEach(callbacks, function (cb) {
3592
+ safe(cb.fn, [cb.arg]);
3593
+ });
3594
+ }
3595
+ function _runListeners(listeners, name, asyncNotifications, callback) {
3607
3596
  arrForEach(listeners, function (listener) {
3608
3597
  if (listener && listener[name]) {
3609
- if (isAsync) {
3610
- scheduleTimeout(function () { return callback(listener); }, 0);
3598
+ if (asyncNotifications) {
3599
+ asyncNotifications.cb[_DYN_PUSH ]({
3600
+ fn: callback,
3601
+ arg: listener
3602
+ });
3603
+ asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);
3611
3604
  }
3612
3605
  else {
3613
- try {
3614
- callback(listener);
3615
- }
3616
- catch (e) {
3617
- }
3606
+ safe(callback, [listener]);
3618
3607
  }
3619
3608
  }
3620
3609
  });
@@ -3625,6 +3614,10 @@ var NotificationManager = /** @class */ (function () {
3625
3614
  var perfEvtsSendAll;
3626
3615
  var unloadHandler;
3627
3616
  var _listeners = [];
3617
+ var _asyncNotifications = {
3618
+ h: null,
3619
+ cb: []
3620
+ };
3628
3621
  var cfgHandler = createDynamicConfig(config, defaultValues$1);
3629
3622
  unloadHandler = cfgHandler[_DYN_WATCH ](function (details) {
3630
3623
  perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;
@@ -3636,7 +3629,7 @@ var NotificationManager = /** @class */ (function () {
3636
3629
  _self[_DYN_ADD_NOTIFICATION_LIS1 ] = function (listener) {
3637
3630
  _listeners[_DYN_PUSH ](listener);
3638
3631
  };
3639
- _self[_DYN_REMOVE_NOTIFICATION_2 ] = function (listener) {
3632
+ _self[_DYN_REMOVE_NOTIFICATION_0 ] = function (listener) {
3640
3633
  var index = arrIndexOf(_listeners, listener);
3641
3634
  while (index > -1) {
3642
3635
  _listeners[_DYN_SPLICE ](index, 1);
@@ -3644,24 +3637,24 @@ var NotificationManager = /** @class */ (function () {
3644
3637
  }
3645
3638
  };
3646
3639
  _self[STR_EVENTS_SENT ] = function (events) {
3647
- _runListeners(_listeners, STR_EVENTS_SENT, true, function (listener) {
3640
+ _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {
3648
3641
  listener[STR_EVENTS_SENT ](events);
3649
3642
  });
3650
3643
  };
3651
3644
  _self[STR_EVENTS_DISCARDED ] = function (events, reason) {
3652
- _runListeners(_listeners, STR_EVENTS_DISCARDED, true, function (listener) {
3645
+ _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {
3653
3646
  listener[STR_EVENTS_DISCARDED ](events, reason);
3654
3647
  });
3655
3648
  };
3656
3649
  _self[STR_EVENTS_SEND_REQUEST ] = function (sendReason, isAsync) {
3657
- _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {
3650
+ _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {
3658
3651
  listener[STR_EVENTS_SEND_REQUEST ](sendReason, isAsync);
3659
3652
  });
3660
3653
  };
3661
3654
  _self[STR_PERF_EVENT ] = function (perfEvent) {
3662
3655
  if (perfEvent) {
3663
3656
  if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT ]()) {
3664
- _runListeners(_listeners, STR_PERF_EVENT, false, function (listener) {
3657
+ _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {
3665
3658
  if (perfEvent[_DYN_IS_ASYNC ]) {
3666
3659
  scheduleTimeout(function () { return listener[STR_PERF_EVENT ](perfEvent); }, 0);
3667
3660
  }
@@ -3677,9 +3670,12 @@ var NotificationManager = /** @class */ (function () {
3677
3670
  unloadHandler && unloadHandler.rm();
3678
3671
  unloadHandler = null;
3679
3672
  _listeners = [];
3673
+ _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL ]();
3674
+ _asyncNotifications.h = null;
3675
+ _asyncNotifications.cb = [];
3680
3676
  };
3681
3677
  var waiting;
3682
- _runListeners(_listeners, "unload", false, function (listener) {
3678
+ _runListeners(_listeners, "unload", null, function (listener) {
3683
3679
  var asyncUnload = listener[_DYN_UNLOAD ](isAsync);
3684
3680
  if (asyncUnload) {
3685
3681
  if (!waiting) {
@@ -4493,6 +4489,12 @@ function createUnloadHandlerContainer() {
4493
4489
  };
4494
4490
  }
4495
4491
 
4492
+ var _maxHooks;
4493
+ var _hookAddMonitor;
4494
+ function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {
4495
+ _maxHooks = maxHooks;
4496
+ _hookAddMonitor = addMonitor;
4497
+ }
4496
4498
  function createUnloadHookContainer() {
4497
4499
  var _hooks = [];
4498
4500
  function _doUnload(logger) {
@@ -4506,10 +4508,16 @@ function createUnloadHookContainer() {
4506
4508
  _throwInternal(logger, 2 , 73 , "Unloading:" + dumpObj(e));
4507
4509
  }
4508
4510
  });
4511
+ if (_maxHooks && oldHooks[_DYN_LENGTH ] > _maxHooks) {
4512
+ _hookAddMonitor ? _hookAddMonitor("doUnload", oldHooks) : _throwInternal(null, 1 , 48 , "Max unload hooks exceeded. An excessive number of unload hooks has been detected.");
4513
+ }
4509
4514
  }
4510
4515
  function _addHook(hooks) {
4511
4516
  if (hooks) {
4512
4517
  arrAppend(_hooks, hooks);
4518
+ if (_maxHooks && _hooks[_DYN_LENGTH ] > _maxHooks) {
4519
+ _hookAddMonitor ? _hookAddMonitor("Add", _hooks) : _throwInternal(null, 1 , 48 , "Max unload hooks exceeded. An excessive number of unload hooks has been detected.");
4520
+ }
4513
4521
  }
4514
4522
  }
4515
4523
  return {
@@ -4637,7 +4645,7 @@ var BaseTelemetryPlugin = /** @class */ (function () {
4637
4645
  function _setDefaults(config, core, pluginChain) {
4638
4646
  createDynamicConfig(config, defaultValues, safeGetLogger(core));
4639
4647
  if (!pluginChain && core) {
4640
- pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
4648
+ pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 ]()[_DYN_GET_NEXT ]();
4641
4649
  }
4642
4650
  var nextPlugin = _nextPlugin;
4643
4651
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
@@ -4841,6 +4849,27 @@ function _registerDelayedCfgListener(config, listeners, logger) {
4841
4849
  };
4842
4850
  });
4843
4851
  }
4852
+ function _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {
4853
+ unloadContainer.add(configHandler[_DYN_WATCH ](function (details) {
4854
+ var disableDbgExt = details.cfg.disableDbgExt;
4855
+ if (disableDbgExt === true && debugListener) {
4856
+ notificationManager[_DYN_REMOVE_NOTIFICATION_0 ](debugListener);
4857
+ debugListener = null;
4858
+ }
4859
+ if (notificationManager && !debugListener && disableDbgExt !== true) {
4860
+ debugListener = getDebugListener(details.cfg);
4861
+ notificationManager[_DYN_ADD_NOTIFICATION_LIS1 ](debugListener);
4862
+ }
4863
+ }));
4864
+ return debugListener;
4865
+ }
4866
+ function _createUnloadHook(unloadHook) {
4867
+ return objDefine({
4868
+ rm: function () {
4869
+ unloadHook.rm();
4870
+ }
4871
+ }, "toJSON", { v: function () { return "aicore::onCfgChange<" + JSON.stringify(unloadHook) + ">"; } });
4872
+ }
4844
4873
  var AppInsightsCore = /** @class */ (function () {
4845
4874
  function AppInsightsCore() {
4846
4875
  var _configHandler;
@@ -4897,7 +4926,7 @@ var AppInsightsCore = /** @class */ (function () {
4897
4926
  }
4898
4927
  }));
4899
4928
  _notificationManager = notificationManager;
4900
- _initDebugListener();
4929
+ _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR ](), _debugListener);
4901
4930
  _initPerfManager();
4902
4931
  _self[_DYN_LOGGER ] = logger;
4903
4932
  var cfgExtensions = config[STR_EXTENSIONS ];
@@ -4950,7 +4979,7 @@ var AppInsightsCore = /** @class */ (function () {
4950
4979
  }
4951
4980
  }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));
4952
4981
  };
4953
- _self[_DYN_GET_PROCESS_TEL_CONT0 ] = _createTelCtx;
4982
+ _self[_DYN_GET_PROCESS_TEL_CONT2 ] = _createTelCtx;
4954
4983
  _self[_DYN_GET_NOTIFY_MGR ] = function () {
4955
4984
  if (!_notificationManager) {
4956
4985
  _notificationManager = new NotificationManager(_configHandler.cfg);
@@ -4959,11 +4988,11 @@ var AppInsightsCore = /** @class */ (function () {
4959
4988
  return _notificationManager;
4960
4989
  };
4961
4990
  _self[_DYN_ADD_NOTIFICATION_LIS1 ] = function (listener) {
4962
- _self[_DYN_GET_NOTIFY_MGR ]()[_DYN_ADD_NOTIFICATION_LIS1 ](listener);
4991
+ _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 ](listener);
4963
4992
  };
4964
- _self[_DYN_REMOVE_NOTIFICATION_2 ] = function (listener) {
4993
+ _self[_DYN_REMOVE_NOTIFICATION_0 ] = function (listener) {
4965
4994
  if (_notificationManager) {
4966
- _notificationManager[_DYN_REMOVE_NOTIFICATION_2 ](listener);
4995
+ _notificationManager[_DYN_REMOVE_NOTIFICATION_0 ](listener);
4967
4996
  }
4968
4997
  };
4969
4998
  _self.getCookieMgr = function () {
@@ -4979,16 +5008,6 @@ var AppInsightsCore = /** @class */ (function () {
4979
5008
  }
4980
5009
  };
4981
5010
  _self[STR_GET_PERF_MGR ] = function () {
4982
- if (!_perfManager && !_cfgPerfManager) {
4983
- _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
4984
- if (details.cfg.enablePerfMgr) {
4985
- var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR ];
4986
- if (isFunction(createPerfMgr)) {
4987
- _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR ]());
4988
- }
4989
- }
4990
- }));
4991
- }
4992
5011
  return _perfManager || _cfgPerfManager || getGblPerfMgr();
4993
5012
  };
4994
5013
  _self.setPerfMgr = function (perfMgr) {
@@ -5183,11 +5202,7 @@ var AppInsightsCore = /** @class */ (function () {
5183
5202
  else {
5184
5203
  unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER ]);
5185
5204
  }
5186
- return {
5187
- rm: function () {
5188
- unloadHook.rm();
5189
- }
5190
- };
5205
+ return _createUnloadHook(unloadHook);
5191
5206
  };
5192
5207
  _self.getWParam = function () {
5193
5208
  return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;
@@ -5287,6 +5302,8 @@ var AppInsightsCore = /** @class */ (function () {
5287
5302
  _pluginVersionString = null;
5288
5303
  _pluginVersionStringArr = null;
5289
5304
  _forceStopInternalLogPoller = false;
5305
+ _internalLogPoller = null;
5306
+ _internalLogPollerListening = false;
5290
5307
  }
5291
5308
  function _createTelCtx() {
5292
5309
  var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);
@@ -5481,28 +5498,27 @@ var AppInsightsCore = /** @class */ (function () {
5481
5498
  doCallback();
5482
5499
  return true;
5483
5500
  }
5484
- function _initDebugListener() {
5485
- !_notificationManager && _self[_DYN_GET_NOTIFY_MGR ]();
5486
- _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
5487
- var disableDbgExt = details.cfg.disableDbgExt;
5488
- if (disableDbgExt === true && _debugListener) {
5489
- _notificationManager[_DYN_REMOVE_NOTIFICATION_2 ](_debugListener);
5490
- _debugListener = null;
5491
- }
5492
- if (_notificationManager && !_debugListener && disableDbgExt !== true) {
5493
- _debugListener = getDebugListener(details.cfg);
5494
- _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 ](_debugListener);
5495
- }
5496
- }));
5497
- }
5498
5501
  function _initPerfManager() {
5502
+ var prevCfgPerfMgr;
5499
5503
  _addUnloadHook(_configHandler[_DYN_WATCH ](function (details) {
5500
5504
  var enablePerfMgr = details.cfg.enablePerfMgr;
5501
- if (!enablePerfMgr && _cfgPerfManager) {
5502
- _cfgPerfManager = null;
5503
- }
5504
5505
  if (enablePerfMgr) {
5505
- getSetValue(details.cfg, STR_CREATE_PERF_MGR, _createPerfManager);
5506
+ var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR ];
5507
+ if (prevCfgPerfMgr !== createPerfMgr) {
5508
+ if (!createPerfMgr) {
5509
+ createPerfMgr = _createPerfManager;
5510
+ }
5511
+ getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);
5512
+ prevCfgPerfMgr = createPerfMgr;
5513
+ _cfgPerfManager = null;
5514
+ }
5515
+ if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {
5516
+ _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR ]());
5517
+ }
5518
+ }
5519
+ else {
5520
+ _cfgPerfManager = null;
5521
+ prevCfgPerfMgr = null;
5506
5522
  }
5507
5523
  }));
5508
5524
  }
@@ -6052,6 +6068,7 @@ exports.Undefined = Undefined;
6052
6068
  exports._InternalLogMessage = _InternalLogMessage;
6053
6069
  exports.__getRegisteredEvents = __getRegisteredEvents;
6054
6070
  exports._logInternalMessage = _logInternalMessage;
6071
+ exports._testHookMaxUnloadHooksCb = _testHookMaxUnloadHooksCb;
6055
6072
  exports._throwInternal = _throwInternal;
6056
6073
  exports._warnToConsole = _warnToConsole;
6057
6074
  exports.addEventHandler = addEventHandler;