blob: 20ef02e4a322d3d2dd2b8d6fcb6c918ee8b97db7 [file] [log] [blame]
description('Test RegExp#toString');
shouldBe("Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').configurable", "true");
shouldBe("Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').enumerable", "false");
shouldBe("Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').get", "undefined");
shouldBe("Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').set", "undefined");
shouldBe("typeof Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').value", "'function'");
shouldBe("RegExp.prototype.toString.call(new RegExp)", "'/(?:)/'");
shouldBe("RegExp.prototype.toString.call(new RegExp('a'))", "'/a/'");
shouldBe("RegExp.prototype.toString.call(new RegExp('\\\\\\\\'))", "'/\\\\\\\\/'");
shouldBe("RegExp.prototype.toString.call({})", "'/undefined/undefined'");
shouldBe("RegExp.prototype.toString.call({source: 'hi'})", "'/hi/undefined'");
shouldBe("RegExp.prototype.toString.call({ __proto__: { source: 'yo' } })", "'/yo/undefined'");
shouldBe("RegExp.prototype.toString.call({source: ''})", "'//undefined'");
shouldBe("RegExp.prototype.toString.call({source: '/'})", "'///undefined'");
shouldThrow("RegExp.prototype.toString.call(undefined)");
shouldThrow("RegExp.prototype.toString.call(null)");
shouldThrow("RegExp.prototype.toString.call(false)");
shouldThrow("RegExp.prototype.toString.call(true)");
shouldThrow("RegExp.prototype.toString.call(0)");
shouldThrow("RegExp.prototype.toString.call(0.5)");
shouldThrow("RegExp.prototype.toString.call('x')");