| 'use strict'; |
| |
| require('../common'); |
| |
| const { URLPattern } = require('url'); |
| const assert = require('assert'); |
| |
| const pattern = new URLPattern(); |
| const proto = Object.getPrototypeOf(pattern); |
| |
| // Verifies that attempts to call the property getters on a URLPattern |
| // with the incorrect `this` will not crash the process. |
| [ |
| 'protocol', |
| 'username', |
| 'password', |
| 'hostname', |
| 'port', |
| 'pathname', |
| 'search', |
| 'hash', |
| 'hasRegExpGroups', |
| ].forEach((i) => { |
| const prop = Object.getOwnPropertyDescriptor(proto, i).get; |
| assert.throws(() => prop({}), { |
| message: 'Illegal invocation', |
| }, i); |
| }); |
| |
| // Verifies that attempts to call the exec and test functions |
| // with the wrong this also throw |
| |
| const { test, exec } = pattern; |
| |
| assert.throws(() => test({}), { |
| message: 'Illegal invocation', |
| }); |
| assert.throws(() => exec({}), { |
| message: 'Illegal invocation', |
| }); |