summaryrefslogtreecommitdiff
path: root/test/fixtures/deprecated-userland-subclass.js
diff options
context:
space:
mode:
authorvladimir <vlad2t@hotmail.com>2016-07-12 23:09:12 +0200
committercjihrig <cjihrig@gmail.com>2016-08-04 11:44:40 -0400
commit320f433dcdb411da22d8ee9427bbdf5b071faca2 (patch)
tree859f5a07381e755da9b986452f087048e4943ebe /test/fixtures/deprecated-userland-subclass.js
parente1643ccc5a5ecf7cb779472d244459469c9971a1 (diff)
downloadandroid-node-v8-320f433dcdb411da22d8ee9427bbdf5b071faca2.tar.gz
android-node-v8-320f433dcdb411da22d8ee9427bbdf5b071faca2.tar.bz2
android-node-v8-320f433dcdb411da22d8ee9427bbdf5b071faca2.zip
util: support classes in util.deprecate()
Classes cannot be instantiated without new, but util.deprecate() uses Function.prototype.apply(). This commit uses new.target to detect constructor calls, allowing classes to be deprecated. PR-URL: https://github.com/nodejs/node/pull/7690 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaƫl Zasso <mic.besace@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/fixtures/deprecated-userland-subclass.js')
-rw-r--r--test/fixtures/deprecated-userland-subclass.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/fixtures/deprecated-userland-subclass.js b/test/fixtures/deprecated-userland-subclass.js
new file mode 100644
index 0000000000..2df374ad7d
--- /dev/null
+++ b/test/fixtures/deprecated-userland-subclass.js
@@ -0,0 +1,19 @@
+const util = require('util');
+const assert = require('assert');
+
+class deprecatedClass {
+}
+
+const deprecated = util.deprecate(deprecatedClass, 'deprecatedClass is deprecated.');
+
+class subclass extends deprecated {
+ constructor() {
+ super();
+ }
+}
+
+const instance = new subclass();
+
+assert(instance instanceof subclass);
+assert(instance instanceof deprecated);
+assert(instance instanceof deprecatedClass);