diff --git a/test/language/expressions/object/prop-def-id-eval-error-2.js b/test/language/expressions/object/prop-def-id-eval-error-2.js new file mode 100644 index 0000000000000000000000000000000000000000..5661798f00bb2f243b5abe69f197279ff75fa74f --- /dev/null +++ b/test/language/expressions/object/prop-def-id-eval-error-2.js @@ -0,0 +1,22 @@ +// Copyright (C) Copyright 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es6id: 12.2.5.9 +description: > + Errors thrown during IdentifierReference evaluation are forwarded to the + runtime. +flags: [noStrict] +features: [Proxy] +---*/ + +var p = new Proxy({}, { + has: function () { + throw new Test262Error(); + } +}); + +assert.throws(Test262Error, function() { + with (p) { + ({attr}); + } +}); diff --git a/test/language/expressions/object/prop-def-id-eval-error.js b/test/language/expressions/object/prop-def-id-eval-error.js new file mode 100644 index 0000000000000000000000000000000000000000..72caf01fb8d14c241484df423683fb524584868b --- /dev/null +++ b/test/language/expressions/object/prop-def-id-eval-error.js @@ -0,0 +1,21 @@ +// Copyright (C) Copyright 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es6id: 12.2.5.9 +description: > + Errors thrown during IdentifierReference evaluation are forwarded to the + runtime. +flags: [noStrict] +features: [Symbol, Symbol.unscopables] +---*/ + +var obj = { + attr: null, + get [Symbol.unscopables]() { throw new Test262Error(); } +}; + +assert.throws(Test262Error, function() { + with (obj) { + ({ attr }); + } +}); diff --git a/test/language/expressions/object/prop-def-id-get-error.js b/test/language/expressions/object/prop-def-id-get-error.js new file mode 100644 index 0000000000000000000000000000000000000000..f7efee31136cb4c057403f73b7a4943e159be9ed --- /dev/null +++ b/test/language/expressions/object/prop-def-id-get-error.js @@ -0,0 +1,12 @@ +// Copyright (C) Copyright 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es6id: 12.2.5.9 +description: > + Errors thrown during IdentifierReference value retrieval are forwarded to + the runtime. +---*/ + +assert.throws(ReferenceError, function() { + ({ unresolvable }); +}); diff --git a/test/language/expressions/object/prop-def-id-valid.js b/test/language/expressions/object/prop-def-id-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..7925a8f8890b65e50f33fc5337ac12f877888895 --- /dev/null +++ b/test/language/expressions/object/prop-def-id-valid.js @@ -0,0 +1,21 @@ +// Copyright (C) Copyright 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es6id: 12.2.5.9 +description: > + When a valid IdentifierReference appears in an object initializer, a new + data property is created. The property name is the string value of the + identifier, the property value is the value of the identifier, and the + property is enumerable, writable, and configurable. +includes: [propertyHelper.js] +---*/ + +var attr = 23; +var obj; + +obj = { attr }; + +assert.sameValue(obj.attr, 23); +verifyEnumerable(obj, 'attr'); +verifyWritable(obj, 'attr'); +verifyConfigurable(obj, 'attr');