polyfill-library 4.6.0 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. package/CHANGELOG.md +4 -4
  2. package/README.md +41 -0
  3. package/package.json +10 -21
  4. package/polyfills/__dist/Array.prototype.sort/meta.json +1 -1
  5. package/polyfills/__dist/Array.prototype.sort/min.js +1 -1
  6. package/polyfills/__dist/Array.prototype.sort/raw.js +20 -9
  7. package/polyfills/__dist/Array.prototype.toReversed/meta.json +1 -0
  8. package/polyfills/__dist/Array.prototype.toReversed/min.js +1 -0
  9. package/polyfills/__dist/Array.prototype.toReversed/raw.js +29 -0
  10. package/polyfills/__dist/Array.prototype.toSorted/meta.json +1 -0
  11. package/polyfills/__dist/Array.prototype.toSorted/min.js +1 -0
  12. package/polyfills/__dist/Array.prototype.toSorted/raw.js +37 -0
  13. package/polyfills/__dist/Array.prototype.toSpliced/meta.json +1 -0
  14. package/polyfills/__dist/Array.prototype.toSpliced/min.js +1 -0
  15. package/polyfills/__dist/Array.prototype.toSpliced/raw.js +96 -0
  16. package/polyfills/__dist/Array.prototype.with/meta.json +1 -0
  17. package/polyfills/__dist/Array.prototype.with/min.js +1 -0
  18. package/polyfills/__dist/Array.prototype.with/raw.js +60 -0
  19. package/polyfills/__dist/DocumentFragment.prototype.replaceChildren/meta.json +1 -0
  20. package/polyfills/__dist/DocumentFragment.prototype.replaceChildren/min.js +1 -0
  21. package/polyfills/__dist/DocumentFragment.prototype.replaceChildren/raw.js +15 -0
  22. package/polyfills/__dist/Element.prototype.replaceChildren/meta.json +1 -0
  23. package/polyfills/__dist/Element.prototype.replaceChildren/min.js +1 -0
  24. package/polyfills/__dist/Element.prototype.replaceChildren/raw.js +8 -0
  25. package/polyfills/__dist/HTMLFormElement.prototype.requestSubmit/meta.json +1 -0
  26. package/polyfills/__dist/HTMLFormElement.prototype.requestSubmit/min.js +1 -0
  27. package/polyfills/__dist/HTMLFormElement.prototype.requestSubmit/raw.js +116 -0
  28. package/polyfills/__dist/IntersectionObserver/meta.json +1 -1
  29. package/polyfills/__dist/IntersectionObserver/min.js +1 -1
  30. package/polyfills/__dist/IntersectionObserver/raw.js +2 -1
  31. package/polyfills/__dist/IntersectionObserverEntry/meta.json +1 -1
  32. package/polyfills/__dist/Intl.DateTimeFormat.~locale.en-US-POSIX/meta.json +1 -1
  33. package/polyfills/__dist/Intl.NumberFormat.~locale.he/meta.json +1 -1
  34. package/polyfills/__dist/Intl.NumberFormat.~locale.id/meta.json +1 -1
  35. package/polyfills/__dist/Intl.NumberFormat.~locale.jv/meta.json +1 -1
  36. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn/meta.json +1 -1
  37. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn-BA/meta.json +1 -1
  38. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn-ME/meta.json +1 -1
  39. package/polyfills/__dist/Intl.NumberFormat.~locale.sr-Latn-XK/meta.json +1 -1
  40. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.en-US-POSIX/meta.json +1 -1
  41. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.he/meta.json +1 -1
  42. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.id/meta.json +1 -1
  43. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.jv/meta.json +1 -1
  44. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn/meta.json +1 -1
  45. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn-BA/meta.json +1 -1
  46. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn-ME/meta.json +1 -1
  47. package/polyfills/__dist/Intl.RelativeTimeFormat.~locale.sr-Latn-XK/meta.json +1 -1
  48. package/polyfills/__dist/Map/meta.json +1 -1
  49. package/polyfills/__dist/Map/min.js +1 -1
  50. package/polyfills/__dist/Map/raw.js +5 -2
  51. package/polyfills/__dist/ResizeObserver/min.js +1 -1
  52. package/polyfills/__dist/ResizeObserver/raw.js +5 -5
  53. package/polyfills/__dist/TypedArray.prototype.@@toStringTag/raw.js +1 -1
  54. package/polyfills/__dist/TypedArray.prototype.at/raw.js +1 -1
  55. package/polyfills/__dist/TypedArray.prototype.entries/meta.json +1 -1
  56. package/polyfills/__dist/TypedArray.prototype.entries/min.js +1 -1
  57. package/polyfills/__dist/TypedArray.prototype.entries/raw.js +21 -25
  58. package/polyfills/__dist/TypedArray.prototype.findLast/meta.json +1 -1
  59. package/polyfills/__dist/TypedArray.prototype.findLast/min.js +1 -1
  60. package/polyfills/__dist/TypedArray.prototype.findLast/raw.js +12 -11
  61. package/polyfills/__dist/TypedArray.prototype.findLastIndex/meta.json +1 -1
  62. package/polyfills/__dist/TypedArray.prototype.findLastIndex/min.js +1 -1
  63. package/polyfills/__dist/TypedArray.prototype.findLastIndex/raw.js +12 -11
  64. package/polyfills/__dist/TypedArray.prototype.keys/meta.json +1 -1
  65. package/polyfills/__dist/TypedArray.prototype.keys/min.js +1 -1
  66. package/polyfills/__dist/TypedArray.prototype.keys/raw.js +21 -25
  67. package/polyfills/__dist/TypedArray.prototype.sort/meta.json +1 -0
  68. package/polyfills/__dist/TypedArray.prototype.sort/min.js +1 -0
  69. package/polyfills/__dist/TypedArray.prototype.sort/raw.js +71 -0
  70. package/polyfills/__dist/TypedArray.prototype.toReversed/meta.json +1 -0
  71. package/polyfills/__dist/TypedArray.prototype.toReversed/min.js +1 -0
  72. package/polyfills/__dist/TypedArray.prototype.toReversed/raw.js +50 -0
  73. package/polyfills/__dist/TypedArray.prototype.toSorted/meta.json +1 -0
  74. package/polyfills/__dist/TypedArray.prototype.toSorted/min.js +1 -0
  75. package/polyfills/__dist/TypedArray.prototype.toSorted/raw.js +59 -0
  76. package/polyfills/__dist/TypedArray.prototype.with/meta.json +1 -0
  77. package/polyfills/__dist/TypedArray.prototype.with/min.js +1 -0
  78. package/polyfills/__dist/TypedArray.prototype.with/raw.js +83 -0
  79. package/polyfills/__dist/_ESAbstract.IsValidIntegerIndex/meta.json +1 -0
  80. package/polyfills/__dist/_ESAbstract.IsValidIntegerIndex/min.js +1 -0
  81. package/polyfills/__dist/_ESAbstract.IsValidIntegerIndex/raw.js +16 -0
  82. package/polyfills/__dist/_ESAbstract.TypedArrayCreate/meta.json +1 -0
  83. package/polyfills/__dist/_ESAbstract.TypedArrayCreate/min.js +1 -0
  84. package/polyfills/__dist/_ESAbstract.TypedArrayCreate/raw.js +20 -0
  85. package/polyfills/__dist/_ESAbstract.TypedArrayCreateSameType/meta.json +1 -0
  86. package/polyfills/__dist/_ESAbstract.TypedArrayCreateSameType/min.js +1 -0
  87. package/polyfills/__dist/_ESAbstract.TypedArrayCreateSameType/raw.js +41 -0
  88. package/polyfills/__dist/aliases.json +1 -1
  89. package/polyfills/__dist/atob/meta.json +1 -1
  90. package/polyfills/__dist/atob/min.js +1 -1
  91. package/polyfills/__dist/atob/raw.js +22 -16
  92. package/polyfills/__dist/structuredClone/meta.json +1 -0
  93. package/polyfills/__dist/structuredClone/min.js +1 -0
  94. package/polyfills/__dist/structuredClone/raw.js +279 -0
