summaryrefslogtreecommitdiff
path: root/Libraries/LibJS/Tests/builtins/Proxy/Proxy.handler-construct.js
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/LibJS/Tests/builtins/Proxy/Proxy.handler-construct.js')
-rw-r--r--Libraries/LibJS/Tests/builtins/Proxy/Proxy.handler-construct.js72
1 files changed, 0 insertions, 72 deletions
diff --git a/Libraries/LibJS/Tests/builtins/Proxy/Proxy.handler-construct.js b/Libraries/LibJS/Tests/builtins/Proxy/Proxy.handler-construct.js
deleted file mode 100644
index 73a63346a3..0000000000
--- a/Libraries/LibJS/Tests/builtins/Proxy/Proxy.handler-construct.js
+++ /dev/null
@@ -1,72 +0,0 @@
-describe("[[Construct]] trap normal behavior", () => {
- test("forwarding when not defined in handler", () => {
- let p = new Proxy(
- function () {
- this.x = 5;
- },
- { construct: null }
- );
- expect(new p().x).toBe(5);
- p = new Proxy(
- function () {
- this.x = 5;
- },
- { construct: undefined }
- );
- expect(new p().x).toBe(5);
- p = new Proxy(function () {
- this.x = 5;
- }, {});
- expect(new p().x).toBe(5);
- });
-
- test("trapping 'new'", () => {
- function f(value) {
- this.x = value;
- }
-
- let p;
- const handler = {
- construct(target, arguments, newTarget) {
- expect(target).toBe(f);
- expect(newTarget).toBe(p);
- if (arguments[1]) return Reflect.construct(target, [arguments[0] * 2], newTarget);
- return Reflect.construct(target, arguments, newTarget);
- },
- };
- p = new Proxy(f, handler);
-
- expect(new p(15).x).toBe(15);
- expect(new p(15, true).x).toBe(30);
- });
-
- test("trapping Reflect.construct", () => {
- function f(value) {
- this.x = value;
- }
-
- let p;
- function theNewTarget() {}
- const handler = {
- construct(target, arguments, newTarget) {
- expect(target).toBe(f);
- expect(newTarget).toBe(theNewTarget);
- if (arguments[1]) return Reflect.construct(target, [arguments[0] * 2], newTarget);
- return Reflect.construct(target, arguments, newTarget);
- },
- };
- p = new Proxy(f, handler);
-
- Reflect.construct(p, [15], theNewTarget);
- });
-});
-
-describe("[[Construct]] invariants", () => {
- test("target must have a [[Construct]] slot", () => {
- [{}, [], new Proxy({}, {})].forEach(item => {
- expect(() => {
- new new Proxy(item, {})();
- }).toThrowWithMessage(TypeError, "[object ProxyObject] is not a constructor");
- });
- });
-});