From 705940d205ebe8e796b85373b949c5f6bf300c6d Mon Sep 17 00:00:00 2001
From: Leonardo Balter <leonardo.balter@gmail.com>
Date: Tue, 12 Jan 2016 16:40:19 -0500
Subject: [PATCH] Add tests for Subclassing the built-in Proxy Object

---
 .../subclassing/Proxy/no-prototype-throws.js  | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 test/language/subclassing/Proxy/no-prototype-throws.js

diff --git a/test/language/subclassing/Proxy/no-prototype-throws.js b/test/language/subclassing/Proxy/no-prototype-throws.js
new file mode 100644
index 0000000000..44859ca000
--- /dev/null
+++ b/test/language/subclassing/Proxy/no-prototype-throws.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 14.5.14
+description: The Proxy Object is not subclasseable without a prototype
+info: >
+  14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+  5. If ClassHeritageopt is not present, then
+    ...
+  6. Else
+    ...
+    e. If superclass is null, then
+      ...
+    f. Else if IsConstructor(superclass) is false, throw a TypeError exception.
+    g. Else
+      ...
+      ii. Let protoParent be Get(superclass, "prototype").
+      iii. ReturnIfAbrupt(protoParent).
+      iv. If Type(protoParent) is neither Object nor Null, throw a TypeError exception.
+
+  26.2.1 The Proxy Constructor
+
+  The Proxy constructor is the %Proxy% intrinsic object and the initial value of
+  the Proxy property of the global object. When called as a constructor it
+  creates and initializes a new proxy exotic object. Proxy is not intended to be
+  called as a function and will throw an exception when called in that manner.
+---*/
+
+assert.throws(TypeError, function() {
+  class P extends Proxy {}
+});
-- 
GitLab