diff --git a/test/language/subclassing/Promise/regular-subclassing.js b/test/language/subclassing/Promise/regular-subclassing.js
new file mode 100644
index 0000000000000000000000000000000000000000..d4a87192bba537c9d907b706b9602da2e347a4ab
--- /dev/null
+++ b/test/language/subclassing/Promise/regular-subclassing.js
@@ -0,0 +1,34 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 25.4.3
+description: Subclassing the Promise object
+info: >
+  25.4.3 The Promise Constructor
+
+  ...
+
+  The Promise constructor is designed to be subclassable. It may be used as the
+  value in an extends clause of a class definition. Subclass constructors that
+  intend to inherit the specified Promise behaviour must include a super call
+  to the Promise constructor to create and initialize the subclass instance with
+  the internal state necessary to support the Promise and Promise.prototype
+  built-in methods.
+---*/
+
+class Prom extends Promise {}
+
+assert.throws(TypeError, function() {
+  new Prom();
+});
+
+var calledExecutor = false;
+
+var prom1 = new Prom(function(resolve) {
+  calledExecutor = true;
+  assert.sameValue(arguments.length, 2);
+  assert(arguments[0] === Promise.resolve);
+  assert(arguments[1] === Promise.reject);
+});
+
+assert(calledExecutor);
diff --git a/test/language/subclassing/Promise/super-must-be-called.js b/test/language/subclassing/Promise/super-must-be-called.js
new file mode 100644
index 0000000000000000000000000000000000000000..e863f33d4c3fee3a723240a56487fecf376696e6
--- /dev/null
+++ b/test/language/subclassing/Promise/super-must-be-called.js
@@ -0,0 +1,33 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 25.4.3
+description: Super need to be called to initialize internals
+info: >
+  25.4.3 The Promise Constructor
+
+  ...
+
+  The Promise constructor is designed to be subclassable. It may be used as the
+  value in an extends clause of a class definition. Subclass constructors that
+  intend to inherit the specified Promise behaviour must include a super call
+  to the Promise constructor to create and initialize the subclass instance with
+  the internal state necessary to support the Promise and Promise.prototype
+  built-in methods.
+---*/
+
+class Prom1 extends Promise {
+  constructor() {}
+}
+
+assert.throws(ReferenceError, function() {
+  new Prom1();
+});
+
+class Prom2 extends Promise {
+  constructor(exec) {
+    super(exec);
+  }
+}
+
+new Prom2(function() {});