| Index: test/mjsunit/messages.js
|
| diff --git a/test/mjsunit/messages.js b/test/mjsunit/messages.js
|
| index 73cc15ac406e349058b4a5ac6be5f7726aa1c3f3..56470b1e5e7cc14ee0c4c355b9cb7c39967187ba 100644
|
| --- a/test/mjsunit/messages.js
|
| +++ b/test/mjsunit/messages.js
|
| @@ -3,7 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| // Flags: --stack-size=100 --harmony --harmony-reflect --harmony-arrays
|
| -// Flags: --harmony-regexps
|
| +// Flags: --harmony-regexps --strong-mode
|
|
|
| function test(f, expected, type) {
|
| try {
|
| @@ -62,11 +62,30 @@ test(function() {
|
| Array.prototype.shift.call(null);
|
| }, "Array.prototype.shift called on null or undefined", TypeError);
|
|
|
| +// kCannotPreventExtExternalArray
|
| +test(function() {
|
| + Object.preventExtensions(new Uint16Array(1));
|
| +}, "Cannot prevent extension of an object with external array elements", TypeError);
|
| +
|
| +// kConstAssign
|
| +test(function() {
|
| + "use strict";
|
| + const a = 1;
|
| + a = 2;
|
| +}, "Assignment to constant variable.", TypeError);
|
| +
|
| // kCannotConvertToPrimitive
|
| test(function() {
|
| [].join(Object(Symbol(1)));
|
| }, "Cannot convert object to primitive value", TypeError);
|
|
|
| +// kCircularStructure
|
| +test(function() {
|
| + var o = {};
|
| + o.o = o;
|
| + JSON.stringify(o);
|
| +}, "Converting circular structure to JSON", TypeError);
|
| +
|
| // kConstructorNotFunction
|
| test(function() {
|
| Uint16Array(1);
|
| @@ -160,6 +179,11 @@ test(function() {
|
| new Symbol();
|
| }, "Symbol is not a constructor", TypeError);
|
|
|
| +// kNotDateObject
|
| +test(function() {
|
| + Date.prototype.setHours.call(1);
|
| +}, "this is not a Date object.", TypeError);
|
| +
|
| // kNotGeneric
|
| test(function() {
|
| String.prototype.toString.call(1);
|
| @@ -204,6 +228,14 @@ test(function() {
|
| Object.defineProperty({}, "x", { get: 1 });
|
| }, "Getter must be a function: 1", TypeError);
|
|
|
| +// kObjectNotExtensible
|
| +test(function() {
|
| + "use strict";
|
| + var o = {};
|
| + Object.freeze(o);
|
| + o.a = 1;
|
| +}, "Can't add property a, object is not extensible", TypeError);
|
| +
|
| // kObjectSetterExpectingFunction
|
| test(function() {
|
| ({}).__defineSetter__("x", 0);
|
| @@ -248,6 +280,34 @@ test(function() {
|
| new Promise(1);
|
| }, "Promise resolver 1 is not a function", TypeError);
|
|
|
| +// kStrictDeleteProperty
|
| +test(function() {
|
| + "use strict";
|
| + var o = {};
|
| + Object.defineProperty(o, "p", { value: 1, writable: false });
|
| + delete o.p;
|
| +}, "Cannot delete property 'p' of #<Object>", TypeError);
|
| +
|
| +// kStrictPoisonPill
|
| +test(function() {
|
| + "use strict";
|
| + arguments.callee;
|
| +}, "'caller', 'callee', and 'arguments' properties may not be accessed on " +
|
| + "strict mode functions or the arguments objects for calls to them",
|
| + TypeError);
|
| +
|
| +// kStrictReadOnlyProperty
|
| +test(function() {
|
| + "use strict";
|
| + (1).a = 1;
|
| +}, "Cannot assign to read only property 'a' of 1", TypeError);
|
| +
|
| +// kStrongImplicitCast
|
| +test(function() {
|
| + "use strong";
|
| + "a" + 1;
|
| +}, "In strong mode, implicit conversions are deprecated", TypeError);
|
| +
|
| // kSymbolToPrimitive
|
| test(function() {
|
| 1 + Object(Symbol());
|
|
|