diff --git a/features.txt b/features.txt
index 7760b62586e562aabe8b73175383c9e301349d80..92cce17a1b4aac24cbc67169bbf5d0d57ec067bc 100644
--- a/features.txt
+++ b/features.txt
@@ -95,8 +95,8 @@ Reflect.construct
 Reflect.set
 Reflect.setPrototypeOf
 Set
-String#endsWith
-String#includes
+String.prototype.endsWith
+String.prototype.includes
 super
 Symbol
 Symbol.hasInstance
diff --git a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js
index 6a9ee85854c6622c792a407dd1465a79266c1593..6e53352e0355a7a47756b18b3f1e4ce2a5a9d622 100644
--- a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js
+++ b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js
@@ -4,7 +4,7 @@
 /*---
 author: Ryan Lewis
 description: endsWith should return false when called on 'word' and passed 'r'.
-features: [String#endsWith]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue('word'.endsWith('r'), false, '"word".endsWith("r")');
diff --git a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js
index 0b34a7b410e7adc5420b0a140e750070c6e5a379..ebaf927ab160b93a9453b4bc5d88498344b4566b 100644
--- a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js
+++ b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     endsWith should return false when called on 'word' and passed 'd',
     with an endPosition of 3.
-features: [String#endsWith]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue('word'.endsWith('d', 3), false, '"word".endsWith("d", 3)');
diff --git a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js
index 854bc56eedf069924f0b1667dae2c3c56baffe75..723a31b247a8055b15eb53a1ad852e7b97bf9ee6 100644
--- a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js
+++ b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     endsWith should return true when called on 'word' and passed 'd'
     and with no endPosition (defaults to 4).
-features: [String#endsWith]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue('word'.endsWith('d'), true, '"word".endsWith("d")');
diff --git a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js
index 23aba85a2ffc5c2dd210a989a68deec32b7abbdd..1be5a3d0310c80f82ff550f0effcb6a572f19deb 100644
--- a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js
+++ b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     endsWith should return true when called on 'word' and passed 'd'
     and with an endPosition of 4.
-features: [String#endsWith]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue('word'.endsWith('d', 4), true, '"word".endsWith("d", 4)');
diff --git a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js
index 0b8ceae787a6e8556f1fe9448b75f140594b0972..d75db6457bee3c672e7fa5245fa84c397b44a9f8 100644
--- a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js
+++ b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     endsWith should return true when called on 'word' and passed 'd'
     and with an endPosition of 25.
-features: [String#endsWith]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue('word'.endsWith('d', 25), true, '"word".endsWith("d", 25)');
diff --git a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js
index 5318ce43fddd924bf70a3b89e4ecd13ee48bca9d..a4d741dbc0aa0069fdeb07d99b48689b73df2f73 100644
--- a/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js
+++ b/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     endsWith should return true when called on 'word' and passed 'r',
     with an endPosition of 3.
-features: [String#endsWith]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue('word'.endsWith('r', 3), true, '"word".endsWith("r", 3)');
diff --git a/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js b/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js
index 59f53ebb83fdf42a72b90acf10bb2e4a019a8a77..ac73c7683f1a7d01dad076a1c074f0cb7a37dd24 100644
--- a/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js
+++ b/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js
@@ -19,6 +19,7 @@ info: >
   is the same as the full element sequence of searchStr, return true.
   17. Otherwise, return false.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/endsWith/endsWith.js b/test/built-ins/String/prototype/endsWith/endsWith.js
index 323b4df1cb7f141e329e8b3264076df4559f5190..1a20d2e2b62ca4a1ebb040d1d4ee94f82a563b62 100644
--- a/test/built-ins/String/prototype/endsWith/endsWith.js
+++ b/test/built-ins/String/prototype/endsWith/endsWith.js
@@ -9,6 +9,7 @@ info: >
 
   17 ECMAScript Standard Built-in Objects
 includes: [propertyHelper.js]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/endsWith/length.js b/test/built-ins/String/prototype/endsWith/length.js
index 94d1bacdba87c7812b695994c5e630074a2370b9..5f6f07809249823f6eb7cb0267673e42b26c86cd 100644
--- a/test/built-ins/String/prototype/endsWith/length.js
+++ b/test/built-ins/String/prototype/endsWith/length.js
@@ -10,6 +10,7 @@ info: >
   The length property of the endsWith method is 1.
 
 includes: [propertyHelper.js]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/endsWith/name.js b/test/built-ins/String/prototype/endsWith/name.js
index 6dd674f0df78ce1b95f021f24dcdccbf99c32ff4..a98cace09e44f7210c385934b2bf8ed16e7da20f 100644
--- a/test/built-ins/String/prototype/endsWith/name.js
+++ b/test/built-ins/String/prototype/endsWith/name.js
@@ -10,6 +10,7 @@ info: >
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js
index 6c0ad476ac0056f22137f72671d62325ec9140ad..8aaea6eec011ded5e725fd5e26bfca0f69210437 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js
@@ -12,7 +12,7 @@ info: >
   ToInteger(endPosition).
   11. ReturnIfAbrupt(pos).
   ...
-features: [Symbol]
+features: [Symbol, String.prototype.endsWith]
 ---*/
 
 var position = Symbol();
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js
index e7916d9241d9328544dd4baa49f984682b1299ae..36926de67695e3601defd6103d8aa43360b393ce 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js
@@ -12,6 +12,7 @@ info: >
   ToInteger(endPosition).
   11. ReturnIfAbrupt(pos).
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var position = {
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js
index 568316cd8c3f27865bee7d68556bf366c0e7fffb..1bdfd5539bebbed235f6b93d24804cb41c444fb3 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js
@@ -11,7 +11,7 @@ info: >
   7. Let searchStr be ToString(searchString).
   8. ReturnIfAbrupt(searchStr).
   ...
-features: [Symbol]
+features: [Symbol, String.prototype.endsWith]
 ---*/
 
 var s = Symbol();
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js
index ea46e0404c90a755f764f55af490cce9e378533e..43b9c893d5c0a9b9334acb99a9a1d7add557bb5d 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js
@@ -16,7 +16,7 @@ info: >
 
   2. Let isRegExp be Get(argument, @@match).
   3. ReturnIfAbrupt(isRegExp).
-features: [Symbol.match]
+features: [Symbol.match, String.prototype.endsWith]
 ---*/
 
 var obj = {};
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js
index 9497b73de7b5306f53fab000f1b64083d1cb6163..c5b50d730094f58396a235b96fe70eaf645fb1d4 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js
@@ -11,6 +11,7 @@ info: >
   7. Let searchStr be ToString(searchString).
   8. ReturnIfAbrupt(searchStr).
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var obj = {
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js
index 8e17dc66ab59b3818727447edb4668f2dc4ec456..b2fe3ba6ad1efa7c23d64d8aad866d0a3bac37a9 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js
@@ -11,7 +11,7 @@ info: >
   2. Let S be ToString(O).
   3. ReturnIfAbrupt(S).
   ...
-features: [Symbol]
+features: [Symbol, String.prototype.endsWith]
 ---*/
 
 var s = Symbol('');
diff --git a/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js b/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js
index 4e1d6aa8d2dea74cf7f3a6bfcf3584a57ea5526e..692f696ff901880aebb731df27452a76af65da91 100644
--- a/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js
+++ b/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js
@@ -10,6 +10,7 @@ info: >
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
   3. ReturnIfAbrupt(S).
+features: [String.prototype.endsWith]
 ---*/
 
 var o = {
diff --git a/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js b/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js
index c3c139ec1c12af75497016e66ce9e3ec99503164..aa2651179f318b53184ef4599b50508361e30f10 100644
--- a/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js
+++ b/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js
@@ -19,6 +19,7 @@ info: >
   ...
 
   Note: (min(max(pos, 0), len) - searchString.length) < 0;
+features: [String.prototype.endsWith]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js b/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js
index 2188726e2e0aea80e021e6bbdd3d0be4e22ee14a..39f4b00eed4faca79e3e7185edc5d014dba34294 100644
--- a/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js
+++ b/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js
@@ -18,6 +18,7 @@ info: >
   16. If the sequence of elements of S starting at start of length searchLength
   is the same as the full element sequence of searchStr, return true.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var str = 'The future is cool!';
@@ -45,4 +46,4 @@ assert(
 assert(
   str.endsWith('', -Infinity),
   'str.endsWith("", -Infinity) returns true'
-);
\ No newline at end of file
+);
diff --git a/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js b/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js
index cae2e6f013c18d14df6848f0ba21f3112b7d4e30..99c3b76df17411692e1c03803eeca21519735f53 100644
--- a/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js
+++ b/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js
@@ -19,6 +19,7 @@ info: >
   16. If the sequence of elements of S starting at start of length searchLength
   is the same as the full element sequence of searchStr, return true.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js b/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js
index 731a01b1c9d6d5ea0459a90f95f9578610f5e16c..0e38063e278aa9e629013f0501018db5174f1175 100644
--- a/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js
+++ b/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js
@@ -18,6 +18,7 @@ info: >
   16. If the sequence of elements of S starting at start of length searchLength
   is the same as the full element sequence of searchStr, return true.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js b/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js
index 4079b99f76f656677c959a1d12c57df645818202..94998d4192b34d487a96363de33dccd5e7be7598 100644
--- a/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js
+++ b/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js
@@ -12,6 +12,7 @@ info: >
   5. ReturnIfAbrupt(isRegExp).
   6. If isRegExp is true, throw a TypeError exception.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var searchString = /./;
diff --git a/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js b/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js
index 60a6cc0762e5ca1442ef4f0a0d219a20189ecc36..598c4244b36748e5100ec1c3c8f7d26995100c7e 100644
--- a/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js
+++ b/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js
@@ -19,6 +19,7 @@ info: >
   is the same as the full element sequence of searchStr, return true.
   17. Otherwise, return false.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js b/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js
index ad0a93c19dabcdf019d2e1989af6925ca8799af3..97d2343cbe40bb7e4b88ca1235c4ab1a33d19d4d 100644
--- a/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js
+++ b/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js
@@ -19,6 +19,7 @@ info: >
   is the same as the full element sequence of searchStr, return true.
   17. Otherwise, return false.
   ...
+features: [String.prototype.endsWith]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/endsWith/this-is-null-throws.js b/test/built-ins/String/prototype/endsWith/this-is-null-throws.js
index 71449e96718796cac88cec976afb95e5fcf85cb4..45711b57fb4a9090848944558bafd31886e087f4 100644
--- a/test/built-ins/String/prototype/endsWith/this-is-null-throws.js
+++ b/test/built-ins/String/prototype/endsWith/this-is-null-throws.js
@@ -9,6 +9,7 @@ info: >
 
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
+features: [String.prototype.endsWith]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js b/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js
index 3e174b05b7a858a42b35eda13a195acd9262d4da..57dbabe7d04b1f2f10863bd4e09f19d1460f6bbd 100644
--- a/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js
+++ b/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js
@@ -9,6 +9,7 @@ info: >
 
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
+features: [String.prototype.endsWith]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js b/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js
index b98ebe9f55111e2b5642e375dd7e531874a17ed8..9eada7bdc575f03afff53a4137ce5af27f8f3962 100644
--- a/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js
+++ b/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     String should return false if a location is passed that is
     greather than the length of the string.
-features: [String#includes]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue('word'.includes('w', 5), false, '"word".includes("w", 5)');
diff --git a/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js b/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js
index c787bb81aaa28775acbc43441c03b530b53164e1..1b8a9fadf9cd7a75db21338c079ea457b834b92e 100644
--- a/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js
+++ b/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     String should return false if a letter is not found in the word
     starting from the passed location.
-features: [String#includes]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue('word'.includes('o', 3), false, '"word".includes("o", 3)');
diff --git a/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js b/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js
index 5e468b27f681522a3636b77de370d93867bb51b2..601bd60ff7d99aa6d5f50a689974dc85a6c0f5f5 100644
--- a/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js
+++ b/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js
@@ -4,7 +4,7 @@
 /*---
 author: Ryan Lewis
 description: String should return false if a letter is not found in the word.
-features: [String#includes]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue('word'.includes('a', 0), false, '"word".includes("a", 0)');
diff --git a/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js b/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js
index cf71285b5724f91fb5bf41b6d3379ab5ea226527..4f8d79d440d7d383f5d573fc03aa13cc78a0b8d9 100644
--- a/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js
+++ b/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     String should return true when called on 'word' and passed 'w' and
     the location 0.
-features: [String#includes]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue('word'.includes('w', 0), true, '"word".includes("w", 0)');
diff --git a/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js b/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js
index 3128b0100f948d614984df95103f20fe9dc1a119..465398c1fb2c2fd934e6611534a28e38b52c5766 100644
--- a/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js
+++ b/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js
@@ -6,7 +6,7 @@ author: Ryan Lewis
 description: >
     String should return true when called on 'word' and passed 'w' and
     with no location (defaults to 0).
-features: [String#includes]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue('word'.includes('w'), true, '"word".includes("w")');
diff --git a/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js b/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js
index 999c8fc88b5fc65fd17f9a71381c6663f43c3b03..6ee93b480cb9d898976e038e345f0da66e639471 100644
--- a/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js
+++ b/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js
@@ -4,7 +4,6 @@
 /*---
 author: Ryan Lewis
 description: String should have the property length with size of 1.
-features: [String#includes]
+features: [String.prototype.includes]
 ---*/
-
 assert.sameValue('word'.includes.length, 1, '"word".includes.length');
diff --git a/test/built-ins/String/prototype/includes/coerced-values-of-position.js b/test/built-ins/String/prototype/includes/coerced-values-of-position.js
index 90f6a19aab23aecbda7e06014409bfd8efabbde5..65f49f7310359e468c32f1417f74bf602c907b32 100644
--- a/test/built-ins/String/prototype/includes/coerced-values-of-position.js
+++ b/test/built-ins/String/prototype/includes/coerced-values-of-position.js
@@ -20,6 +20,7 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/includes/includes.js b/test/built-ins/String/prototype/includes/includes.js
index 54315a919fbbad80dbfdba5d8ea3b1791ac2944f..a392f960e8502ef94b1ff2a211b79d2757d22532 100644
--- a/test/built-ins/String/prototype/includes/includes.js
+++ b/test/built-ins/String/prototype/includes/includes.js
@@ -9,6 +9,7 @@ info: >
 
   17 ECMAScript Standard Built-in Objects
 includes: [propertyHelper.js]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/includes/length.js b/test/built-ins/String/prototype/includes/length.js
index 7b627a78cfda06a0e1b9387f19cfcd1217c4ad2e..747b1d9fcd59bc077f724abe6094a43060138035 100644
--- a/test/built-ins/String/prototype/includes/length.js
+++ b/test/built-ins/String/prototype/includes/length.js
@@ -10,6 +10,7 @@ info: >
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/includes/name.js b/test/built-ins/String/prototype/includes/name.js
index 58e815d0ad7b15d3f53ac740e869101250843142..6c8c978ec37801f109a56ace413887b8ea0d093d 100644
--- a/test/built-ins/String/prototype/includes/name.js
+++ b/test/built-ins/String/prototype/includes/name.js
@@ -10,6 +10,7 @@ info: >
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [String.prototype.includes]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js b/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js
index fc60a16e31d931b1f7b1eb21663851f6be6a5096..e6bde3b8d2c3472c4857674795f3edcd01b32f82 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js
@@ -13,6 +13,7 @@ info: >
   10. ReturnIfAbrupt(pos).
   ...
 features: [Symbol]
+features: [String.prototype.includes]
 ---*/
 
 var position = Symbol();
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-position.js b/test/built-ins/String/prototype/includes/return-abrupt-from-position.js
index 33f497000e3d5e91c20a35203cdf3cce99211ca0..3aab3fee5d5782115b183027f0ea97c9e9bf8be5 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-position.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-position.js
@@ -12,6 +12,7 @@ info: >
   produces the value 0).
   10. ReturnIfAbrupt(pos).
   ...
+features: [String.prototype.includes]
 ---*/
 
 var position = {
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js b/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js
index 2b21ffda44f99b586cec848b107103c5c2fa28f0..c84347b2b0f8172c346fe428aadb7aed7842bd80 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js
@@ -11,7 +11,7 @@ info: >
   7. Let searchStr be ToString(searchString).
   8. ReturnIfAbrupt(searchStr).
   ...
-features: [Symbol]
+features: [Symbol, String.prototype.includes]
 ---*/
 
 var s = Symbol();
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js b/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js
index 0df2c2d0a6e4b121488d0353b6473cd08c0415f9..89097ccc8565e413abda555505d0cc66e394f17f 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js
@@ -16,7 +16,7 @@ info: >
 
   2. Let isRegExp be Get(argument, @@match).
   3. ReturnIfAbrupt(isRegExp).
-features: [Symbol.match]
+features: [Symbol.match, String.prototype.includes]
 ---*/
 
 var obj = {};
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js b/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js
index 3ac10db28a3a2fa84920d8e2cea1df4f1ceb7677..9816b92379645b315fc47ae82eb8bcaa682a1b39 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js
@@ -11,6 +11,7 @@ info: >
   7. Let searchStr be ToString(searchString).
   8. ReturnIfAbrupt(searchStr).
   ...
+features: [String.prototype.includes]
 ---*/
 
 var obj = {
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js b/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js
index b773808767f5c25e25e69c220c14d66641a304ee..e2f16f6e7fc2f47e8effa2ef23cae4b4dbdadb15 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js
@@ -10,7 +10,7 @@ info: >
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
   3. ReturnIfAbrupt(S).
-features: [Symbol]
+features: [Symbol, String.prototype.includes]
 ---*/
 
 var s = Symbol('');
diff --git a/test/built-ins/String/prototype/includes/return-abrupt-from-this.js b/test/built-ins/String/prototype/includes/return-abrupt-from-this.js
index 612dd799c3a74f7abb746f29ee74f0174a8c3137..dfb0487da039d9e90d6ce77e3a19a6d8b150b898 100644
--- a/test/built-ins/String/prototype/includes/return-abrupt-from-this.js
+++ b/test/built-ins/String/prototype/includes/return-abrupt-from-this.js
@@ -10,8 +10,8 @@ info: >
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
   3. ReturnIfAbrupt(S).
+features: [String.prototype.includes]
 ---*/
-
 var o = {
   toString: function() {
     throw new Test262Error();
diff --git a/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js b/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js
index f3405807c0e4eee8b64af6202e8cb6380aa085b3..ed1d49fe88dfd53abbcfce13808e870cc6b94241 100644
--- a/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js
+++ b/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js
@@ -17,6 +17,7 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js b/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js
index d8b56e9ddf4f97fbdb22f595a116f24ebca00073..be37d4b5ff3644643f31dd78e008d3d82ae58ec8 100644
--- a/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js
+++ b/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js
@@ -17,6 +17,7 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
 
 var str = 'The future is cool!';
@@ -34,4 +35,4 @@ assert(
 assert(
   str.includes('', Infinity),
   'str.includes("", Infinity) returns true'
-);
\ No newline at end of file
+);
diff --git a/test/built-ins/String/prototype/includes/searchstring-found-with-position.js b/test/built-ins/String/prototype/includes/searchstring-found-with-position.js
index 979e1407bb31621de61d265820ed0590ff36eb8a..39a7ee4d890b2a730eb991c03e778131dcae59e1 100644
--- a/test/built-ins/String/prototype/includes/searchstring-found-with-position.js
+++ b/test/built-ins/String/prototype/includes/searchstring-found-with-position.js
@@ -18,6 +18,7 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/includes/searchstring-found-without-position.js b/test/built-ins/String/prototype/includes/searchstring-found-without-position.js
index f12e6f4650666cc2b338dc28e9d6ea7cf17af157..8a5fc3f118aada346ada22560d539968eb65074c 100644
--- a/test/built-ins/String/prototype/includes/searchstring-found-without-position.js
+++ b/test/built-ins/String/prototype/includes/searchstring-found-without-position.js
@@ -17,6 +17,7 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
 
 var str = 'The future is cool!';
diff --git a/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js b/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js
index dc4db6d8feb43657b2194c383e354674b8cf1471..568fdfc63b302c5261f30e6e6e455a0572004f7b 100644
--- a/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js
+++ b/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js
@@ -12,8 +12,8 @@ info: >
   5. ReturnIfAbrupt(isRegExp).
   6. If isRegExp is true, throw a TypeError exception.
   ...
+features: [String.prototype.includes]
 ---*/
-
 var searchString = /./;
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js b/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js
index 6df6e5379d8d0fa5bd20d59783d02800873532e3..e2f37ed89a4b7601fd56f225350eff72cabf9298 100644
--- a/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js
+++ b/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js
@@ -17,8 +17,8 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
-
 var str = 'The future is cool!';
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js b/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js
index f6286a6c07cebbfe563539f79f0794768428d305..1d067b6d986a33581be319849d1048008080180b 100644
--- a/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js
+++ b/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js
@@ -17,8 +17,8 @@ info: >
   at index j of searchStr, return true; but if there is no such integer k,
   return false.
   ...
+features: [String.prototype.includes]
 ---*/
-
 var str = 'The future is cool!';
 
 assert.sameValue(
diff --git a/test/built-ins/String/prototype/includes/this-is-null-throws.js b/test/built-ins/String/prototype/includes/this-is-null-throws.js
index 5a1bd93c8beadc0bc3219c7219e375812746feaf..22750487f9019b1d63bb4f659f245e5b219ba332 100644
--- a/test/built-ins/String/prototype/includes/this-is-null-throws.js
+++ b/test/built-ins/String/prototype/includes/this-is-null-throws.js
@@ -9,8 +9,8 @@ info: >
 
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
+features: [String.prototype.includes]
 ---*/
-
 assert.throws(TypeError, function() {
   String.prototype.includes.call(null, '');
 });
diff --git a/test/built-ins/String/prototype/includes/this-is-undefined-throws.js b/test/built-ins/String/prototype/includes/this-is-undefined-throws.js
index 5ec1e02dcde4772c1881ed5f5b388e6aa8f403a8..325c3904c28514da37a985ca35a60d5cad17a643 100644
--- a/test/built-ins/String/prototype/includes/this-is-undefined-throws.js
+++ b/test/built-ins/String/prototype/includes/this-is-undefined-throws.js
@@ -9,8 +9,8 @@ info: >
 
   1. Let O be RequireObjectCoercible(this value).
   2. Let S be ToString(O).
+features: [String.prototype.includes]
 ---*/
-
 assert.throws(TypeError, function() {
   String.prototype.includes.call(undefined, '');
 });