Tests for spec violation generically by enumerating properties.

This commit is contained in:
Mark Miller 2011-09-25 10:40:20 -07:00
parent ede572eced
commit eea2f45421

View File

@ -11,12 +11,22 @@
* @onlyStrict * @onlyStrict
*/ */
"use strict"; "use strict";
var deleted = 'unassigned';
try {
deleted = delete RegExp.leftContext;
} catch (err) {
} var reNames = Object.getOwnPropertyNames(RegExp);
if (deleted === false) { for (var i = 0, len = reNames.length; i < len; i++) {
$ERROR('Strict delete returned false'); 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');
}
}
} }