package/CHANGELOG.md CHANGED
@@ -4,10 +4,10 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
- #### [v4.6.0](https://github.com/Financial-Times/polyfill-library/compare/v4.6.0...v4.6.0)
7
+ #### [v4.8.0](https://github.com/Financial-Times/polyfill-library/compare/v4.8.0...v4.8.0)
8
8
 
9
- #### v4.6.0
9
+ #### v4.8.0
10
10
 
11
- > 13 January 2023
11
+ > 26 June 2023
12
12
 
13
- - prepare 4.6.0 [`#1260`](https://github.com/Financial-Times/polyfill-library/pull/1260)
13
+ - Bump semver from 7.5.0 to 7.5.2 [`#1298`](https://github.com/Financial-Times/polyfill-library/pull/1298)
package/README.md CHANGED
@@ -84,6 +84,47 @@ Create a polyfill bundle.
84
84
 
85
85
  Returns a polyfill bundle as either a utf-8 ReadStream or as a Promise of a utf-8 String.
86
86
 
87
+ ## AWS Lambda
88
+
89
+ To use this package in an AWS Lambda function, you need to include the distribution Polyfills located in `./node_modules/polyfill-library/polyfills/__dist` in the root directory of your Lambda. In AWS, Lambdas are executed in the `/var/task/...` directory. Therefore, during execution, the directory where the polyfills will be located will be `/var/task/polyfill-library/__dist`.
90
+
91
+ ### Example of a script to copy files
92
+
93
+ The following snippet will allow us to copy the polyfills to our already compiled Lambda. To do this, we will first install the necessary dependencies.
94
+
95
+ ```bash
96
+ yarn add -D make-dir fs-extra
97
+ ```
98
+
99
+ Once the dependencies are installed, we will create the file with the script at `/scripts/polyfills-serverless.mjs` and replace `YOUR_BUNDELED_LAMBDA_DIRECTORY` with the directory that contains our packaged Lambda.
100
+
101
+ In the example, we will use the directory `./.serverless_nextjs/api-lambda`, which is the one used when using Serverless Next.js.
102
+
103
+ ```js
104
+ import { copySync } from 'fs-extra/esm';
105
+ import makeDir from 'make-dir';
106
+
107
+ const DIR_POLYFILLS = './node_modules/polyfill-library/polyfills/__dist';
108
+ // const DIR_SERVERLESS = 'YOUR_BUNDELED_LAMBDA_DIRECTORY/polyfills/__dist';
109
+ const DIR_SERVERLESS = './.serverless_nextjs/api-lambda/polyfills/__dist';
110
+
111
+ const paths = await makeDir(DIR_SERVERLESS);
112
+ console.log(`The directory ${paths} is created successfully.`);
113
+
114
+ try {
115
+ console.log('Copying polyfills to serverless directory...');
116
+ copySync(DIR_POLYFILLS, DIR_SERVERLESS, { overwrite: false });
117
+ console.log('Polyfills copied successfully!');
118
+ } catch (err) {
119
+ console.error(err);
120
+ }
121
+ ```
122
+
123
+ To execute the script, you will need to run the following command:
124
+
125
+ ```bash
126
+ node ./scripts/polyfills-serverless.mjs
127
+ ```
87
128
 
88
129
  ## Contributing
89
130
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polyfill-library",
3
- "version": "4.6.0",
3
+ "version": "4.8.0",
4
4
  "description": "A polyfill combinator",
5
5
  "main": "lib/index.js",
6
6
  "contributors": [
@@ -33,10 +33,8 @@
33
33
  "test-polyfills": "karma start",
34
34
  "test-all-polyfills": "node ./test/polyfills/test-all-features.js",
35
35
  "test-end-to-end": "mocha test/end-to-end/**/*.test.js",
36
- "test-node": "mocha test/node/**/*.js",
37
- "test-node-unit": "nyc mocha test/unit --recursive",
38
- "test-node-coverage": "nyc check-coverage --lines 90 --branches 90 --functions 90",
39
- "test-coverage": "nyc report --reporter=lcov",
36
+ "test-node": "nyc mocha test/node/**/*.js",
37
+ "test-node-unit": "mocha test/unit --recursive",
40
38
  "test": "npm run build && npm run test-node && npm run test-node-unit && npm run test-polyfills",
41
39
  "prepublishOnly": "npm run build && mv polyfills/__dist __dist && rimraf polyfills && mkdir polyfills && mv __dist polyfills/__dist",
42
40
  "create-new-polyfill": "node ./tasks/create-new-polyfill.js",
@@ -87,20 +85,17 @@
87
85
  "Base64": "^1.0.0",
88
86
  "bluebird": "^3.7.2",
89
87
  "browserstack": "1.6.1",
90
- "browserstack-local": "^1.4.5",
88
+ "browserstack-local": "^1.5.2",
91
89
  "chai": "^4.3.4",
92
90
  "cli-color": "^2.0.0",
93
91
  "compression": "^1.7.4",
94
- "current-script-polyfill": "^1.0.0",
95
- "diff": "4.0.2",
92
+ "diff": "^5.0.0",
96
93
  "dotenv": "^8.2.0",
97
94
  "eslint": "^7.0.0",
98
95
  "eslint-plugin-uncalled-iife": "^1.0.2",
99
96
  "eslint-plugin-unicorn": "^27.0.0",
100
97
  "execa": "^5.0.0",
101
98
  "express": "^4.17.3",
102
- "fastestsmallesttextencoderdecoder": "1.0.22",
103
- "fs-extra": "^9.0.1",
104
99
  "glob": "^7.1.1",
105
100
  "globby": "^11.0.0",
106
101
  "handlebars": "^4.7.2",
@@ -108,36 +103,30 @@
108
103
  "html5shiv": "^3.7.3",
109
104
  "js-polyfills": "^0.1.40",
110
105
  "karma": "^6.0.0",
111
- "karma-browserstack-launcher": "^1.4.0",
106
+ "karma-browserstack-launcher": "^1.6.0",
112
107
  "karma-firefox-launcher": "^2.1.2",
113
108
  "karma-mocha": "^2.0.1",
114
109
  "karma-mocha-reporter": "^2.2.5",
115
- "karma-summary-optional-console-reporter": "^1.6.1",
116
110
  "lodash": "^4.17.14",
117
- "mkdirp": "^1.0.4",
118
111
  "mocha": "^3.5.3",
119
112
  "mockery": "^2.1.0",
120
113
  "mutationobserver-shim": "^0.3.2",
121
114
  "nyc": "^15.0.0",
122
115
  "picturefill": "^3.0.1",
123
- "prettier": "^2.0.5",
124
116
  "proclaim": "^3.6.0",
125
117
  "rimraf": "^3.0.0",
126
118
  "seamless-scroll-polyfill": "1.2.4",
127
119
  "semver": "^7.3.7",
128
- "sinon": "^10.0.0",
120
+ "sinon": "^15.0.0",
129
121
  "spdx-licenses": "^1.0.0",
130
122
  "uglify-js": "^2.7.5",
131
123
  "unorm": "^1.6.0",
132
124
  "usertiming": "^0.1.8",
133
125
  "web-animations-js": "^2.2.5",
134
- "webdriverio": "^6.1.14",
135
- "whatwg-fetch": "^3.6.2",
136
- "yaku": "1.0.1",
137
- "yaml": "^1.1.0"
126
+ "webdriverio": "^8.0.0",
127
+ "whatwg-fetch": "^3.6.2"
138
128
  },
139
129
  "volta": {
140
- "node": "12.22.12",
141
- "npm": "6.14.16"
130
+ "node": "16.20.0"
142
131
  }
143
132
  }
@@ -1 +1 @@
1
- {"aliases":["es6","es2015","modernizr:es6array"],"dependencies":["_ESAbstract.CreateMethodProperty","_ESAbstract.IsCallable"],"license":"MIT","spec":"http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort","docs":"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort","browsers":{"android":"*","chrome":"<70","edge":"*","edge_mob":"*","firefox":"<3","ie":"*","ie_mob":"*","opera":"<57","op_mob":"<49","safari":"<10.1","ios_saf":"<10.3","samsung_mob":"<10.0"},"detectSource":"\"sort\"in Array.prototype&&function(){var r={length:3,0:2,1:1,2:3}\nreturn Array.prototype.sort.call(r,function(r,t){return r-t})===r}()\n","baseDir":"Array/prototype/sort","hasTests":true,"isTestable":true,"isPublic":true,"size":550}
1
+ {"aliases":["es6","es2015","modernizr:es6array"],"dependencies":["_ESAbstract.CreateMethodProperty","_ESAbstract.IsCallable"],"license":"MIT","spec":"http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort","docs":"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort","browsers":{"android":"*","chrome":"<70","edge":"*","edge_mob":"*","firefox":"<3","ie":"*","ie_mob":"*","opera":"<57","op_mob":"<49","safari":"<10.1","ios_saf":"<10.3","samsung_mob":"<10.0"},"detectSource":"\"sort\"in Array.prototype&&function(){var r={length:3,0:2,1:1,2:3}\nreturn Array.prototype.sort.call(r,function(r,t){return r-t})===r}()\n","baseDir":"Array/prototype/sort","hasTests":true,"isTestable":true,"isPublic":true,"size":602}
@@ -1 +1 @@
1
- "use strict";var origSort=Array.prototype.sort;CreateMethodProperty(Array.prototype,"sort",function r(t){if(void 0!==t&&!1===IsCallable(t))throw new TypeError("The comparison function must be either a function or undefined");if(void 0===t)origSort.call(this);else{var e=Array.prototype.map.call(this,function(r,t){return{item:r,index:t}});origSort.call(e,function(r,e){var o=t.call(void 0,r.item,e.item);return 0===o?r.index-e.index:o});for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&e[o].item!==this[o]&&(this[o]=e[o].item)}return this});
1
+ "use strict";var origSort=Array.prototype.sort;CreateMethodProperty(Array.prototype,"sort",function t(r){if(void 0!==r&&!1===IsCallable(r))throw new TypeError("The comparison function must be either a function or undefined");if(void 0===r)origSort.call(this);else{var i,e=[];for(i=0;i<this.length;i++)i in this&&e.push({item:this[i],index:i});for(origSort.call(e,function(t,i){if(void 0===i.item)return-1;if(void 0===t.item)return 1;var e=+r.call(void 0,t.item,i.item)||0;return 0===e?t.index-i.index:e}),i=0;i<e.length;)e[i]&&(this[i]=e[i].item),i++;for(;i<this.length;)delete this[i++]}return this});
@@ -33,22 +33,33 @@ CreateMethodProperty(Array.prototype, "sort", function sort(compareFn) {
33
33
  // if compareFn exists, sort the array, breaking sorting ties by using the
34
34
  // items' original index position.
35
35
 
36
+ var index;
37
+
36
38
  // Keep track of the items starting index position.
37
- var that = Array.prototype.map.call(this, function(item, index) {
38
- return { item: item, index: index };
39
- });
39
+ var that = [];
40
+ for (index = 0; index < this.length; index++) {
41
+ if (index in this) {
42
+ that.push({ item: this[index], index: index });
43
+ }
44
+ }
40
45
  origSort.call(that, function(a, b) {
41
- var compareResult = compareFn.call(undefined, a.item, b.item);
46
+ // this implementation is based on https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.array.sort.js#L69-L76
47
+ if (b.item === undefined) return -1;
48
+ if (a.item === undefined) return 1;
49
+ var compareResult = +(compareFn.call(undefined, a.item, b.item)) || 0;
42
50
  return compareResult === 0 ? a.index - b.index : compareResult;
43
51
  });
44
52
  // update the original object (`this`) with the new position for the items
45
53
  // which were moved.
46
- for (var a in that) {
47
- if (Object.prototype.hasOwnProperty.call(that, a)) {
48
- if (that[a].item !== this[a]) {
49
- this[a] = that[a].item;
50
- }
54
+ index = 0;
55
+ while (index < that.length) {
56
+ if (that[index]) {
57
+ this[index] = that[index].item;
51
58
  }
59
+ index++;
60
+ }
61
+ while (index < this.length) {
62
+ delete this[index++];
52
63
  }
53
64
  }
54
65
 
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.Get","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToObject","_ESAbstract.ToString"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.toreversed","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toReversed","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"toReversed\"in Array.prototype\n","baseDir":"Array/prototype/toReversed","hasTests":true,"isTestable":true,"isPublic":true,"size":234}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"toReversed",function r(){for(var e=ToObject(this),t=LengthOfArrayLike(e),o=ArrayCreate(t),a=0;a<t;){var n=ToString(t-a-1),y=ToString(a),i=Get(e,n);CreateDataPropertyOrThrow(o,y,i),a+=1}return o});
@@ -0,0 +1,29 @@
1
+
2
+ // Array.prototype.toReversed
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, Get, LengthOfArrayLike, ToObject, ToString */
4
+ // 23.1.3.33 Array.prototype.toReversed ( )
5
+ CreateMethodProperty(Array.prototype, 'toReversed', function toReversed() {
6
+ // 1. Let O be ? ToObject(this value).
7
+ var O = ToObject(this);
8
+ // 2. Let len be ? LengthOfArrayLike(O).
9
+ var len = LengthOfArrayLike(O);
10
+ // 3. Let A be ? ArrayCreate(len).
11
+ var A = ArrayCreate(len);
12
+ // 4. Let k be 0.
13
+ var k = 0;
14
+ // 5. Repeat, while k < len,
15
+ while (k < len) {
16
+ // a. Let from be ! ToString(𝔽(len - k - 1)).
17
+ var from = ToString(len - k - 1);
18
+ // b. Let Pk be ! ToString(𝔽(k)).
19
+ var Pk = ToString(k);
20
+ // c. Let fromValue be ? Get(O, from).
21
+ var fromValue = Get(O, from);
22
+ // d. Perform ! CreateDataPropertyOrThrow(A, Pk, fromValue).
23
+ CreateDataPropertyOrThrow(A, Pk, fromValue);
24
+ // e. Set k to k + 1.
25
+ k = k + 1;
26
+ }
27
+ // 6. Return A.
28
+ return A;
29
+ });
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.IsCallable","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToObject","_ESAbstract.ToString"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.tosorted","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSorted","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"toSorted\"in Array.prototype\n","baseDir":"Array/prototype/toSorted","hasTests":true,"isTestable":true,"isPublic":true,"size":348}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"toSorted",function r(e){if(void 0!==e&&!1===IsCallable(e))throw new TypeError("The comparison function must be either a function or undefined");for(var t=ToObject(this),o=LengthOfArrayLike(t),a=ArrayCreate(o),n=0;n<o;)CreateDataPropertyOrThrow(a,ToString(n),t[n]),n+=1;return void 0!==e?a.sort(e):a.sort(),a});
@@ -0,0 +1,37 @@
1
+
2
+ // Array.prototype.toSorted
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, IsCallable, LengthOfArrayLike, ToObject, ToString */
4
+ // 23.1.3.34 Array.prototype.toSorted ( comparefn )
5
+ CreateMethodProperty(Array.prototype, 'toSorted', function toSorted(comparefn) {
6
+ // 1. If comparefn is not undefined and IsCallable(comparefn) is false, throw a TypeError exception.
7
+ if (comparefn !== undefined && IsCallable(comparefn) === false) {
8
+ throw new TypeError(
9
+ "The comparison function must be either a function or undefined"
10
+ );
11
+ }
12
+ // 2. Let O be ? ToObject(this value).
13
+ var O = ToObject(this);
14
+ // 3. Let len be ? LengthOfArrayLike(O).
15
+ var len = LengthOfArrayLike(O);
16
+ // 4. Let A be ? ArrayCreate(len).
17
+ var A = ArrayCreate(len);
18
+
19
+ // 7. Let j be 0.
20
+ var j = 0;
21
+ // 8. Repeat, while j < len,
22
+ while (j < len) {
23
+ // a. Perform ! CreateDataPropertyOrThrow(A, ! ToString(𝔽(j)), sortedList[j]).
24
+ CreateDataPropertyOrThrow(A, ToString(j), O[j]);
25
+ // b. Set j to j + 1.
26
+ j = j + 1;
27
+ }
28
+
29
+ // Polyfill.io - These steps are handled by native `Array.prototype.sort`, below
30
+ // 5. Let SortCompare be a new Abstract Closure with parameters (x, y) that captures comparefn and performs the following steps when called:
31
+ // a. Return ? CompareArrayElements(x, y, comparefn).
32
+ // 6. Let sortedList be ? SortIndexedProperties(O, len, SortCompare, read-through-holes).
33
+ comparefn !== undefined ? A.sort(comparefn) : A.sort();
34
+
35
+ // 9. Return A.
36
+ return A;
37
+ });
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.Get","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToIntegerOrInfinity","_ESAbstract.ToObject","_ESAbstract.ToString","Number.MAX_SAFE_INTEGER"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.tospliced","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSpliced","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"toSpliced\"in Array.prototype\n","baseDir":"Array/prototype/toSpliced","hasTests":true,"isTestable":true,"isPublic":true,"size":791}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"toSpliced",function r(e,t){var a,o=ToObject(this),n=LengthOfArrayLike(o),i=ToIntegerOrInfinity(e);a=i===-1/0?0:i<0?Math.max(n+i,0):Math.min(i,n);var h,y=arguments.length>2?Array.prototype.slice.call(arguments,2):[],g=y.length;if(0===arguments.length)h=0;else if(1===arguments.length)h=n-a;else{var T=ToIntegerOrInfinity(t);h=Math.min(Math.max(0,T),n-a)}var f=n+g-h;if(f>Number.MAX_SAFE_INTEGER)throw new TypeError("Length exceeded the maximum array length");for(var l=ArrayCreate(f),p=0,c=a+h;p<a;){var m=ToString(p),v=Get(o,m);CreateDataPropertyOrThrow(l,m,v),p+=1}for(y.forEach(function(r){var e=ToString(p);CreateDataPropertyOrThrow(l,e,r),p+=1});p<f;){var O=ToString(p),A=ToString(c),M=Get(o,A);CreateDataPropertyOrThrow(l,O,M),p+=1,c+=1}return l});
@@ -0,0 +1,96 @@
1
+
2
+ // Array.prototype.toSpliced
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, Get, LengthOfArrayLike, ToIntegerOrInfinity, ToObject, ToString */
4
+ // 23.1.3.35 Array.prototype.toSpliced ( start, skipCount, ...items )
5
+ CreateMethodProperty(Array.prototype, 'toSpliced', function toSpliced(start, skipCount) {
6
+ // 1. Let O be ? ToObject(this value).
7
+ var O = ToObject(this);
8
+ // 2. Let len be ? LengthOfArrayLike(O).
9
+ var len = LengthOfArrayLike(O);
10
+ // 3. Let relativeStart be ? ToIntegerOrInfinity(start).
11
+ var relativeStart = ToIntegerOrInfinity(start);
12
+
13
+ var actualStart;
14
+ // 4. If relativeStart is -∞, let actualStart be 0.
15
+ if (relativeStart === -Infinity) {
16
+ actualStart = 0
17
+ }
18
+ // 5. Else if relativeStart < 0, let actualStart be max(len + relativeStart, 0).
19
+ else if (relativeStart < 0) {
20
+ actualStart = Math.max(len + relativeStart, 0);
21
+ }
22
+ // 6. Else, let actualStart be min(relativeStart, len).
23
+ else {
24
+ actualStart = Math.min(relativeStart, len);
25
+ }
26
+
27
+ // 7. Let insertCount be the number of elements in items.
28
+ var items = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : [];
29
+ var insertCount = items.length;
30
+
31
+ var actualSkipCount;
32
+ // 8. If start is not present, then
33
+ if (arguments.length === 0) {
34
+ // a. Let actualSkipCount be 0.
35
+ actualSkipCount = 0;
36
+ }
37
+ // 9. Else if skipCount is not present, then
38
+ else if (arguments.length === 1) {
39
+ // a. Let actualSkipCount be len - actualStart.
40
+ actualSkipCount = len - actualStart;
41
+ }
42
+ // 10. Else,
43
+ else {
44
+ // a. Let sc be ? ToIntegerOrInfinity(skipCount).
45
+ var sc = ToIntegerOrInfinity(skipCount);
46
+ // b. Let actualSkipCount be the result of clamping sc between 0 and len - actualStart.
47
+ actualSkipCount = Math.min(Math.max(0, sc), len - actualStart);
48
+ }
49
+
50
+ // 11. Let newLen be len + insertCount - actualSkipCount.
51
+ var newLen = len + insertCount - actualSkipCount;
52
+ // 12. If newLen > 253 - 1, throw a TypeError exception.
53
+ if (newLen > Number.MAX_SAFE_INTEGER) {
54
+ throw new TypeError('Length exceeded the maximum array length');
55
+ }
56
+ // 13. Let A be ? ArrayCreate(newLen).
57
+ var A = ArrayCreate(newLen);
58
+ // 14. Let i be 0.
59
+ var i = 0;
60
+ // 15. Let r be actualStart + actualSkipCount.
61
+ var r = actualStart + actualSkipCount;
62
+ // 16. Repeat, while i < actualStart,
63
+ while (i < actualStart) {
64
+ // a. Let Pi be ! ToString(𝔽(i)).
65
+ var Pi = ToString(i);
66
+ // b. Let iValue be ? Get(O, Pi).
67
+ var iValue = Get(O, Pi);
68
+ // c. Perform ! CreateDataPropertyOrThrow(A, Pi, iValue).
69
+ CreateDataPropertyOrThrow(A, Pi, iValue);
70
+ // d. Set i to i + 1.
71
+ i = i + 1;
72
+ }
73
+ // 17. For each element E of items, do
74
+ items.forEach(function (E) {
75
+ var Pi = ToString(i);
76
+ CreateDataPropertyOrThrow(A, Pi, E);
77
+ i = i + 1;
78
+ });
79
+ // 18. Repeat, while i < newLen,
80
+ while (i < newLen) {
81
+ // a. Let Pi be ! ToString(𝔽(i)).
82
+ var Pi2 = ToString(i);
83
+ // b. Let from be ! ToString(𝔽(r)).
84
+ var from = ToString(r);
85
+ // c. Let fromValue be ? Get(O, from).
86
+ var fromValue = Get(O, from);
87
+ // d. Perform ! CreateDataPropertyOrThrow(A, Pi, fromValue).
88
+ CreateDataPropertyOrThrow(A, Pi2, fromValue);
89
+ // e. Set i to i + 1.
90
+ i = i + 1;
91
+ // f. Set r to r + 1.
92
+ r = r + 1;
93
+ }
94
+ // 19. Return A.
95
+ return A;
96
+ });
@@ -0,0 +1 @@
1
+ {"aliases":["es2023"],"dependencies":["_ESAbstract.ArrayCreate","_ESAbstract.CreateDataPropertyOrThrow","_ESAbstract.CreateMethodProperty","_ESAbstract.Get","_ESAbstract.LengthOfArrayLike","_ESAbstract.ToIntegerOrInfinity","_ESAbstract.ToObject","_ESAbstract.ToString","Function.prototype.name"],"license":"MIT","spec":"https://tc39.es/ecma262/#sec-array.prototype.with","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/with","browsers":{"android":"*","bb":"*","chrome":"<110","edge":"*","edge_mob":"*","firefox":"*","firefox_mob":"*","ie":"*","ie_mob":"*","opera":"<96","op_mob":"<74","op_mini":"*","safari":"<16.3","ios_saf":"<16.3","samsung_mob":"*"},"detectSource":"\"with\"in Array.prototype\n","baseDir":"Array/prototype/with","hasTests":true,"isTestable":true,"isPublic":true,"size":552}
@@ -0,0 +1 @@
1
+ CreateMethodProperty(Array.prototype,"with",function r(e,t){var n=ToObject(this),a=LengthOfArrayLike(n),o=ToIntegerOrInfinity(e),i=o>=0?o:a+o;if(i>=a||i<0)throw new RangeError("Invalid index");for(var y=ArrayCreate(a),f=0;f<a;){var u=ToString(f),c=f===i?t:Get(n,u);CreateDataPropertyOrThrow(y,u,c),f+=1}return y}),function(){(function(){var r=function(){};try{return Object.defineProperty(r,"name",{value:"test"}),!0}catch(r){return!1}})()&&Object.defineProperty(Array.prototype.with,"name",{value:"with",writable:!1,enumerable:!1,configurable:!0})}();
@@ -0,0 +1,60 @@
1
+
2
+ // Array.prototype.with
3
+ /* global ArrayCreate, CreateDataPropertyOrThrow, CreateMethodProperty, Get, LengthOfArrayLike, ToIntegerOrInfinity, ToObject, ToString */
4
+ // 23.1.3.39 Array.prototype.with ( index, value )
5
+ CreateMethodProperty(Array.prototype, 'with', function With(index, value) {
6
+ // 1. Let O be ? ToObject(this value).
7
+ var O = ToObject(this);
8
+ // 2. Let len be ? LengthOfArrayLike(O).
9
+ var len = LengthOfArrayLike(O);
10
+ // 3. Let relativeIndex be ? ToIntegerOrInfinity(index).
11
+ var relativeIndex = ToIntegerOrInfinity(index);
12
+ // 4. If relativeIndex ≥ 0, let actualIndex be relativeIndex.
13
+ // 5. Else, let actualIndex be len + relativeIndex.
14
+ var actualIndex = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
15
+ // 6. If actualIndex ≥ len or actualIndex < 0, throw a RangeError exception.
16
+ if (actualIndex >= len || actualIndex < 0) {
17
+ throw new RangeError('Invalid index');
18
+ }
19
+ // 7. Let A be ? ArrayCreate(len).
20
+ var A = ArrayCreate(len);
21
+ // 8. Let k be 0.
22
+ var k = 0;
23
+ // 9. Repeat, while k < len,
24
+ while (k < len) {
25
+ // a. Let Pk be ! ToString(𝔽(k)).
26
+ var Pk = ToString(k);
27
+ // b. If k is actualIndex, let fromValue be value.
28
+ // c. Else, let fromValue be ? Get(O, Pk).
29
+ var fromValue = k === actualIndex ? value : Get(O, Pk);
30
+ // d. Perform ! CreateDataPropertyOrThrow(A, Pk, fromValue).
31
+ CreateDataPropertyOrThrow(A, Pk, fromValue);
32
+ // e. Set k to k + 1.
33
+ k = k + 1;
34
+ }
35
+ // 10. Return A.
36
+ return A;
37
+ });
38
+
39
+ (function () {
40
+ var supportsDefiningFunctionName = (function () {
41
+ var fn = function () {};
42
+ try {
43
+ Object.defineProperty(fn, 'name', {
44
+ value: 'test'
45
+ });
46
+ return true;
47
+ } catch (ignore) {
48
+ return false;
49
+ }
50
+ })();
51
+
52
+ if (supportsDefiningFunctionName) {
53
+ Object.defineProperty(Array.prototype.with, 'name', {
54
+ value: 'with',
55
+ writable: false,
56
+ enumerable: false,
57
+ configurable: true
58
+ })
59
+ }
60
+ })();
@@ -0,0 +1 @@
1
+ {"aliases":["default-3.4","default-3.5","default-3.6","default"],"dependencies":["DocumentFragment.prototype.append"],"docs":"https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment/replaceChildren","spec":"http://dom.spec.whatwg.org/#dom-parentnode-replacechildren","browsers":{"android":"*","bb":"*","chrome":"<86","edge":"*","edge_mob":"*","firefox":"<78","firefox_mob":"<79","ie":"*","ie_mob":"*","opera":"<72","op_mob":"<61","op_mini":"*","safari":"<14.0","ios_saf":"<14.0","samsung_mob":"<14.0"},"detectSource":"\"DocumentFragment\"in self&&\"replaceChildren\"in DocumentFragment.prototype\n","baseDir":"DocumentFragment/prototype/replaceChildren","hasTests":true,"isTestable":true,"isPublic":true,"size":244}
@@ -0,0 +1 @@
1
+ !function(t){function e(){for(;this.firstChild;)this.removeChild(this.firstChild);this.append.apply(this,arguments)}document.createDocumentFragment().constructor.prototype.replaceChildren=e,t.DocumentFragment.prototype.replaceChildren=e}(self);
@@ -0,0 +1,15 @@
1
+
2
+ // DocumentFragment.prototype.replaceChildren
3
+ (function (global) {
4
+ function replaceChildren() {
5
+ while (this.firstChild) {
6
+ this.removeChild(this.firstChild);
7
+ }
8
+ this.append.apply(this, arguments);
9
+ }
10
+
11
+ var fragmentProto = document.createDocumentFragment().constructor.prototype;
12
+ fragmentProto.replaceChildren = replaceChildren;
13
+
14
+ global.DocumentFragment.prototype.replaceChildren = replaceChildren;
15
+ }(self));
@@ -0,0 +1 @@
1
+ {"aliases":["default-3.4","default-3.5","default-3.6","default"],"dependencies":["Element.prototype.append"],"docs":"https://developer.mozilla.org/en-US/docs/Web/API/Element/replaceChildren","spec":"http://dom.spec.whatwg.org/#dom-parentnode-replacechildren","browsers":{"android":"*","bb":"*","chrome":"<86","edge":"*","edge_mob":"*","firefox":"<78","firefox_mob":"<79","ie":"*","ie_mob":"*","opera":"<72","op_mob":"<61","op_mini":"*","safari":"<14.0","ios_saf":"<14.0","samsung_mob":"<14.0"},"detectSource":"\"Element\"in self&&\"replaceChildren\"in Element.prototype\n","baseDir":"Element/prototype/replaceChildren","hasTests":true,"isTestable":true,"isPublic":true,"size":173}
@@ -0,0 +1 @@
1
+ Document.prototype.replaceChildren=Element.prototype.replaceChildren=function e(){for(;this.firstChild;)this.removeChild(this.firstChild);this.append.apply(this,arguments)};
@@ -0,0 +1,8 @@
1
+
2
+ // Element.prototype.replaceChildren
3
+ Document.prototype.replaceChildren = Element.prototype.replaceChildren = function replaceChildren() {
4
+ while (this.firstChild) {
5
+ this.removeChild(this.firstChild);
6
+ }
7
+ this.append.apply(this, arguments);
8
+ };
@@ -0,0 +1 @@
1
+ {"aliases":[],"dependencies":["Node.prototype.isConnected"],"spec":"https://html.spec.whatwg.org/multipage/forms.html#dom-form-requestsubmit-dev","docs":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/requestSubmit","license":"MIT","browsers":{"android":"*","chrome":"<76","edge":"*","edge_mob":"*","firefox":"<75","firefox_mob":"<79","ie":"*","ie_mob":"*","opera":"<63","op_mob":"<64","op_mini":"*","safari":"<16.0","ios_saf":"<16.0","samsung_mob":"<12.0"},"detectSource":"\"function\"==typeof HTMLFormElement.prototype.requestSubmit\n","baseDir":"HTMLFormElement/prototype/requestSubmit","hasTests":true,"isTestable":true,"isPublic":true,"size":1180}
@@ -0,0 +1 @@
1
+ !function(e){function t(e,t){if(!(e instanceof HTMLElement))throw new TypeError("Failed to execute 'requestSubmit' on 'HTMLFormElement': parameter 1 is not of type 'HTMLElement'.");if(e.form!==t||e.hasAttribute("form")&&(""===e.getAttribute("form")||e.getAttribute("form")!==t.id))throw i?new DOMException("Failed to execute 'requestSubmit' on 'HTMLFormElement': The specified element is not owned by this form element.","NotFoundError"):new Error("NotFoundError: Failed to execute 'requestSubmit' on 'HTMLFormElement': The specified element is not owned by this form element.");if(("submit"!==e.type||"BUTTON"!==e.tagName)&&!("submit"===e.type&&"INPUT"===e.tagName||"image"===e.type&&"INPUT"===e.tagName))throw new TypeError("Failed to execute 'requestSubmit' on 'HTMLFormElement': The specified element is not a submit button.")}if("function"!=typeof e.requestSubmit){var i=!1;try{new DOMException,i=!0}catch(e){}e.requestSubmit=function e(){if(this.isConnected){var i=arguments[0];if(i&&t(i,this),i&&!i.disabled)return void i.click();i=document.createElement("input"),i.type="submit",i.hidden=!0,this.appendChild(i),i.click(),this.removeChild(i)}}}}(HTMLFormElement.prototype);
@@ -0,0 +1,116 @@
1
+
2
+ // HTMLFormElement.prototype.requestSubmit
3
+ /**
4
+ * The MIT License (MIT)
5
+ *
6
+ * Copyright (c) 2019 Javan Makhmali <javan@javan.us>
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ * of this software and associated documentation files (the "Software"), to deal
10
+ * in the Software without restriction, including without limitation the rights
11
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the Software is
13
+ * furnished to do so, subject to the following conditions:
14
+ *
15
+ * The above copyright notice and this permission notice shall be included in
16
+ * all copies or substantial portions of the Software.
17
+ *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ * THE SOFTWARE.
25
+ *
26
+ * @link https://github.com/javan/form-request-submit-polyfill
27
+ */
28
+
29
+ /* globals */
30
+ // eslint-disable-next-line no-unused-vars
31
+
32
+ (function (prototype) {
33
+ // Place all polyfill code within this function.
34
+ if (typeof prototype.requestSubmit === "function") return;
35
+
36
+ var supportsDomExceptionConstructor = false;
37
+ try {
38
+ new DOMException();
39
+ supportsDomExceptionConstructor = true;
40
+ } catch (e) { /* noop */ }
41
+
42
+ prototype.requestSubmit = function requestSubmit() {
43
+ if (!this.isConnected) {
44
+ return;
45
+ }
46
+
47
+ var submitter = arguments[0];
48
+ if (submitter) {
49
+ validateSubmitter(submitter, this);
50
+ }
51
+
52
+ if (submitter && !submitter.disabled) {
53
+ submitter.click();
54
+ return;
55
+ }
56
+
57
+ submitter = document.createElement("input");
58
+ submitter.type = "submit";
59
+ submitter.hidden = true;
60
+ this.appendChild(submitter);
61
+ submitter.click();
62
+ this.removeChild(submitter);
63
+ };
64
+
65
+ function validateSubmitter(submitter, form) {
66
+ if (!(submitter instanceof HTMLElement)) {
67
+ throw new TypeError(
68
+ "Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
69
+ "parameter 1 is not of type 'HTMLElement'" +
70
+ "."
71
+ );
72
+ }
73
+
74
+ if (
75
+ (submitter.form !== form) ||
76
+ // Older browsers have incorrect implementations for the "form" attribute
77
+ (submitter.hasAttribute('form') && (
78
+ submitter.getAttribute('form') === '' ||
79
+ submitter.getAttribute('form') !== form.id
80
+ ))
81
+ ) {
82
+ if (supportsDomExceptionConstructor) {
83
+ throw new DOMException(
84
+ "Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
85
+ "The specified element is not owned by this form element" +
86
+ ".",
87
+ "NotFoundError"
88
+ );
89
+ } else {
90
+ throw new Error(
91
+ "NotFoundError: Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
92
+ "The specified element is not owned by this form element" +
93
+ "."
94
+ );
95
+ }
96
+ }
97
+
98
+ if (submitter.type === "submit" && submitter.tagName === "BUTTON") {
99
+ return;
100
+ }
101
+
102
+ if (submitter.type === "submit" && submitter.tagName === "INPUT") {
103
+ return;
104
+ }
105
+
106
+ if (submitter.type === "image" && submitter.tagName === "INPUT") {
107
+ return;
108
+ }
109
+
110
+ throw new TypeError(
111
+ "Failed to execute 'requestSubmit' on 'HTMLFormElement': " +
112
+ "The specified element is not a submit button" +
113
+ "."
114
+ );
115
+ }
116
+ })(HTMLFormElement.prototype);