@microsoft/applicationinsights-core-js 2.7.4-nightly.2201-03 → 2.7.4-nightly.2202-05

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 (56) hide show
  1. package/browser/applicationinsights-core-js.integrity.json +9 -9
  2. package/browser/applicationinsights-core-js.js +160 -122
  3. package/browser/applicationinsights-core-js.js.map +1 -1
  4. package/browser/applicationinsights-core-js.min.js +2 -2
  5. package/browser/applicationinsights-core-js.min.js.map +1 -1
  6. package/dist/applicationinsights-core-js.api.json +37 -111
  7. package/dist/applicationinsights-core-js.api.md +3 -3
  8. package/dist/applicationinsights-core-js.d.ts +4 -4
  9. package/dist/applicationinsights-core-js.js +160 -122
  10. package/dist/applicationinsights-core-js.js.map +1 -1
  11. package/dist/applicationinsights-core-js.min.js +2 -2
  12. package/dist/applicationinsights-core-js.min.js.map +1 -1
  13. package/dist/applicationinsights-core-js.rollup.d.ts +4 -4
  14. package/dist-esm/JavaScriptSDK/AppInsightsCore.js +1 -1
  15. package/dist-esm/JavaScriptSDK/BaseCore.js +1 -1
  16. package/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js +1 -1
  17. package/dist-esm/JavaScriptSDK/ChannelController.js +1 -1
  18. package/dist-esm/JavaScriptSDK/Constants.js +1 -1
  19. package/dist-esm/JavaScriptSDK/CookieMgr.js +1 -1
  20. package/dist-esm/JavaScriptSDK/CoreUtils.js +1 -1
  21. package/dist-esm/JavaScriptSDK/DbgExtensionUtils.js +1 -1
  22. package/dist-esm/JavaScriptSDK/DiagnosticLogger.js +1 -1
  23. package/dist-esm/JavaScriptSDK/EnvUtils.js +1 -1
  24. package/dist-esm/JavaScriptSDK/HelperFuncs.js +296 -111
  25. package/dist-esm/JavaScriptSDK/HelperFuncs.js.map +1 -1
  26. package/dist-esm/JavaScriptSDK/InstrumentHooks.js +2 -35
  27. package/dist-esm/JavaScriptSDK/InstrumentHooks.js.map +1 -1
  28. package/dist-esm/JavaScriptSDK/NotificationManager.js +1 -1
  29. package/dist-esm/JavaScriptSDK/PerfManager.js +1 -1
  30. package/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js +1 -1
  31. package/dist-esm/JavaScriptSDK/RandomHelper.js +1 -1
  32. package/dist-esm/JavaScriptSDK/TelemetryHelpers.js +1 -1
  33. package/dist-esm/JavaScriptSDK/TelemetryPluginChain.js +1 -1
  34. package/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js +1 -1
  35. package/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js +1 -1
  36. package/dist-esm/JavaScriptSDK.Enums/SendRequestReason.js +1 -1
  37. package/dist-esm/JavaScriptSDK.Interfaces/IAppInsightsCore.js +1 -1
  38. package/dist-esm/JavaScriptSDK.Interfaces/IChannelControls.js +1 -1
  39. package/dist-esm/JavaScriptSDK.Interfaces/IConfiguration.js +1 -1
  40. package/dist-esm/JavaScriptSDK.Interfaces/ICookieMgr.js +1 -1
  41. package/dist-esm/JavaScriptSDK.Interfaces/IDbgExtension.js +1 -1
  42. package/dist-esm/JavaScriptSDK.Interfaces/IDiagnosticLogger.js +1 -1
  43. package/dist-esm/JavaScriptSDK.Interfaces/IInstrumentHooks.js +1 -1
  44. package/dist-esm/JavaScriptSDK.Interfaces/INotificationListener.js +1 -1
  45. package/dist-esm/JavaScriptSDK.Interfaces/INotificationManager.js +1 -1
  46. package/dist-esm/JavaScriptSDK.Interfaces/IPerfEvent.js +1 -1
  47. package/dist-esm/JavaScriptSDK.Interfaces/IPerfManager.js +1 -1
  48. package/dist-esm/JavaScriptSDK.Interfaces/IProcessTelemetryContext.js +1 -1
  49. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryItem.js +1 -1
  50. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPlugin.js +1 -1
  51. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryPluginChain.js +1 -1
  52. package/dist-esm/applicationinsights-core-js.js +1 -1
  53. package/package.json +1 -1
  54. package/src/JavaScriptSDK/HelperFuncs.ts +332 -110
  55. package/src/JavaScriptSDK/InstrumentHooks.ts +1 -41
  56. package/types/JavaScriptSDK/HelperFuncs.d.ts +42 -3
