Merge pull request #277 from bocoup/shorthand-properties

Add tests for IdentifierReference as property
This commit is contained in:
Brian Terlson 2015-05-20 13:12:24 -07:00
commit 9861dc2dd1
4 changed files with 76 additions and 0 deletions

View File

@ -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});
}
});

View File

@ -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 });
}
});

View File

@ -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 });
});

View File

@ -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');