aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMark Miller <erights@gmail.com>2011-09-25 10:40:20 -0700
committerMark Miller <erights@gmail.com>2011-09-25 10:40:20 -0700
commiteea2f45421ba3558bb45888e1846447c95cd1264 (patch)
tree7b0c5895a4faf7b56fae6278d43249ab81bf083d /test
parentede572eced27edf38a4672fa131798aab2a247cc (diff)
Tests for spec violation generically by enumerating properties.
Diffstat (limited to 'test')
-rw-r--r--test/suite/sputnik/Conformance/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js24
1 files changed, 17 insertions, 7 deletions
diff --git a/test/suite/sputnik/Conformance/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js b/test/suite/sputnik/Conformance/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js
index 0685fcc87..b7faa6fdf 100644
--- a/test/suite/sputnik/Conformance/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js
+++ b/test/suite/sputnik/Conformance/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js
@@ -11,12 +11,22 @@
* @onlyStrict
*/
"use strict";
-var deleted = 'unassigned';
-try {
- deleted = delete RegExp.leftContext;
-} catch (err) {
-}
-if (deleted === false) {
- $ERROR('Strict delete returned false');
+var reNames = Object.getOwnPropertyNames(RegExp);
+for (var i = 0, len = reNames.length; i < len; i++) {
+ var reName = reNames[i];
+ if (reName !== 'prototype') {
+ var deleted = 'unassigned';
+ try {
+ deleted = delete RegExp[reName];
+ } catch (err) {
+ if (!(err instanceof TypeError)) {
+ $ERROR('#1: strict delete threw a non-TypeError: ' + err);
+ }
+ // fall through
+ }
+ if (deleted === false) {
+ $ERROR('#2: Strict delete returned false');
+ }
+ }
}