diff --git a/README.md b/README.md
index 37cfa6f..7744b7b 100644
--- a/README.md
+++ b/README.md
@@ -95,12 +95,13 @@ From the command line, the feature sets are provided to the `-f` or `--feature`
|`firefox`|This feature set represents Firefox 54+[1](#note-1)|
|`ie11`|This feature set represents Internet Explorer 11|
|`ios`|This feature set represents iOS 10.3+[2](#note-2)|
-|`node`|This feature set represents Node.js 7+[2](#note-2)|
+|`node`|This feature set represents Node.js 6/7[2](#note-2)|
+|`node8`|This feature set represents Node.js 8+|
|`safari`|This feature set represents Safari 10+[2](#note-2)|
[1]: Many of these features were present in earlier versions, but the specific version was the GA release at the time of writing when this was validated.
-[2]: At least on of the features was not present in previous releases.
+[2]: At least one of the features was not present in previous releases.
An example of generating a build that _hardwires_ features for Microsoft Edge and Chrome, you would use the following on the command line:
diff --git a/src/features/android.json b/src/features/android.json
index 6bd2c8b..d69194b 100644
--- a/src/features/android.json
+++ b/src/features/android.json
@@ -1,45 +1,35 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": true,
+ "es2017-string": true,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
+ "es7-array": true,
"fetch": true,
"filereader": true,
"float32array": true,
"formdata": true,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": true,
"postmessage": true,
"raf": true,
- "setimmediate": true,
+ "setimmediate": false,
"xhr": true,
"xhr2": true
}
diff --git a/src/features/chrome.json b/src/features/chrome.json
index 6bd2c8b..d69194b 100644
--- a/src/features/chrome.json
+++ b/src/features/chrome.json
@@ -1,45 +1,35 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": true,
+ "es2017-string": true,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
+ "es7-array": true,
"fetch": true,
"filereader": true,
"float32array": true,
"formdata": true,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": true,
"postmessage": true,
"raf": true,
- "setimmediate": true,
+ "setimmediate": false,
"xhr": true,
"xhr2": true
}
diff --git a/src/features/edge.json b/src/features/edge.json
index 6bd2c8b..b799d75 100644
--- a/src/features/edge.json
+++ b/src/features/edge.json
@@ -1,40 +1,30 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": true,
+ "es2017-string": true,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
+ "es7-array": true,
"fetch": true,
"filereader": true,
"float32array": true,
"formdata": true,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": true,
"postmessage": true,
diff --git a/src/features/firefox.json b/src/features/firefox.json
index 6bd2c8b..d69194b 100644
--- a/src/features/firefox.json
+++ b/src/features/firefox.json
@@ -1,45 +1,35 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": true,
+ "es2017-string": true,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
+ "es7-array": true,
"fetch": true,
"filereader": true,
"float32array": true,
"formdata": true,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": true,
"postmessage": true,
"raf": true,
- "setimmediate": true,
+ "setimmediate": false,
"xhr": true,
"xhr2": true
}
diff --git a/src/features/ie11.json b/src/features/ie11.json
index 446655e..6b25fac 100644
--- a/src/features/ie11.json
+++ b/src/features/ie11.json
@@ -1,40 +1,30 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": false,
+ "es2017-object": false,
+ "es2017-string": false,
+ "es6-array": false,
"es6-array-fill": false,
- "es6-array-find": false,
- "es6-array-findindex": false,
- "es6-array-from": false,
- "es6-array-of": false,
- "es6-object-assign": false,
"es6-map": false,
- "es6-math-acosh": false,
- "es6-math-clz32": false,
+ "es6-math": false,
"es6-math-imul": false,
+ "es6-object": false,
"es6-promise": false,
"es6-set": false,
- "es6-string-codepointat": false,
- "es6-string-endswith": false,
- "es6-string-fromcodepoint": false,
- "es6-string-includes": false,
- "es6-string-normalize": false,
- "es6-string-padstart": false,
- "es6-string-padend": false,
+ "es6-string": false,
"es6-string-raw": false,
- "es6-string-repeat": false,
- "es6-string-startswith": false,
"es6-symbol": false,
"es6-weakmap": false,
- "es7-array-includes": false,
+ "es7-array": false,
"fetch": false,
"filereader": true,
"float32array": true,
- "formdata": true,
+ "formdata": false,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": false,
"postmessage": true,
diff --git a/src/features/ios.json b/src/features/ios.json
index 6bd2c8b..92e0d46 100644
--- a/src/features/ios.json
+++ b/src/features/ios.json
@@ -1,45 +1,35 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": false,
+ "es2017-string": false,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
+ "es7-array": false,
"fetch": true,
"filereader": true,
"float32array": true,
"formdata": true,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": true,
"postmessage": true,
"raf": true,
- "setimmediate": true,
+ "setimmediate": false,
"xhr": true,
"xhr2": true
}
diff --git a/src/features/node.json b/src/features/node.json
index 3abcab4..d84e5ed 100644
--- a/src/features/node.json
+++ b/src/features/node.json
@@ -1,44 +1,34 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": false,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": false,
+ "es2017-string": false,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
- "fetch": true,
- "filereader": true,
+ "es7-array": true,
+ "fetch": false,
+ "filereader": false,
"float32array": true,
- "formdata": true,
+ "formdata": false,
"host-node": true,
"host-browser": false,
+ "microtasks": true,
"node-buffer": true,
"object-assign": true,
- "postmessage": true,
- "raf": true,
+ "postmessage": false,
+ "raf": false,
"setimmediate": true,
"xhr": false,
"xhr2": false
diff --git a/src/features/node8.json b/src/features/node8.json
new file mode 100644
index 0000000..71a4e32
--- /dev/null
+++ b/src/features/node8.json
@@ -0,0 +1,35 @@
+{
+ "arraybuffer": true,
+ "blob": true,
+ "dom-mutationobserver": false,
+ "es-observable": false,
+ "es2017-object": true,
+ "es2017-string": true,
+ "es6-array": true,
+ "es6-array-fill": true,
+ "es6-map": true,
+ "es6-math": true,
+ "es6-math-imul": true,
+ "es6-object": true,
+ "es6-promise": true,
+ "es6-set": true,
+ "es6-string": true,
+ "es6-string-raw": true,
+ "es6-symbol": true,
+ "es6-weakmap": true,
+ "es7-array": true,
+ "fetch": false,
+ "filereader": false,
+ "float32array": true,
+ "formdata": false,
+ "host-node": true,
+ "host-browser": false,
+ "microtasks": true,
+ "node-buffer": true,
+ "object-assign": true,
+ "postmessage": false,
+ "raf": false,
+ "setimmediate": true,
+ "xhr": false,
+ "xhr2": false
+}
diff --git a/src/features/safari.json b/src/features/safari.json
index 6bd2c8b..01b9ea3 100644
--- a/src/features/safari.json
+++ b/src/features/safari.json
@@ -1,45 +1,35 @@
{
"arraybuffer": true,
"blob": true,
- "microtasks": true,
+ "dom-mutationobserver": true,
"es-observable": false,
- "es6-array-copywithin": true,
+ "es2017-object": false,
+ "es2017-string": true,
+ "es6-array": true,
"es6-array-fill": true,
- "es6-array-find": true,
- "es6-array-findindex": true,
- "es6-array-from": true,
- "es6-array-of": true,
- "es6-object-assign": true,
"es6-map": true,
- "es6-math-acosh": true,
- "es6-math-clz32": true,
+ "es6-math": true,
"es6-math-imul": true,
+ "es6-object": true,
"es6-promise": true,
"es6-set": true,
- "es6-string-codepointat": true,
- "es6-string-endswith": true,
- "es6-string-fromcodepoint": true,
- "es6-string-includes": true,
- "es6-string-normalize": true,
- "es6-string-padstart": true,
- "es6-string-padend": true,
+ "es6-string": true,
"es6-string-raw": true,
- "es6-string-repeat": true,
- "es6-string-startswith": true,
"es6-symbol": true,
"es6-weakmap": true,
- "es7-array-includes": true,
+ "es7-array": true,
"fetch": true,
"filereader": true,
"float32array": true,
"formdata": true,
"host-node": false,
"host-browser": true,
+ "microtasks": true,
"node-buffer": false,
"object-assign": true,
"postmessage": true,
"raf": true,
- "setimmediate": true,
+ "setimmediate": false,
"xhr": true,
"xhr2": true
}
diff --git a/src/main.ts b/src/main.ts
index fe6638d..22c2a1c 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -209,7 +209,7 @@ const command: Command = {
options('f', {
alias: 'features',
- describe: 'Features sets to optimize the build with\n\nValid values are: android, chrome, edge, firefox, ie11, ios, node, safari',
+ describe: 'Features sets to optimize the build with\n\nValid values are: android, chrome, edge, firefox, ie11, ios, node, node8, safari',
type: 'array'
});
},
diff --git a/tests/unit/getFeatures.ts b/tests/unit/getFeatures.ts
index ef71854..670e8de 100644
--- a/tests/unit/getFeatures.ts
+++ b/tests/unit/getFeatures.ts
@@ -14,40 +14,30 @@ registerSuite({
assert.deepEqual(getFeatures({ features: 'ie11' }), {
'arraybuffer': true,
'blob': true,
- 'microtasks': true,
+ 'dom-mutationobserver': true,
'es-observable': false,
- 'es6-array-copywithin': false,
+ 'es2017-object': false,
+ 'es2017-string': false,
+ 'es6-array': false,
'es6-array-fill': false,
- 'es6-array-find': false,
- 'es6-array-findindex': false,
- 'es6-array-from': false,
- 'es6-array-of': false,
- 'es6-object-assign': false,
'es6-map': false,
- 'es6-math-acosh': false,
- 'es6-math-clz32': false,
+ 'es6-math': false,
'es6-math-imul': false,
+ 'es6-object': false,
'es6-promise': false,
'es6-set': false,
- 'es6-string-codepointat': false,
- 'es6-string-endswith': false,
- 'es6-string-fromcodepoint': false,
- 'es6-string-includes': false,
- 'es6-string-normalize': false,
- 'es6-string-padstart': false,
- 'es6-string-padend': false,
+ 'es6-string': false,
'es6-string-raw': false,
- 'es6-string-repeat': false,
- 'es6-string-startswith': false,
'es6-symbol': false,
'es6-weakmap': false,
- 'es7-array-includes': false,
+ 'es7-array': false,
'fetch': false,
'filereader': true,
'float32array': true,
- 'formdata': true,
+ 'formdata': false,
'host-node': false,
'host-browser': true,
+ 'microtasks': true,
'node-buffer': false,
'object-assign': false,
'postmessage': true,
@@ -62,13 +52,13 @@ registerSuite({
assert.deepEqual(getFeatures({ features: [ 'ie11', 'node' ] }), {
arraybuffer: true,
blob: true,
+ 'es2017-object': false,
+ 'es2017-string': false,
'es-observable': false,
- filereader: true,
+ fetch: false,
float32array: true,
- formdata: true,
+ formdata: false,
microtasks: true,
- postmessage: true,
- raf: true,
setimmediate: true
});
},