| OLD | NEW |
| 1 # Copyright 2011 the V8 project authors. All rights reserved. | 1 # Copyright 2011 the V8 project authors. All rights reserved. |
| 2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
| 3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
| 4 # met: | 4 # met: |
| 5 # | 5 # |
| 6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
| 7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
| 8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
| 9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
| 10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 | 27 |
| 28 [ | 28 [ |
| 29 [ALWAYS, { | 29 [ALWAYS, { |
| 30 ############################### BUGS ################################### | 30 ############################### BUGS ################################### |
| 31 | 31 |
| 32 # BUG(v8:3455) | 32 # BUG(v8:3455) |
| 33 '11.2.3_b': [FAIL], | 33 'intl402/ch11/11.2/11.2.3_b': [FAIL], |
| 34 '12.2.3_b': [FAIL], | 34 'intl402/ch12/12.2/12.2.3_b': [FAIL], |
| 35 | 35 |
| 36 # Unicode canonicalization is not available with i18n turned off. | 36 # Unicode canonicalization is not available with i18n turned off. |
| 37 '15.5.4.9_CE': [['no_i18n', SKIP]], | 37 'ch15/15.5/15.5.4/15.5.4.9/15.5.4.9_CE': [['no_i18n', SKIP]], |
| 38 | 38 |
| 39 ###################### NEEDS INVESTIGATION ####################### | 39 ###################### NEEDS INVESTIGATION ####################### |
| 40 | 40 |
| 41 # Possibly same cause as S8.5_A2.1, below: floating-point tests. | 41 # Possibly same cause as S8.5_A2.1, below: floating-point tests. |
| 42 'S15.8.2.16_A7': [PASS, FAIL_OK], | 42 'ch15/15.8/15.8.2/15.8.2.16/S15.8.2.16_A7': [PASS, FAIL_OK], |
| 43 'S15.8.2.18_A7': [PASS, FAIL_OK], | 43 'ch15/15.8/15.8.2/15.8.2.18/S15.8.2.18_A7': [PASS, FAIL_OK], |
| 44 'S15.8.2.7_A7': [PASS, FAIL_OK], | 44 'ch15/15.8/15.8.2/15.8.2.7/S15.8.2.7_A7': [PASS, FAIL_OK], |
| 45 | 45 |
| 46 # This is an incompatibility between ES5 and V8 on enumerating | 46 # This is an incompatibility between ES5 and V8 on enumerating |
| 47 # shadowed elements in a for..in loop. | 47 # shadowed elements in a for..in loop. |
| 48 # https://code.google.com/p/v8/issues/detail?id=705 | 48 # https://code.google.com/p/v8/issues/detail?id=705 |
| 49 '12.6.4-2': [PASS, FAIL_OK], | 49 'ch12/12.6/12.6.4/12.6.4-2': [PASS, FAIL_OK], |
| 50 | 50 |
| 51 ###################### MISSING ES6 FEATURES ####################### | 51 ###################### MISSING ES6 FEATURES ####################### |
| 52 | 52 |
| 53 # Array.fill (currently requires --harmony-arrays) | 53 # Array.fill (currently requires --harmony-arrays) |
| 54 'S22.1.3.6_T1': [FAIL], | 54 'es6/ch22/22.1/22.1.3/S22.1.3.6_T1': [FAIL], |
| 55 | 55 |
| 56 # Array.find (currently requires --harmony-arrays) | 56 # Array.find (currently requires --harmony-arrays) |
| 57 'S22.1.2.3_T1': [FAIL], | 57 'es6/ch22/22.1/22.1.2/S22.1.2.3_T1': [FAIL], |
| 58 'S22.1.2.3_T2': [FAIL], | 58 'es6/ch22/22.1/22.1.2/S22.1.2.3_T2': [FAIL], |
| 59 'Array.prototype.find_empty-array-undefined': [FAIL], | 59 'es6/Array.prototype.find/Array.prototype.find_empty-array-undefined': [FAIL], |
| 60 'Array.prototype.find_length-property': [FAIL], | 60 'es6/Array.prototype.find/Array.prototype.find_length-property': [FAIL], |
| 61 'Array.prototype.find_modify-after-start': [FAIL], | 61 'es6/Array.prototype.find/Array.prototype.find_modify-after-start': [FAIL], |
| 62 'Array.prototype.find_non-returning-predicate': [FAIL], | 62 'es6/Array.prototype.find/Array.prototype.find_non-returning-predicate': [FAIL
], |
| 63 'Array.prototype.find_predicate-arguments': [FAIL], | 63 'es6/Array.prototype.find/Array.prototype.find_predicate-arguments': [FAIL], |
| 64 'Array.prototype.find_push-after-start': [FAIL], | 64 'es6/Array.prototype.find/Array.prototype.find_push-after-start': [FAIL], |
| 65 'Array.prototype.find_remove-after-start': [FAIL], | 65 'es6/Array.prototype.find/Array.prototype.find_remove-after-start': [FAIL], |
| 66 'Array.prototype.find_return-found-value': [FAIL], | 66 'es6/Array.prototype.find/Array.prototype.find_return-found-value': [FAIL], |
| 67 'Array.prototype.find_skip-empty': [FAIL], | 67 'es6/Array.prototype.find/Array.prototype.find_skip-empty': [FAIL], |
| 68 'Array.prototype.find_this-defined': [FAIL], | 68 'es6/Array.prototype.find/Array.prototype.find_this-defined': [FAIL], |
| 69 'Array.prototype.find_this-is-object': [FAIL], | 69 'es6/Array.prototype.find/Array.prototype.find_this-is-object': [FAIL], |
| 70 'Array.prototype.find_this-undefined': [FAIL], | 70 'es6/Array.prototype.find/Array.prototype.find_this-undefined': [FAIL], |
| 71 | 71 |
| 72 # Array.from | 72 # Array.from |
| 73 'S22.1.2.1_T1': [FAIL], | 73 'es6/ch22/22.1/22.1.2/S22.1.2.1_T1': [FAIL], |
| 74 'S22.1.2.1_T2': [FAIL], | 74 'es6/ch22/22.1/22.1.2/S22.1.2.1_T2': [FAIL], |
| 75 | 75 |
| 76 # Direct proxies | 76 # Direct proxies |
| 77 'Array.prototype.find_callable-predicate': [FAIL], | 77 'es6/Array.prototype.find/Array.prototype.find_callable-predicate': [FAIL], |
| 78 | 78 |
| 79 ######################## OBSOLETED BY ES6 ########################### | 79 ######################## OBSOLETED BY ES6 ########################### |
| 80 | 80 |
| 81 # ES6 allows duplicate properties | 81 # ES6 allows duplicate properties |
| 82 '11.1.5-4-4-a-1-s': [FAIL], | 82 'ch11/11.1/11.1.5/11.1.5-4-4-a-1-s': [FAIL], |
| 83 '11.1.5_4-4-b-1': [FAIL], | 83 'ch11/11.1/11.1.5/11.1.5_4-4-b-1': [FAIL], |
| 84 '11.1.5_4-4-b-2': [FAIL], | 84 'ch11/11.1/11.1.5/11.1.5_4-4-b-2': [FAIL], |
| 85 '11.1.5_4-4-c-1': [FAIL], | 85 'ch11/11.1/11.1.5/11.1.5_4-4-c-1': [FAIL], |
| 86 '11.1.5_4-4-c-2': [FAIL], | 86 'ch11/11.1/11.1.5/11.1.5_4-4-c-2': [FAIL], |
| 87 '11.1.5_4-4-d-1': [FAIL], | 87 'ch11/11.1/11.1.5/11.1.5_4-4-d-1': [FAIL], |
| 88 '11.1.5_4-4-d-2': [FAIL], | 88 'ch11/11.1/11.1.5/11.1.5_4-4-d-2': [FAIL], |
| 89 '11.1.5_4-4-d-3': [FAIL], | 89 'ch11/11.1/11.1.5/11.1.5_4-4-d-3': [FAIL], |
| 90 '11.1.5_4-4-d-4': [FAIL], | 90 'ch11/11.1/11.1.5/11.1.5_4-4-d-4': [FAIL], |
| 91 | 91 |
| 92 # ES6 does ToObject for Object.prototype.getOwnPropertyNames | 92 # ES6 does ToObject for Object.prototype.getOwnPropertyNames |
| 93 '15.2.3.4-1': [FAIL], | 93 'ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1': [FAIL], |
| 94 '15.2.3.4-1-4': [FAIL], | 94 'ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4': [FAIL], |
| 95 '15.2.3.4-1-5': [FAIL], | 95 'ch15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5': [FAIL], |
| 96 | 96 |
| 97 # ES6 allows block-local functions. | 97 # ES6 allows block-local functions. |
| 98 'Sbp_A1_T1': [FAIL], | 98 'bestPractice/Sbp_A1_T1': [FAIL], |
| 99 'Sbp_A2_T1': [FAIL], | 99 'bestPractice/Sbp_A2_T1': [FAIL], |
| 100 'Sbp_A2_T2': [FAIL], | 100 'bestPractice/Sbp_A2_T2': [FAIL], |
| 101 'Sbp_A3_T1': [FAIL], | 101 'bestPractice/Sbp_A3_T1': [FAIL], |
| 102 'Sbp_A3_T2': [FAIL], | 102 'bestPractice/Sbp_A3_T2': [FAIL], |
| 103 'Sbp_A4_T1': [FAIL], | 103 'bestPractice/Sbp_A4_T1': [FAIL], |
| 104 'Sbp_A4_T2': [FAIL], | 104 'bestPractice/Sbp_A4_T2': [FAIL], |
| 105 'Sbp_A5_T1': [PASS], # Test is broken (strict reference to unbound variable) | 105 'bestPractice/Sbp_A5_T1': [PASS], # Test is broken (strict reference to unboun
d variable) |
| 106 'Sbp_A5_T2': [FAIL], | 106 'bestPractice/Sbp_A5_T2': [FAIL], |
| 107 | 107 |
| 108 ######################## NEEDS INVESTIGATION ########################### | 108 ######################## NEEDS INVESTIGATION ########################### |
| 109 | 109 |
| 110 # These test failures are specific to the intl402 suite and need investigation | 110 # These test failures are specific to the intl402 suite and need investigation |
| 111 # to be either marked as bugs with issues filed for them or as deliberate | 111 # to be either marked as bugs with issues filed for them or as deliberate |
| 112 # incompatibilities if the test cases turn out to be broken or ambiguous. | 112 # incompatibilities if the test cases turn out to be broken or ambiguous. |
| 113 '6.2.3': [FAIL], | 113 'intl402/ch06/6.2/6.2.3': [FAIL], |
| 114 '9.2.1_2': [FAIL], | 114 'intl402/ch09/9.2/9.2.1_2': [FAIL], |
| 115 '9.2.6_2': [FAIL], | 115 'intl402/ch09/9.2/9.2.6_2': [FAIL], |
| 116 '10.1.1_a': [FAIL], | 116 'intl402/ch10/10.1/10.1.1_a': [FAIL], |
| 117 '10.1.1_19_c': [PASS, FAIL, NO_VARIANTS], | 117 'intl402/ch10/10.1/10.1.1_19_c': [PASS, FAIL, NO_VARIANTS], |
| 118 '10.1.2.1_4': [FAIL], | 118 'intl402/ch10/10.1/10.1.2.1_4': [FAIL], |
| 119 '10.2.3_b': [PASS, FAIL], | 119 'intl402/ch10/10.2/10.2.3_b': [PASS, FAIL], |
| 120 '10.3_a': [FAIL], | 120 'intl402/ch10/10.3/10.3_a': [FAIL], |
| 121 '11.1.1_17': [PASS, FAIL], | 121 'intl402/ch11/11.1/11.1.1_17': [PASS, FAIL], |
| 122 '11.1.1_19': [PASS, FAIL], | 122 'intl402/ch11/11.1/11.1.1_19': [PASS, FAIL], |
| 123 '11.1.1_20_c': [FAIL], | 123 'intl402/ch11/11.1/11.1.1_20_c': [FAIL], |
| 124 '11.1.1_a': [FAIL], | 124 'intl402/ch11/11.1/11.1.1_a': [FAIL], |
| 125 '11.1.2.1_4': [FAIL], | 125 'intl402/ch11/11.1/11.1.2.1_4': [FAIL], |
| 126 '11.3.2_FN_2': [PASS, FAIL], | 126 'intl402/ch11/11.3/11.3.2_FN_2': [PASS, FAIL], |
| 127 '11.3.2_TRF': [PASS, FAIL], | 127 'intl402/ch11/11.3/11.3.2_TRF': [PASS, FAIL], |
| 128 '11.3_a': [FAIL], | 128 'intl402/ch11/11.3/11.3_a': [FAIL], |
| 129 '12.1.1_a': [FAIL], | 129 'intl402/ch12/12.1/12.1.1_a': [FAIL], |
| 130 '12.1.2.1_4': [FAIL], | 130 'intl402/ch12/12.1/12.1.2.1_4': [FAIL], |
| 131 '12.3.2_FDT_7_a_iv': [FAIL], | 131 'intl402/ch12/12.3/12.3.2_FDT_7_a_iv': [FAIL], |
| 132 '12.3.3': [FAIL], | 132 'intl402/ch12/12.3/12.3.3': [FAIL], |
| 133 '12.3_a': [FAIL], | 133 'intl402/ch12/12.3/12.3_a': [FAIL], |
| 134 '15.5.4.9_3': [PASS, FAIL], | 134 'intl402/ch15/15.5/15.5.4/15.5.4.915.5.4.9_3': [PASS, FAIL], |
| 135 | 135 |
| 136 ##################### DELIBERATE INCOMPATIBILITIES ##################### | 136 ##################### DELIBERATE INCOMPATIBILITIES ##################### |
| 137 | 137 |
| 138 'S15.8.2.8_A6': [PASS, FAIL_OK], # Math.exp (less precise with --fast-math) | 138 'ch15/15.8/15.8.2/15.8.2.8/S15.8.2.8_A6': [PASS, FAIL_OK], # Math.exp (less p
recise with --fast-math) |
| 139 | 139 |
| 140 # Linux for ia32 (and therefore simulators) default to extended 80 bit | 140 # Linux for ia32 (and therefore simulators) default to extended 80 bit |
| 141 # floating point formats, so these tests checking 64-bit FP precision fail. | 141 # floating point formats, so these tests checking 64-bit FP precision fail. |
| 142 # The other platforms/arch's pass these tests. | 142 # The other platforms/arch's pass these tests. |
| 143 # We follow the other major JS engines by keeping this default. | 143 # We follow the other major JS engines by keeping this default. |
| 144 'S8.5_A2.1': [PASS, FAIL_OK], | 144 'ch08/8.5/S8.5_A2.1': [PASS, FAIL_OK], |
| 145 'S8.5_A2.2': [PASS, FAIL_OK], | 145 'ch08/8.5/S8.5_A2.2': [PASS, FAIL_OK], |
| 146 | 146 |
| 147 ############################ INVALID TESTS ############################# | 147 ############################ INVALID TESTS ############################# |
| 148 | 148 |
| 149 # The reference value calculated by Test262 is incorrect if you run these | 149 # The reference value calculated by Test262 is incorrect if you run these |
| 150 # tests in PST/PDT between first Sunday in March and first Sunday in April. | 150 # tests in PST/PDT between first Sunday in March and first Sunday in April. |
| 151 # The DST switch was moved in 2007 whereas Test262 bases the reference value | 151 # The DST switch was moved in 2007 whereas Test262 bases the reference value |
| 152 # on 2000. Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=293 | 152 # on 2000. Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=293 |
| 153 'S15.9.3.1_A5_T1': [PASS, FAIL_OK], | 153 'ch15/15.9/15.9.3/S15.9.3.1_A5_T1': [PASS, FAIL_OK], |
| 154 'S15.9.3.1_A5_T2': [PASS, FAIL_OK], | 154 'ch15/15.9/15.9.3/S15.9.3.1_A5_T2': [PASS, FAIL_OK], |
| 155 'S15.9.3.1_A5_T3': [PASS, FAIL_OK], | 155 'ch15/15.9/15.9.3/S15.9.3.1_A5_T3': [PASS, FAIL_OK], |
| 156 'S15.9.3.1_A5_T4': [PASS, FAIL_OK], | 156 'ch15/15.9/15.9.3/S15.9.3.1_A5_T4': [PASS, FAIL_OK], |
| 157 'S15.9.3.1_A5_T5': [PASS, FAIL_OK], | 157 'ch15/15.9/15.9.3/S15.9.3.1_A5_T5': [PASS, FAIL_OK], |
| 158 'S15.9.3.1_A5_T6': [PASS, FAIL_OK], | 158 'ch15/15.9/15.9.3/S15.9.3.1_A5_T6': [PASS, FAIL_OK], |
| 159 | 159 |
| 160 # Test makes unjustified assumptions about the number of calls to SortCompare. | 160 # Test makes unjustified assumptions about the number of calls to SortCompare. |
| 161 # Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596 | 161 # Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596 |
| 162 'bug_596_1': [PASS, FAIL_OK], | 162 'es6/bug_596_1': [PASS, FAIL_OK], |
| 163 | 163 |
| 164 # Tests do not return boolean. | 164 # Tests do not return boolean. |
| 165 '15.2.3.14-1-1': [PASS, FAIL_OK], | 165 'ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1': [PASS, FAIL_OK], |
| 166 '15.2.3.14-1-2': [PASS, FAIL_OK], | 166 'ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2': [PASS, FAIL_OK], |
| 167 '15.2.3.14-1-3': [PASS, FAIL_OK], | 167 'ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3': [PASS, FAIL_OK], |
| 168 | 168 |
| 169 # String.prototype.contains renamed to 'S.p.includes' | 169 # String.prototype.contains renamed to 'S.p.includes' |
| 170 'String.prototype.contains_FailBadLocation' : [FAIL_OK], | 170 'es6/String.prototype.contains/String.prototype.contains_FailBadLocation' : [F
AIL_OK], |
| 171 'String.prototype.contains_FailLocation' : [FAIL_OK], | 171 'es6/String.prototype.contains/String.prototype.contains_FailLocation' : [FAIL
_OK], |
| 172 'String.prototype.contains_FailMissingLetter' : [FAIL_OK], | 172 'es6/String.prototype.contains/String.prototype.contains_FailMissingLetter' :
[FAIL_OK], |
| 173 'String.prototype.contains_lengthProp' : [FAIL_OK], | 173 'es6/String.prototype.contains/String.prototype.contains_lengthProp' : [FAIL_O
K], |
| 174 'String.prototype.contains_Success' : [FAIL_OK], | 174 'es6/String.prototype.contains/String.prototype.contains_Success' : [FAIL_OK], |
| 175 'String.prototype.contains_SuccessNoLocation' : [FAIL_OK], | 175 'es6/String.prototype.contains/String.prototype.contains_SuccessNoLocation' :
[FAIL_OK], |
| 176 | 176 |
| 177 | 177 |
| 178 ############################ SKIPPED TESTS ############################# | 178 ############################ SKIPPED TESTS ############################# |
| 179 | 179 |
| 180 # These tests take a looong time to run in debug mode. | 180 # These tests take a looong time to run in debug mode. |
| 181 'S15.1.3.1_A2.5_T1': [PASS, ['mode == debug', SKIP]], | 181 'ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A2.5_T1': [PASS, ['mode == debug', SKIP]]
, |
| 182 'S15.1.3.2_A2.5_T1': [PASS, ['mode == debug', SKIP]], | 182 'ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A2.5_T1': [PASS, ['mode == debug', SKIP]]
, |
| 183 }], # ALWAYS | 183 }], # ALWAYS |
| 184 | 184 |
| 185 ['system == macos', { | 185 ['system == macos', { |
| 186 '11.3.2_TRP': [FAIL], | 186 'intl402/ch11/11.3/11.3.2_TRP': [FAIL], |
| 187 '9.2.5_11_g_ii_2': [FAIL], | 187 'intl402/ch09/9.2/9.2.5_11_g_ii_2': [FAIL], |
| 188 }], # system == macos | 188 }], # system == macos |
| 189 | 189 |
| 190 ['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips
64el', { | 190 ['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips
64el', { |
| 191 | 191 |
| 192 # TODO(mstarzinger): Causes stack overflow on simulators due to eager | 192 # TODO(mstarzinger): Causes stack overflow on simulators due to eager |
| 193 # compilation of parenthesized function literals. Needs investigation. | 193 # compilation of parenthesized function literals. Needs investigation. |
| 194 'S13.2.1_A1_T1': [SKIP], | 194 'ch13/13.2/S13.2.1_A1_T1': [SKIP], |
| 195 | 195 |
| 196 # BUG(3251225): Tests that timeout with --nocrankshaft. | 196 # BUG(3251225): Tests that timeout with --nocrankshaft. |
| 197 'S15.1.3.1_A2.4_T1': [SKIP], | 197 'ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A2.4_T1': [SKIP], |
| 198 'S15.1.3.1_A2.5_T1': [SKIP], | 198 'ch15/15.1/15.1.3/15.1.3.1/S15.1.3.1_A2.5_T1': [SKIP], |
| 199 'S15.1.3.2_A2.4_T1': [SKIP], | 199 'ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A2.4_T1': [SKIP], |
| 200 'S15.1.3.2_A2.5_T1': [SKIP], | 200 'ch15/15.1/15.1.3/15.1.3.2/S15.1.3.2_A2.5_T1': [SKIP], |
| 201 'S15.1.3.3_A2.3_T1': [SKIP], | 201 'ch15/15.1/15.1.3/15.1.3.3/S15.1.3.3_A2.3_T1': [SKIP], |
| 202 'S15.1.3.4_A2.3_T1': [SKIP], | 202 'ch15/15.1/15.1.3/15.1.3.4/S15.1.3.4_A2.3_T1': [SKIP], |
| 203 }], # 'arch == arm or arch == mipsel or arch == mips or arch == arm64' | 203 }], # 'arch == arm or arch == mipsel or arch == mips or arch == arm64' |
| 204 ] | 204 ] |
| OLD | NEW |