blob: 74ca79031ca49b0fd4295ea5e0adb5386f22ece2 [file] [edit]
'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',
});