Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-5085.js')
-rw-r--r--deps/v8/test/mjsunit/regress/regress-5085.js66
1 files changed, 63 insertions, 3 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-5085.js b/deps/v8/test/mjsunit/regress/regress-5085.js
index 0ed034dc2d0..167bfa0f447 100644
--- a/deps/v8/test/mjsunit/regress/regress-5085.js
+++ b/deps/v8/test/mjsunit/regress/regress-5085.js
@@ -4,11 +4,71 @@
// Flags: --allow-natives-syntax
+g = async function () {
+ await 10;
+}
+assertEquals(undefined, g.prototype)
+g();
+assertEquals(undefined, g.prototype)
+
+gen = function* () {
+ yield 10;
+}
+assertTrue(gen.prototype != undefined && gen.prototype != null)
+gen()
+assertTrue(gen.prototype != undefined && gen.prototype != null)
+
+async_gen = async function* () {
+ yield 10;
+}
+assertTrue(async_gen.prototype != undefined && async_gen.prototype != null)
+async_gen()
+assertTrue(async_gen.prototype != undefined && async_gen.prototype != null)
+
function foo(x) {
return x instanceof Proxy;
}
-assertFalse(foo({}));
-assertFalse(foo({}));
+function test_for_exception() {
+ caught_exception = false;
+ try {
+ foo({});
+ } catch (e) {
+ caught_exception = true;
+ assertEquals(
+ 'Function has non-object prototype \'undefined\' in instanceof check',
+ e.message);
+ } finally {
+ assertTrue(caught_exception)
+ }
+}
+
+test_for_exception();
+test_for_exception();
%OptimizeFunctionOnNextCall(foo);
-assertFalse(foo({}));
+test_for_exception();
+
+Proxy.__proto__.prototype = Function.prototype;
+assertTrue((() => {}) instanceof Proxy);
+
+assertEquals(
+ new Proxy({}, {
+ get(o, s) {
+ return s
+ }
+ }).test,
+ 'test');
+
+Proxy.__proto__ = {
+ prototype: {b: 2},
+ a: 1
+};
+assertEquals(Proxy.prototype, {b: 2});
+
+(function testProxyCreationContext() {
+ let realm = Realm.create();
+ let p1 = new Proxy({}, {});
+ let p2 = Realm.eval(realm, "new Proxy({}, {})");
+ assertEquals(0, Realm.owner(p1));
+ assertEquals(1, Realm.owner(p2));
+})();