1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:17:36 +00:00

LibJS: Implement spec-compliant Object.prototype.toString

This commit is contained in:
Matthew Olsson 2020-07-11 10:11:37 -07:00 committed by Andreas Kling
parent caa11503b1
commit 5ecd504f4e
4 changed files with 53 additions and 12 deletions

View file

@ -1,8 +1,18 @@
test("basic functionality", () => {
test("length", () => {
expect(Object.prototype.toString).toHaveLength(0);
// FIXME: The tag is ObjectPrototype, but should be Object
// expect(Object.prototype.toString()).toBe("[object Object]");
expect({ foo: 1 }.toString()).toBe("[object Object]");
expect([].toString()).toBe("");
expect(Object.prototype.toString.call([])).toBe("[object Array]");
});
test("result for various object types", () => {
const oToString = o => Object.prototype.toString.call(o);
expect(oToString(undefined)).toBe("[object Undefined]");
expect(oToString(null)).toBe("[object Null]");
expect(oToString([])).toBe("[object Array]");
expect(oToString(function () {})).toBe("[object Function]");
expect(oToString(new Error())).toBe("[object Error]");
expect(oToString(new Boolean())).toBe("[object Boolean]");
expect(oToString(new Number())).toBe("[object Number]");
expect(oToString(new Date())).toBe("[object Date]");
expect(oToString(new RegExp())).toBe("[object RegExp]");
expect(oToString({})).toBe("[object Object]");
});