@@ -11280,47 +11280,43 @@
11280
11280
  "extendsTokenRanges": []
11281
11281
  },
11282
11282
  {
11283
- "kind": "Function",
11284
- "canonicalReference": "@microsoft/applicationinsights-core-js!isArray:function(1)",
11283
+ "kind": "Variable",
11284
+ "canonicalReference": "@microsoft/applicationinsights-core-js!isArray:var",
11285
11285
  "docComment": "/**\n * Check if an object is of type Array\n */\n",
11286
11286
  "excerptTokens": [
11287
11287
  {
11288
11288
  "kind": "Content",
11289
- "text": "export declare function isArray(obj: "
11289
+ "text": "isArray: "
11290
11290
  },
11291
11291
  {
11292
11292
  "kind": "Content",
11293
- "text": "any"
11293
+ "text": "<T = any>(obj: any) => "
11294
11294
  },
11295
11295
  {
11296
- "kind": "Content",
11297
- "text": "): "
11296
+ "kind": "Reference",
11297
+ "text": "obj",
11298
+ "canonicalReference": "@microsoft/applicationinsights-core-js!~obj"
11298
11299
  },
11299
11300
  {
11300
11301
  "kind": "Content",
11301
- "text": "boolean"
11302
+ "text": " is "
11303
+ },
11304
+ {
11305
+ "kind": "Reference",
11306
+ "text": "Array",
11307
+ "canonicalReference": "!Array:interface"
11302
11308
  },
11303
11309
  {
11304
11310
  "kind": "Content",
11305
- "text": ";"
11311
+ "text": "<T>"
11306
11312
  }
11307
11313
  ],
11308
- "returnTypeTokenRange": {
11309
- "startIndex": 3,
11310
- "endIndex": 4
11311
- },
11312
11314
  "releaseTag": "Public",
11313
- "overloadIndex": 1,
11314
- "parameters": [
11315
- {
11316
- "parameterName": "obj",
11317
- "parameterTypeTokenRange": {
11318
- "startIndex": 1,
11319
- "endIndex": 2
11320
- }
11321
- }
11322
- ],
11323
- "name": "isArray"
11315
+ "name": "isArray",
11316
+ "variableTypeTokenRange": {
11317
+ "startIndex": 1,
11318
+ "endIndex": 6
11319
+ }
11324
11320
  },
11325
11321
  {
11326
11322
  "kind": "Function",
@@ -13595,60 +13591,25 @@
13595
13591
  "name": "objForEachKey"
13596
13592
  },
13597
13593
  {
13598
- "kind": "Function",
13599
- "canonicalReference": "@microsoft/applicationinsights-core-js!objFreeze:function(1)",
13594
+ "kind": "Variable",
13595
+ "canonicalReference": "@microsoft/applicationinsights-core-js!objFreeze:var",
13600
13596
  "docComment": "",
13601
13597
  "excerptTokens": [
13602
13598
  {
13603
13599
  "kind": "Content",
13604
- "text": "export declare function objFreeze<T>(value: "
13605
- },
13606
- {
13607
- "kind": "Content",
13608
- "text": "T"
13609
- },
13610
- {
13611
- "kind": "Content",
13612
- "text": "): "
13613
- },
13614
- {
13615
- "kind": "Content",
13616
- "text": "T"
13600
+ "text": "objFreeze: "
13617
13601
  },
13618
13602
  {
13619
13603
  "kind": "Content",
13620
- "text": ";"
13604
+ "text": "<T>(value: T) => T"
13621
13605
  }
13622
13606
  ],
13623
- "returnTypeTokenRange": {
13624
- "startIndex": 3,
13625
- "endIndex": 4
13626
- },
13627
13607
  "releaseTag": "Public",
13628
- "overloadIndex": 1,
13629
- "parameters": [
13630
- {
13631
- "parameterName": "value",
13632
- "parameterTypeTokenRange": {
13633
- "startIndex": 1,
13634
- "endIndex": 2
13635
- }
13636
- }
13637
- ],
13638
- "typeParameters": [
13639
- {
13640
- "typeParameterName": "T",
13641
- "constraintTokenRange": {
13642
- "startIndex": 0,
13643
- "endIndex": 0
13644
- },
13645
- "defaultTypeTokenRange": {
13646
- "startIndex": 0,
13647
- "endIndex": 0
13648
- }
13649
- }
13650
- ],
13651
- "name": "objFreeze"
13608
+ "name": "objFreeze",
13609
+ "variableTypeTokenRange": {
13610
+ "startIndex": 1,
13611
+ "endIndex": 2
13612
+ }
13652
13613
  },
