ember-source 6.0.0-alpha.9 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blueprints/component/index.js +8 -71
- package/blueprints/component-class/index.js +8 -47
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +4200 -6302
- package/dist/ember-testing.js +1 -1
- package/dist/ember.debug.js +4040 -8666
- package/dist/ember.prod.js +3734 -8082
- package/dist/packages/@glimmer/debug/index.js +87 -1440
- package/dist/packages/@glimmer/destroyable/index.js +59 -113
- package/dist/packages/@glimmer/encoder/index.js +4 -11
- package/dist/packages/@glimmer/global-context/index.js +40 -144
- package/dist/packages/@glimmer/manager/index.js +191 -312
- package/dist/packages/@glimmer/node/index.js +34 -76
- package/dist/packages/@glimmer/opcode-compiler/index.js +794 -1422
- package/dist/packages/@glimmer/owner/index.js +2 -1
- package/dist/packages/@glimmer/program/index.js +105 -192
- package/dist/packages/@glimmer/reference/index.js +109 -237
- package/dist/packages/@glimmer/runtime/index.js +1939 -3715
- package/dist/packages/@glimmer/util/index.js +114 -241
- package/dist/packages/@glimmer/validator/index.js +203 -409
- package/dist/packages/@glimmer/vm/index.js +163 -176
- package/dist/packages/@glimmer/wire-format/index.js +70 -71
- package/dist/packages/ember/version.js +1 -1
- package/docs/data.json +1 -1
- package/lib/browsers.js +40 -68
- package/package.json +21 -24
|
@@ -1,148 +1,148 @@
|
|
|
1
1
|
const ContentType = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
};
|
|
2
|
+
Component: 0,
|
|
3
|
+
Helper: 1,
|
|
4
|
+
String: 2,
|
|
5
|
+
Empty: 3,
|
|
6
|
+
SafeString: 4,
|
|
7
|
+
Fragment: 5,
|
|
8
|
+
Node: 6,
|
|
9
|
+
Other: 8
|
|
10
|
+
},
|
|
11
|
+
CurriedTypes = {
|
|
12
|
+
Component: 0,
|
|
13
|
+
Helper: 1,
|
|
14
|
+
Modifier: 2
|
|
15
|
+
},
|
|
16
|
+
InternalComponentCapabilities = {
|
|
17
|
+
Empty: 0,
|
|
18
|
+
dynamicLayout: 1,
|
|
19
|
+
dynamicTag: 2,
|
|
20
|
+
prepareArgs: 4,
|
|
21
|
+
createArgs: 8,
|
|
22
|
+
attributeHook: 16,
|
|
23
|
+
elementHook: 32,
|
|
24
|
+
dynamicScope: 64,
|
|
25
|
+
createCaller: 128,
|
|
26
|
+
updateHook: 256,
|
|
27
|
+
createInstance: 512,
|
|
28
|
+
wrapped: 1024,
|
|
29
|
+
willDestroy: 2048,
|
|
30
|
+
hasSubOwner: 4096
|
|
31
|
+
},
|
|
32
|
+
ARG_SHIFT = 8,
|
|
33
|
+
MAX_SIZE = 2147483647,
|
|
34
|
+
TYPE_SIZE = 255,
|
|
35
|
+
TYPE_MASK = 255,
|
|
36
|
+
OPERAND_LEN_MASK = 768,
|
|
37
|
+
MACHINE_MASK = 1024,
|
|
38
|
+
MachineOp = {
|
|
39
|
+
PushFrame: 0,
|
|
40
|
+
PopFrame: 1,
|
|
41
|
+
InvokeVirtual: 2,
|
|
42
|
+
InvokeStatic: 3,
|
|
43
|
+
Jump: 4,
|
|
44
|
+
Return: 5,
|
|
45
|
+
ReturnTo: 6,
|
|
46
|
+
Size: 7
|
|
47
|
+
},
|
|
48
|
+
Op = {
|
|
49
|
+
Helper: 16,
|
|
50
|
+
SetNamedVariables: 17,
|
|
51
|
+
SetBlocks: 18,
|
|
52
|
+
SetVariable: 19,
|
|
53
|
+
SetBlock: 20,
|
|
54
|
+
GetVariable: 21,
|
|
55
|
+
GetProperty: 22,
|
|
56
|
+
GetBlock: 23,
|
|
57
|
+
SpreadBlock: 24,
|
|
58
|
+
HasBlock: 25,
|
|
59
|
+
HasBlockParams: 26,
|
|
60
|
+
Concat: 27,
|
|
61
|
+
Constant: 28,
|
|
62
|
+
ConstantReference: 29,
|
|
63
|
+
Primitive: 30,
|
|
64
|
+
PrimitiveReference: 31,
|
|
65
|
+
ReifyU32: 32,
|
|
66
|
+
Dup: 33,
|
|
67
|
+
Pop: 34,
|
|
68
|
+
Load: 35,
|
|
69
|
+
Fetch: 36,
|
|
70
|
+
RootScope: 37,
|
|
71
|
+
VirtualRootScope: 38,
|
|
72
|
+
ChildScope: 39,
|
|
73
|
+
PopScope: 40,
|
|
74
|
+
Text: 41,
|
|
75
|
+
Comment: 42,
|
|
76
|
+
AppendHTML: 43,
|
|
77
|
+
AppendSafeHTML: 44,
|
|
78
|
+
AppendDocumentFragment: 45,
|
|
79
|
+
AppendNode: 46,
|
|
80
|
+
AppendText: 47,
|
|
81
|
+
OpenElement: 48,
|
|
82
|
+
OpenDynamicElement: 49,
|
|
83
|
+
PushRemoteElement: 50,
|
|
84
|
+
StaticAttr: 51,
|
|
85
|
+
DynamicAttr: 52,
|
|
86
|
+
ComponentAttr: 53,
|
|
87
|
+
FlushElement: 54,
|
|
88
|
+
CloseElement: 55,
|
|
89
|
+
PopRemoteElement: 56,
|
|
90
|
+
Modifier: 57,
|
|
91
|
+
BindDynamicScope: 58,
|
|
92
|
+
PushDynamicScope: 59,
|
|
93
|
+
PopDynamicScope: 60,
|
|
94
|
+
CompileBlock: 61,
|
|
95
|
+
PushBlockScope: 62,
|
|
96
|
+
PushSymbolTable: 63,
|
|
97
|
+
InvokeYield: 64,
|
|
98
|
+
JumpIf: 65,
|
|
99
|
+
JumpUnless: 66,
|
|
100
|
+
JumpEq: 67,
|
|
101
|
+
AssertSame: 68,
|
|
102
|
+
Enter: 69,
|
|
103
|
+
Exit: 70,
|
|
104
|
+
ToBoolean: 71,
|
|
105
|
+
EnterList: 72,
|
|
106
|
+
ExitList: 73,
|
|
107
|
+
Iterate: 74,
|
|
108
|
+
Main: 75,
|
|
109
|
+
ContentType: 76,
|
|
110
|
+
Curry: 77,
|
|
111
|
+
PushComponentDefinition: 78,
|
|
112
|
+
PushDynamicComponentInstance: 79,
|
|
113
|
+
ResolveDynamicComponent: 80,
|
|
114
|
+
ResolveCurriedComponent: 81,
|
|
115
|
+
PushArgs: 82,
|
|
116
|
+
PushEmptyArgs: 83,
|
|
117
|
+
PopArgs: 84,
|
|
118
|
+
PrepareArgs: 85,
|
|
119
|
+
CaptureArgs: 86,
|
|
120
|
+
CreateComponent: 87,
|
|
121
|
+
RegisterComponentDestructor: 88,
|
|
122
|
+
PutComponentOperations: 89,
|
|
123
|
+
GetComponentSelf: 90,
|
|
124
|
+
GetComponentTagName: 91,
|
|
125
|
+
GetComponentLayout: 92,
|
|
126
|
+
BindEvalScope: 93,
|
|
127
|
+
SetupForEval: 94,
|
|
128
|
+
PopulateLayout: 95,
|
|
129
|
+
InvokeComponentLayout: 96,
|
|
130
|
+
BeginComponentTransaction: 97,
|
|
131
|
+
CommitComponentTransaction: 98,
|
|
132
|
+
DidCreateElement: 99,
|
|
133
|
+
DidRenderLayout: 100,
|
|
134
|
+
ResolveMaybeLocal: 102,
|
|
135
|
+
Debugger: 103,
|
|
136
|
+
Size: 104,
|
|
137
|
+
StaticComponentAttr: 105,
|
|
138
|
+
DynamicContentType: 106,
|
|
139
|
+
DynamicHelper: 107,
|
|
140
|
+
DynamicModifier: 108,
|
|
141
|
+
IfInline: 109,
|
|
142
|
+
Not: 110,
|
|
143
|
+
GetDynamicVar: 111,
|
|
144
|
+
Log: 112
|
|
145
|
+
};
|
|
146
146
|
function isMachineOp(value) {
|
|
147
147
|
return value >= 0 && value <= 15;
|
|
148
148
|
}
|
|
@@ -156,42 +156,29 @@ function isOp(value) {
|
|
|
156
156
|
* For the most part, these follows MIPS naming conventions, however the
|
|
157
157
|
* register numbers are different.
|
|
158
158
|
*/
|
|
159
|
-
|
|
160
159
|
// $0 or $pc (program counter): pointer into `program` for the next insturction; -1 means exit
|
|
161
|
-
const $pc = 0
|
|
160
|
+
const $pc = 0,
|
|
161
|
+
$ra = 1,
|
|
162
|
+
$fp = 2,
|
|
163
|
+
$sp = 3,
|
|
164
|
+
$s0 = 4,
|
|
165
|
+
$s1 = 5,
|
|
166
|
+
$t0 = 6,
|
|
167
|
+
$t1 = 7,
|
|
168
|
+
$v0 = 8;
|
|
169
|
+
|
|
162
170
|
// $1 or $ra (return address): pointer into `program` for the return
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const $fp = 2;
|
|
166
|
-
// $3 or $sp (stack pointer): pointer into the `evalStack` for the top of the stack
|
|
167
|
-
const $sp = 3;
|
|
168
|
-
// $4-$5 or $s0-$s1 (saved): callee saved general-purpose registers
|
|
169
|
-
const $s0 = 4;
|
|
170
|
-
const $s1 = 5;
|
|
171
|
-
// $6-$7 or $t0-$t1 (temporaries): caller saved general-purpose registers
|
|
172
|
-
const $t0 = 6;
|
|
173
|
-
const $t1 = 7;
|
|
174
|
-
// $8 or $v0 (return value)
|
|
175
|
-
const $v0 = 8;
|
|
176
|
-
let MachineRegister = /*#__PURE__*/function (MachineRegister) {
|
|
177
|
-
MachineRegister[MachineRegister["pc"] = 0] = "pc";
|
|
178
|
-
MachineRegister[MachineRegister["ra"] = 1] = "ra";
|
|
179
|
-
MachineRegister[MachineRegister["fp"] = 2] = "fp";
|
|
180
|
-
MachineRegister[MachineRegister["sp"] = 3] = "sp";
|
|
181
|
-
return MachineRegister;
|
|
171
|
+
let MachineRegister = function (MachineRegister) {
|
|
172
|
+
return MachineRegister[MachineRegister.pc = 0] = "pc", MachineRegister[MachineRegister.ra = 1] = "ra", MachineRegister[MachineRegister.fp = 2] = "fp", MachineRegister[MachineRegister.sp = 3] = "sp", MachineRegister;
|
|
182
173
|
}({});
|
|
183
174
|
function isLowLevelRegister(register) {
|
|
184
|
-
return register <=
|
|
175
|
+
return register <= 3;
|
|
185
176
|
}
|
|
186
|
-
let SavedRegister =
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
TemporaryRegister[TemporaryRegister["t0"] = 6] = "t0";
|
|
193
|
-
TemporaryRegister[TemporaryRegister["t1"] = 7] = "t1";
|
|
194
|
-
return TemporaryRegister;
|
|
195
|
-
}({});
|
|
177
|
+
let SavedRegister = function (SavedRegister) {
|
|
178
|
+
return SavedRegister[SavedRegister.s0 = 4] = "s0", SavedRegister[SavedRegister.s1 = 5] = "s1", SavedRegister;
|
|
179
|
+
}({}),
|
|
180
|
+
TemporaryRegister = function (TemporaryRegister) {
|
|
181
|
+
return TemporaryRegister[TemporaryRegister.t0 = 6] = "t0", TemporaryRegister[TemporaryRegister.t1 = 7] = "t1", TemporaryRegister;
|
|
182
|
+
}({});
|
|
196
183
|
|
|
197
184
|
export { $fp, $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0, ARG_SHIFT, ContentType, CurriedTypes as CurriedType, CurriedTypes, InternalComponentCapabilities, InternalComponentCapabilities as InternalComponentCapability, MACHINE_MASK, MAX_SIZE, MachineOp, MachineRegister, OPERAND_LEN_MASK, Op, SavedRegister, TYPE_MASK, TYPE_SIZE, TemporaryRegister, isLowLevelRegister, isMachineOp, isOp };
|
|
@@ -1,76 +1,75 @@
|
|
|
1
1
|
const opcodes = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
2
|
+
Append: 1,
|
|
3
|
+
TrustingAppend: 2,
|
|
4
|
+
Comment: 3,
|
|
5
|
+
Modifier: 4,
|
|
6
|
+
StrictModifier: 5,
|
|
7
|
+
Block: 6,
|
|
8
|
+
StrictBlock: 7,
|
|
9
|
+
Component: 8,
|
|
10
|
+
OpenElement: 10,
|
|
11
|
+
OpenElementWithSplat: 11,
|
|
12
|
+
FlushElement: 12,
|
|
13
|
+
CloseElement: 13,
|
|
14
|
+
StaticAttr: 14,
|
|
15
|
+
DynamicAttr: 15,
|
|
16
|
+
ComponentAttr: 16,
|
|
17
|
+
AttrSplat: 17,
|
|
18
|
+
Yield: 18,
|
|
19
|
+
DynamicArg: 20,
|
|
20
|
+
StaticArg: 21,
|
|
21
|
+
TrustingDynamicAttr: 22,
|
|
22
|
+
TrustingComponentAttr: 23,
|
|
23
|
+
StaticComponentAttr: 24,
|
|
24
|
+
Debugger: 26,
|
|
25
|
+
Undefined: 27,
|
|
26
|
+
Call: 28,
|
|
27
|
+
Concat: 29,
|
|
28
|
+
GetSymbol: 30,
|
|
29
|
+
GetLexicalSymbol: 32,
|
|
30
|
+
GetStrictKeyword: 31,
|
|
31
|
+
GetFreeAsComponentOrHelperHead: 35,
|
|
32
|
+
GetFreeAsHelperHead: 37,
|
|
33
|
+
GetFreeAsModifierHead: 38,
|
|
34
|
+
GetFreeAsComponentHead: 39,
|
|
35
|
+
InElement: 40,
|
|
36
|
+
If: 41,
|
|
37
|
+
Each: 42,
|
|
38
|
+
Let: 44,
|
|
39
|
+
WithDynamicVars: 45,
|
|
40
|
+
InvokeComponent: 46,
|
|
41
|
+
HasBlock: 48,
|
|
42
|
+
HasBlockParams: 49,
|
|
43
|
+
Curry: 50,
|
|
44
|
+
Not: 51,
|
|
45
|
+
IfInline: 52,
|
|
46
|
+
GetDynamicVar: 53,
|
|
47
|
+
Log: 54
|
|
48
|
+
},
|
|
49
|
+
resolution = {
|
|
50
|
+
Strict: 0,
|
|
51
|
+
ResolveAsComponentOrHelperHead: 1,
|
|
52
|
+
ResolveAsHelperHead: 5,
|
|
53
|
+
ResolveAsModifierHead: 6,
|
|
54
|
+
ResolveAsComponentHead: 7
|
|
55
|
+
},
|
|
56
|
+
WellKnownAttrNames = {
|
|
57
|
+
class: 0,
|
|
58
|
+
id: 1,
|
|
59
|
+
value: 2,
|
|
60
|
+
name: 3,
|
|
61
|
+
type: 4,
|
|
62
|
+
style: 5,
|
|
63
|
+
href: 6
|
|
64
|
+
},
|
|
65
|
+
WellKnownTagNames = {
|
|
66
|
+
div: 0,
|
|
67
|
+
span: 1,
|
|
68
|
+
p: 2,
|
|
69
|
+
a: 3
|
|
70
|
+
};
|
|
49
71
|
|
|
50
72
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
51
|
-
|
|
52
|
-
const resolution = {
|
|
53
|
-
Strict: 0,
|
|
54
|
-
ResolveAsComponentOrHelperHead: 1,
|
|
55
|
-
ResolveAsHelperHead: 5,
|
|
56
|
-
ResolveAsModifierHead: 6,
|
|
57
|
-
ResolveAsComponentHead: 7
|
|
58
|
-
};
|
|
59
|
-
const WellKnownAttrNames = {
|
|
60
|
-
class: 0,
|
|
61
|
-
id: 1,
|
|
62
|
-
value: 2,
|
|
63
|
-
name: 3,
|
|
64
|
-
type: 4,
|
|
65
|
-
style: 5,
|
|
66
|
-
href: 6
|
|
67
|
-
};
|
|
68
|
-
const WellKnownTagNames = {
|
|
69
|
-
div: 0,
|
|
70
|
-
span: 1,
|
|
71
|
-
p: 2,
|
|
72
|
-
a: 3
|
|
73
|
-
};
|
|
74
73
|
function is(variant) {
|
|
75
74
|
return function (value) {
|
|
76
75
|
return Array.isArray(value) && value[0] === variant;
|
|
@@ -83,7 +82,7 @@ function isAttribute(val) {
|
|
|
83
82
|
return val[0] === opcodes.StaticAttr || val[0] === opcodes.DynamicAttr || val[0] === opcodes.TrustingDynamicAttr || val[0] === opcodes.ComponentAttr || val[0] === opcodes.StaticComponentAttr || val[0] === opcodes.TrustingComponentAttr || val[0] === opcodes.AttrSplat || val[0] === opcodes.Modifier;
|
|
84
83
|
}
|
|
85
84
|
function isStringLiteral(expr) {
|
|
86
|
-
return typeof expr
|
|
85
|
+
return "string" == typeof expr;
|
|
87
86
|
}
|
|
88
87
|
function getStringFromValue(expr) {
|
|
89
88
|
return expr;
|
package/docs/data.json
CHANGED
package/lib/browsers.js
CHANGED
|
@@ -1,75 +1,47 @@
|
|
|
1
1
|
module.exports = [
|
|
2
|
-
'Chrome >=
|
|
3
|
-
'Edge >=
|
|
4
|
-
'Firefox >=
|
|
5
|
-
'iOS >=
|
|
6
|
-
'Safari >=
|
|
7
|
-
'ChromeAndroid >=
|
|
8
|
-
'FirefoxAndroid >=
|
|
2
|
+
'Chrome >= 109',
|
|
3
|
+
'Edge >= 128',
|
|
4
|
+
'Firefox >= 115',
|
|
5
|
+
'iOS >= 15.6',
|
|
6
|
+
'Safari >= 15.6',
|
|
7
|
+
'ChromeAndroid >= 130',
|
|
8
|
+
'FirefoxAndroid >= 130',
|
|
9
9
|
];
|
|
10
10
|
|
|
11
11
|
/*
|
|
12
|
-
|
|
12
|
+
The above is generated via browserslist to comply with [RFC #685](https://rfcs.emberjs.com/id/0685-new-browser-support-policy)
|
|
13
|
+
and [RFC #984](https://rfcs.emberjs.com/id/0984-update-browser-support-policy) by running the following command:
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
chrome 111
|
|
18
|
-
chrome 110
|
|
19
|
-
chrome 109
|
|
20
|
-
chrome 108
|
|
21
|
-
chrome 107
|
|
22
|
-
chrome 106
|
|
23
|
-
chrome 105
|
|
24
|
-
chrome 104
|
|
25
|
-
chrome 103
|
|
26
|
-
edge 112
|
|
27
|
-
edge 111
|
|
28
|
-
edge 110
|
|
29
|
-
firefox 112
|
|
30
|
-
firefox 111
|
|
31
|
-
firefox 110
|
|
32
|
-
firefox 109
|
|
33
|
-
firefox 108
|
|
34
|
-
firefox 107
|
|
35
|
-
firefox 106
|
|
36
|
-
firefox 105
|
|
37
|
-
firefox 104
|
|
38
|
-
firefox 103
|
|
39
|
-
firefox 102
|
|
40
|
-
ios_saf 16.4
|
|
41
|
-
ios_saf 16.3
|
|
42
|
-
ios_saf 16.2
|
|
43
|
-
ios_saf 16.0
|
|
44
|
-
ios_saf 15.6
|
|
45
|
-
ios_saf 15.5
|
|
46
|
-
ios_saf 15.4
|
|
47
|
-
ios_saf 15.2-15.3
|
|
48
|
-
ios_saf 15.0-15.1
|
|
49
|
-
ios_saf 14.5-14.8
|
|
50
|
-
ios_saf 14.0-14.4
|
|
51
|
-
ios_saf 13.4-13.7
|
|
52
|
-
ios_saf 13.3
|
|
53
|
-
ios_saf 13.2
|
|
54
|
-
ios_saf 13.0-13.1
|
|
55
|
-
ios_saf 12.2-12.5
|
|
56
|
-
ios_saf 12.0-12.1
|
|
57
|
-
safari 16.4
|
|
58
|
-
safari 16.3
|
|
59
|
-
safari 16.2
|
|
60
|
-
safari 16.1
|
|
61
|
-
safari 16.0
|
|
62
|
-
safari 15.6
|
|
63
|
-
safari 15.5
|
|
64
|
-
safari 15.4
|
|
65
|
-
safari 15.2-15.3
|
|
66
|
-
safari 15.1
|
|
67
|
-
safari 15
|
|
68
|
-
safari 14.1
|
|
69
|
-
safari 14
|
|
70
|
-
safari 13.1
|
|
71
|
-
safari 13
|
|
72
|
-
safari 12.1
|
|
73
|
-
safari 12
|
|
15
|
+
`npx browserslist '>0.25%, Firefox ESR, last 1 Chrome version, last 1 Firefox version, last 1 Edge version, last 1 FirefoxAndroid version, last 1 ChromeAndroid version, not dead'`
|
|
16
|
+
|
|
17
|
+
And then filtering out unsupported browsers.
|
|
74
18
|
|
|
19
|
+
and_chr 130
|
|
20
|
+
and_ff 130
|
|
21
|
+
chrome 130
|
|
22
|
+
chrome 129
|
|
23
|
+
chrome 128
|
|
24
|
+
chrome 127
|
|
25
|
+
chrome 126
|
|
26
|
+
chrome 125
|
|
27
|
+
chrome 124
|
|
28
|
+
chrome 109
|
|
29
|
+
edge 130
|
|
30
|
+
edge 129
|
|
31
|
+
edge 128
|
|
32
|
+
firefox 132
|
|
33
|
+
firefox 130
|
|
34
|
+
firefox 129
|
|
35
|
+
firefox 128
|
|
36
|
+
firefox 115
|
|
37
|
+
ios_saf 18.0
|
|
38
|
+
ios_saf 17.6-17.7
|
|
39
|
+
ios_saf 17.5
|
|
40
|
+
ios_saf 17.4
|
|
41
|
+
ios_saf 16.6-16.7
|
|
42
|
+
ios_saf 16.1
|
|
43
|
+
ios_saf 15.6-15.8
|
|
44
|
+
safari 17.6
|
|
45
|
+
safari 17.5
|
|
46
|
+
safari 16.6
|
|
75
47
|
*/
|