Index: test/mjsunit/messages.js |
diff --git a/test/mjsunit/messages.js b/test/mjsunit/messages.js |
index 30920a1451533bbe52150c08921a7886d16add7b..4b6915d6407add40209d5b2d52c22716d7cf21c1 100644 |
--- a/test/mjsunit/messages.js |
+++ b/test/mjsunit/messages.js |
@@ -32,16 +32,45 @@ test(function() { |
}, "Function.prototype.apply was called on 1, which is a number " + |
"and not a function", TypeError); |
+// kArrayFunctionsOnFrozen |
+test(function() { |
+ var a = [1, 2]; |
+ Object.freeze(a); |
+ a.splice(1, 1, [1]); |
+}, "Cannot modify frozen array elements", TypeError); |
+ |
+// kArrayFunctionsOnSealed |
+test(function() { |
+ var a = [1]; |
+ Object.seal(a); |
+ a.shift(); |
+}, "Cannot add/remove sealed array elements", TypeError); |
+ |
// kCalledNonCallable |
test(function() { |
[].forEach(1); |
}, "1 is not a function", TypeError); |
+// kCalledOnNonObject |
+test(function() { |
+ Object.defineProperty(1, "x", {}); |
+}, "Object.defineProperty called on non-object", TypeError); |
+ |
+// kCalledOnNullOrUndefined |
+test(function() { |
+ Array.prototype.shift.call(null); |
+}, "Array.prototype.shift called on null or undefined", TypeError); |
+ |
// kCannotConvertToPrimitive |
test(function() { |
[].join(Object(Symbol(1))); |
}, "Cannot convert object to primitive value", TypeError); |
+// kDateType |
+test(function() { |
+ Date.prototype.setYear.call({}, 1); |
+}, "this is not a Date object.", TypeError); |
+ |
// kDefineDisallowed |
test(function() { |
"use strict"; |
@@ -121,7 +150,6 @@ test(function() { |
Function.prototype.toString.call(1); |
}, "Function.prototype.toString is not generic", TypeError); |
- |
// kObjectGetterExpectingFunction |
test(function() { |
({}).__defineGetter__("x", 0); |
@@ -166,6 +194,11 @@ test(function() { |
Object.defineProperty(o, "x", { value: 2 }); |
}, "Cannot redefine property: x", TypeError); |
+// kReduceNoInitial |
+test(function() { |
+ [].reduce(function() {}); |
+}, "Reduce of empty array with no initial value", TypeError); |
+ |
// kSymbolToPrimitive |
test(function() { |
1 + Object(Symbol()); |
@@ -226,7 +259,12 @@ test(function() { |
Object.defineProperty([], "length", { value: 1E100 }); |
}, "defineProperty() array length out of range", RangeError); |
-//kNumberFormatRange |
+// kNormalizationForm |
+test(function() { |
+ "".normalize("ABC"); |
+}, "The normalization form should be one of NFC, NFD, NFKC, NFKD.", RangeError); |
+ |
+// kNumberFormatRange |
test(function() { |
Number(1).toFixed(100); |
}, "toFixed() digits argument must be between 0 and 20", RangeError); |
@@ -245,3 +283,16 @@ test(function() { |
test(function() { |
Number(1).toPrecision(100); |
}, "toPrecision() argument must be between 1 and 21", RangeError); |
+ |
+// kToPrecisionFormatRange |
+test(function() { |
+ Number(1).toString(100); |
+}, "toString() radix argument must be between 2 and 36", RangeError); |
+ |
+ |
+// === URIError === |
+ |
+// kURIMalformed |
+test(function() { |
+ decodeURI("%%"); |
+}, "URI malformed", URIError); |