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')");