13653
13614
  {
13654
13615
  "kind": "Function",
@@ -13694,60 +13655,25 @@
13694
13655
  "name": "objKeys"
13695
13656
  },
13696
13657
  {
13697
- "kind": "Function",
13698
- "canonicalReference": "@microsoft/applicationinsights-core-js!objSeal:function(1)",
13658
+ "kind": "Variable",
13659
+ "canonicalReference": "@microsoft/applicationinsights-core-js!objSeal:var",
13699
13660
  "docComment": "",
13700
13661
  "excerptTokens": [
13701
13662
  {
13702
13663
  "kind": "Content",
13703
- "text": "export declare function objSeal<T>(value: "
13704
- },
13705
- {
13706
- "kind": "Content",
13707
- "text": "T"
13664
+ "text": "objSeal: "
13708
13665
  },
13709
13666
  {
13710
13667
  "kind": "Content",
13711
- "text": "): "
13712
- },
13713
- {
13714
- "kind": "Content",
13715
- "text": "T"
13716
- },
13717
- {
13718
- "kind": "Content",
13719
- "text": ";"
13668
+ "text": "<T>(value: T) => T"
13720
13669
  }
13721
13670
  ],
13722
- "returnTypeTokenRange": {
13723
- "startIndex": 3,
13724
- "endIndex": 4
13725
- },
13726
13671
  "releaseTag": "Public",
13727
- "overloadIndex": 1,
13728
- "parameters": [
13729
- {
13730
- "parameterName": "value",
13731
- "parameterTypeTokenRange": {
13732
- "startIndex": 1,
13733
- "endIndex": 2
13734
- }
13735
- }
13736
- ],
13737
- "typeParameters": [
13738
- {
13739
- "typeParameterName": "T",
13740
- "constraintTokenRange": {
13741
- "startIndex": 0,
13742
- "endIndex": 0
13743
- },
13744
- "defaultTypeTokenRange": {
13745
- "startIndex": 0,
13746
- "endIndex": 0
13747
- }
13748
- }
13749
- ],
13750
- "name": "objSeal"
13672
+ "name": "objSeal",
13673
+ "variableTypeTokenRange": {
13674
+ "startIndex": 1,
13675
+ "endIndex": 2
13676
+ }
13751
13677
  },
