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