13752
13678
  {
13753
13679
  "kind": "Function",
@@ -657,7 +657,7 @@ export interface IProcessTelemetryContext {
657
657
  }
658
658
 
659
659
  // @public
660
- export function isArray(obj: any): boolean;
660
+ export let isArray: <T = any>(obj: any) => obj is Array<T>;
661
661
 
662
662
  // @public
663
663
  export function isBeaconsSupported(): boolean;
@@ -802,13 +802,13 @@ export function objDefineAccessors<T>(target: any, prop: string, getProp?: () =>
802
802
  export function objForEachKey(target: any, callbackfn: (name: string, value: any) => void): void;
803
803
 
804
804
  // @public (undocumented)
805
- export function objFreeze<T>(value: T): T;
805
+ export const objFreeze: <T>(value: T) => T;
806
806
 
807
807
  // @public
808
808
  export function objKeys(obj: {}): string[];
809
809
 
810
810
  // @public (undocumented)
811
- export function objSeal<T>(value: T): T;
811
+ export const objSeal: <T>(value: T) => T;
812
812
 
813
813
  // @public
814
814
  export function optimizeObject<T>(theObject: T): T;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Microsoft Application Insights Core Javascript SDK, 2.7.4-nightly.2201-03
2
+ * Microsoft Application Insights Core Javascript SDK, 2.7.4-nightly.2202-05
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  *
5
5
  * Microsoft Application Insights Team
@@ -1599,7 +1599,7 @@ declare namespace ApplicationInsights {
1599
1599
  /**
1600
1600
  * Check if an object is of type Array
1601
1601
  */
1602
- function isArray(obj: any): boolean;
1602
+ let isArray: <T = any>(obj: any) => obj is Array<T>;
1603
1603
 
1604
1604
  /**
1605
1605
  * Checks if HTML5 Beacons are supported in the current environment.
@@ -1902,7 +1902,7 @@ declare namespace ApplicationInsights {
1902
1902
  */
1903
1903
  function objForEachKey(target: any, callbackfn: (name: string, value: any) => void): void;
1904
1904
 
1905
- function objFreeze<T>(value: T): T;
1905
+ const objFreeze: <T>(value: T) => T;
1906
1906
 
1907
1907
  /**
1908
1908
  * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers
@@ -1912,7 +1912,7 @@ declare namespace ApplicationInsights {
1912
1912
  */
1913
1913
  function objKeys(obj: {}): string[];
1914
1914
 
1915
- function objSeal<T>(value: T): T;
1915
+ const objSeal: <T>(value: T) => T;
1916
1916
 
1917
1917
  /**
1918
1918
  * A helper function to assist with JIT performance for objects that have properties added / removed dynamically
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Core, 2.7.4-nightly.2201-03
2
+ * Application Insights JavaScript SDK - Core, 2.7.4-nightly.2202-05
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -436,11 +436,44 @@
436
436
  var strDetachEvent = "detachEvent";
437
437
  var strRemoveEventListener = "removeEventListener";
438
438
  var strToISOString = "toISOString";
439
+ var cStrEndsWith = "endsWith";
440
+ var cStrStartsWith = "startsWith";
441
+ var strIndexOf = "indexOf";
442
+ var strMap = "map";
443
+ var strReduce = "reduce";
444
+ var cStrTrim = "trim";
445
+ var strKeys = "keys";
446
+ var strToString = "toString";
447
+ var str__Proto = "__proto__";
448
+ var strConstructor = "constructor";
439
449
  var _objDefineProperty = ObjDefineProperty;
440
450
  var _objFreeze = ObjClass["freeze"];
441
451
  var _objSeal = ObjClass["seal"];
442
- function objToString(obj) {
443
- return ObjProto.toString.call(obj);
452
+ var StringProto = String[strShimPrototype];
453
+ var _strTrim = StringProto[cStrTrim];
454
+ var _strEndsWith = StringProto[cStrEndsWith];
455
+ var _strStartsWith = StringProto[cStrStartsWith];
456
+ var DateProto = Date[strShimPrototype];
457
+ var _dataToISOString = DateProto[strToISOString];
458
+ var _isArray = Array.isArray;
459
+ var _objToString = ObjProto[strToString];
460
+ var _fnToString = ObjHasOwnProperty[strToString];
461
+ _fnToString.call(ObjClass);
462
+ var rCamelCase = /-([a-z])/g;
463
+ var rNormalizeInvalid = /([^\w\d_$])/g;
464
+ var rLeadingNumeric = /^(\d+[\w\d_$])/;
465
+ var _objGetPrototypeOf = Object["getPrototypeOf"];
466
+ function _getObjProto(target) {
467
+ if (target) {
468
+ if (_objGetPrototypeOf) {
469
+ return _objGetPrototypeOf(target);
470
+ }
471
+ var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
472
+ if (newProto) {
473
+ return newProto;
474
+ }
475
+ }
476
+ return null;
444
477
  }
445
478
  function isTypeof(value, theType) {
446
479
  return typeof value === theType;
@@ -458,13 +491,13 @@
458
491
  return !isNullOrUndefined(value);
459
492
  }
460
493
  function hasOwnProperty(obj, prop) {
461
- return obj && ObjHasOwnProperty.call(obj, prop);
494
+ return !!(obj && ObjHasOwnProperty.call(obj, prop));
462
495
  }
463
496
  function isObject(value) {
464
- return typeof value === strShimObject;
497
+ return !!(value && typeof value === strShimObject);
465
498
  }
466
499
  function isFunction(value) {
467
- return typeof value === strShimFunction;
500
+ return !!(value && typeof value === strShimFunction);
468
501
  }
469
502
  function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {
470
503
  if (useCapture === void 0) { useCapture = false; }
@@ -502,9 +535,14 @@
502
535
  }
503
536
  function normalizeJsName(name) {
504
537
  var value = name;
505
- var match = /([^\w\d_$])/g;
506
- if (match.test(name)) {
507
- value = name.replace(match, "_");
538
+ if (value && isString(value)) {
539
+ value = value.replace(rCamelCase, function (_all, letter) {
540
+ return letter.toUpperCase();
541
+ });
542
+ value = value.replace(rNormalizeInvalid, "_");
543
+ value = value.replace(rLeadingNumeric, function (_all, match) {
544
+ return "_" + match;
545
+ });
508
546
  }
509
547
  return value;
510
548
  }
@@ -518,40 +556,45 @@
518
556
  }
519
557
  }
520
558
  function strEndsWith(value, search) {
521
- if (value && search) {
522
- var searchLen = search.length;
523
- var valLen = value.length;
524
- if (value === search) {
525
- return true;
526
- }
527
- else if (valLen >= searchLen) {
528
- var pos = valLen - 1;
529
- for (var lp = searchLen - 1; lp >= 0; lp--) {
530
- if (value[pos] != search[lp]) {
531
- return false;
532
- }
533
- pos--;
559
+ var result = false;
560
+ if (value && search && !(result = value === search)) {
561
+ result = _strEndsWith ? value[cStrEndsWith](search) : _strEndsWithPoly(value, search);
562
+ }
563
+ return result;
564
+ }
565
+ function _strEndsWithPoly(value, search) {
566
+ var result = false;
567
+ var searchLen = search ? search.length : 0;
568
+ var valLen = value ? value.length : 0;
569
+ if (searchLen && valLen && valLen >= searchLen && !(result = value === search)) {
570
+ var pos = valLen - 1;
571
+ for (var lp = searchLen - 1; lp >= 0; lp--) {
572
+ if (value[pos] != search[lp]) {
573
+ return false;
534
574
  }
535
- return true;
575
+ pos--;
536
576
  }
577
+ result = true;
537
578
  }
538
- return false;
579
+ return result;
539
580
  }
540
581
  function strStartsWith(value, checkValue) {
541
582
  var result = false;
542
- if (value && checkValue) {
543
- var chkLen = checkValue.length;
544
- if (value === checkValue) {
545
- return true;
546
- }
547
- else if (value.length >= chkLen) {
548
- for (var lp = 0; lp < chkLen; lp++) {
549
- if (value[lp] !== checkValue[lp]) {
550
- return false;
551
- }
583
+ if (value && checkValue && !(result = value === checkValue)) {
584
+ result = _strStartsWith ? value[cStrStartsWith](checkValue) : _strStartsWithPoly(value, checkValue);
585
+ }
586
+ return result;
587
+ }
588
+ function _strStartsWithPoly(value, checkValue) {
589
+ var result = false;
590
+ var chkLen = checkValue ? checkValue.length : 0;
591
+ if (value && chkLen && value.length >= chkLen && !(result = value === checkValue)) {
592
+ for (var lp = 0; lp < chkLen; lp++) {
593
+ if (value[lp] !== checkValue[lp]) {
594
+ return false;
552
595
  }
553
- result = true;
554
596
  }
597
+ result = true;
555
598
  }
556
599
  return result;
557
600
  }
@@ -562,13 +605,14 @@
562
605
  return false;
563
606
  }
564
607
  function isDate(obj) {
565
- return objToString(obj) === "[object Date]";
608
+ return !!(obj && _objToString.call(obj) === "[object Date]");
566
609
  }
567
- function isArray(obj) {
568
- return objToString(obj) === "[object Array]";
610
+ var isArray = _isArray || _isArrayPoly;
611
+ function _isArrayPoly(obj) {
612
+ return !!(obj && _objToString.call(obj) === "[object Array]");
569
613
  }
570
614
  function isError(obj) {
571
- return objToString(obj) === "[object Error]";
615
+ return !!(obj && _objToString.call(obj) === "[object Error]");
572
616
  }
573
617
  function isString(value) {
574
618
  return typeof value === "string";
@@ -584,26 +628,26 @@
584
628
  }
585
629
  function toISOString(date) {
586
630
  if (date) {
587
- if (date[strToISOString]) {
588
- return date[strToISOString]();
589
- }
590
- if (isDate(date)) {
591
- var pad = function (num) {
592
- var r = String(num);
593
- if (r.length === 1) {
594
- r = "0" + r;
595
- }
596
- return r;
597
- };
598
- return date.getUTCFullYear()
599
- + "-" + pad(date.getUTCMonth() + 1)
600
- + "-" + pad(date.getUTCDate())
601
- + "T" + pad(date.getUTCHours())
602
- + ":" + pad(date.getUTCMinutes())
603
- + ":" + pad(date.getUTCSeconds())
604
- + "." + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)
605
- + "Z";
606
- }
631
+ return _dataToISOString ? date[strToISOString]() : _toISOStringPoly(date);
632
+ }
633
+ }
634
+ function _toISOStringPoly(date) {
635
+ if (date && date.getUTCFullYear) {
636
+ var pad = function (num) {
637
+ var r = String(num);
638
+ if (r.length === 1) {
639
+ r = "0" + r;
640
+ }
641
+ return r;
642
+ };
643
+ return date.getUTCFullYear()
644
+ + "-" + pad(date.getUTCMonth() + 1)
645
+ + "-" + pad(date.getUTCDate())
646
+ + "T" + pad(date.getUTCHours())
647
+ + ":" + pad(date.getUTCMinutes())
648
+ + ":" + pad(date.getUTCSeconds())
649
+ + "." + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)
650
+ + "Z";
607
651
  }
608
652
  }
609
653
  function arrForEach(arr, callbackfn, thisArg) {
@@ -621,60 +665,76 @@
621
665
  }
622
666
  }
623
667
  function arrIndexOf(arr, searchElement, fromIndex) {
624
- var len = arr.length;
625
- var from = fromIndex || 0;
626
- try {
627
- for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
628
- if (lp in arr && arr[lp] === searchElement) {
629
- return lp;
668
+ if (arr) {
669
+ if (arr[strIndexOf]) {
670
+ return arr[strIndexOf](searchElement, fromIndex);
671
+ }
672
+ var len = arr.length;
673
+ var from = fromIndex || 0;
674
+ try {
675
+ for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
676
+ if (lp in arr && arr[lp] === searchElement) {
677
+ return lp;
678
+ }
630
679
  }
631
680
  }
632
- }
633
- catch (e) {
681
+ catch (e) {
682
+ }
634
683
  }
635
684
  return -1;
636
685
  }
637
686
  function arrMap(arr, callbackfn, thisArg) {
638
- var len = arr.length;
639
- var _this = thisArg || arr;
640
- var results = new Array(len);
641
- try {
642
- for (var lp = 0; lp < len; lp++) {
643
- if (lp in arr) {
644
- results[lp] = callbackfn.call(_this, arr[lp], arr);
687
+ var results;
688
+ if (arr) {
689
+ if (arr[strMap]) {
690
+ return arr[strMap](callbackfn, thisArg);
691
+ }
692
+ var len = arr.length;
693
+ var _this = thisArg || arr;
694
+ results = new Array(len);
695
+ try {
696
+ for (var lp = 0; lp < len; lp++) {
697
+ if (lp in arr) {
698
+ results[lp] = callbackfn.call(_this, arr[lp], arr);
699
+ }
645
700
  }
646
701
  }
647
- }
648
- catch (e) {
702
+ catch (e) {
703
+ }
649
704
  }
650
705
  return results;
651
706
  }
652
707
  function arrReduce(arr, callbackfn, initialValue) {
653
- var len = arr.length;
654
- var lp = 0;
655
708
  var value;
656
- if (arguments.length >= 3) {
657
- value = arguments[2];
658
- }
659
- else {
660
- while (lp < len && !(lp in arr)) {
661
- lp++;
709
+ if (arr) {
710
+ if (arr[strReduce]) {
711
+ return arr[strReduce](callbackfn, initialValue);
662
712
  }
663
- value = arr[lp++];
664
- }
665
- while (lp < len) {
666
- if (lp in arr) {
667
- value = callbackfn(value, arr[lp], lp, arr);
713
+ var len = arr.length;
714
+ var lp = 0;
715
+ if (arguments.length >= 3) {
716
+ value = arguments[2];
717
+ }
718
+ else {
719
+ while (lp < len && !(lp in arr)) {
720
+ lp++;
721
+ }
722
+ value = arr[lp++];
723
+ }
724
+ while (lp < len) {
725
+ if (lp in arr) {
726
+ value = callbackfn(value, arr[lp], lp, arr);
727
+ }
728
+ lp++;
668
729
  }
669
- lp++;
670
730
  }
671
731
  return value;
672
732
  }
673
733
  function strTrim(str) {
674
- if (typeof str !== "string") {
675
- return str;
734
+ if (str) {
735
+ str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str.replace ? str.replace(/^\s+|\s+$/g, "") : str);
676
736
  }
677
- return str.replace(/^\s+|\s+$/g, "");
737
+ return str;
678
738
  }
679
739
  var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
680
740
  var _objKeysDontEnums = [
@@ -691,6 +751,9 @@
691
751
  if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
692
752
  throwTypeError("objKeys called on non-object");
693
753
  }
754
+ if (!_objKeysHasDontEnumBug && obj[strKeys]) {
755
+ return obj[strKeys]();
756
+ }
694
757
  var result = [];
695
758
  for (var prop in obj) {
696
759
  if (obj && ObjHasOwnProperty.call(obj, prop)) {
@@ -728,24 +791,14 @@
728
791
  }
729
792
  return false;
730
793
  }
731
- function objFreeze(value) {
732
- if (_objFreeze) {
733
- value = _objFreeze(value);
734
- }
735
- return value;
736
- }
737
- function objSeal(value) {
738
- if (_objSeal) {
739
- value = _objSeal(value);
740
- }
794
+ function _doNothing(value) {
741
795
  return value;
742
796
  }
797
+ var objFreeze = _objFreeze || _doNothing;
798
+ var objSeal = _objSeal || _doNothing;
743
799
  function dateNow() {
744
800
  var dt = Date;
745
- if (dt.now) {
746
- return dt.now();
747
- }
748
- return new dt().getTime();
801
+ return dt.now ? dt.now() : new dt().getTime();
749
802
  }
750
803
  function getExceptionName(object) {
751
804
  if (isError(object)) {
@@ -2595,8 +2648,6 @@
2595
2648
  var cbNames = [
2596
2649
  "req", "rsp", "hkErr", "fnErr"
2597
2650
  ];
2598
- var str__Proto = "__proto__";
2599
- var strConstructor = "constructor";
2600
2651
  function _arrLoop(arr, fn) {
2601
2652
  if (arr) {
2602
2653
  for (var lp = 0; lp < arr.length; lp++) {
@@ -2676,19 +2727,6 @@
2676
2727
  return funcArgs.rslt;
2677
2728
  };
2678
2729
  }
2679
- var _objGetPrototypeOf = Object["getPrototypeOf"];
2680
- function _getObjProto(target) {
2681
- if (target) {
2682
- if (_objGetPrototypeOf) {
2683
- return _objGetPrototypeOf(target);
2684
- }
2685
- var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
2686
- if (newProto) {
2687
- return newProto;
2688
- }
2689
- }
2690
- return null;
2691
- }
2692
2730
  function _getOwner(target, name, checkPrototype) {
2693
2731
  var owner = null;
2694
2732
  if (target) {