import { bench, group, run } from "mitata"; import fastDeepEquals from "fast-deep-equal/es6/index"; // const Date = globalThis.Date; function func1() {} function func2() {} const s = Symbol("foo"); const a1 = [1, 2, 3, 4]; a1[s] = "f00"; const a2 = [1, 2, 3, 4]; a2[s] = "f00"; const e1 = new Set(); e1.add([1, 2, 3]); e1.add("test1"); e1.add(498); e1.add({ a: 1, b: 2 }); e1.add({ a: 1, b: 434221 }); e1.add({ a: 1, b: 25 }); e1.add({ a: 1, b: 4 }); e1.add({ a: 1, b: 2667 }); e1.add({ a: 1, b: 2 }); e1.add({ a: 1, b: 23426 }); e1.add({ a: 1, b: 672 }); e1.add({ a: 1, b: 28465 }); const e2 = new Set(); e2.add([1, 2, 3]); e2.add("test1"); e2.add(498); e1.add({ a: 1, b: 2 }); e1.add({ a: 1, b: 434221 }); e1.add({ a: 1, b: 25 }); e1.add({ a: 1, b: 4 }); e1.add({ a: 1, b: 2667 }); e1.add({ a: 1, b: 2 }); e1.add({ a: 1, b: 23426 }); e1.add({ a: 1, b: 672 }); e1.add({ a: 1, b: 28465 }); const d1 = new Set(); d1.add({ a: 1, b: 2 }); const d2 = new Set(); d2.add({ a: 1, b: 2 }); const fixture = [ { description: "scalars", tests: [ { description: "equal numbers", value1: 1, value2: 1, equal: true, }, { description: "not equal numbers", value1: 1, value2: 2, equal: false, }, { description: "number and array are not equal", value1: 1, value2: [], equal: false, }, { description: "0 and null are not equal", value1: 0, value2: null, equal: false, }, { description: "equal strings", value1: "azzzz", value2: "azzzz", equal: true, }, { description: "not equal strings", value1: "azzzz", value2: "bzzzz", equal: false, }, { description: "empty string and null are not equal", value1: "", value2: null, equal: false, }, { description: "null is equal to null", value1: null, value2: null, equal: true, }, { description: "equal booleans (true)", value1: true, value2: true, equal: true, }, { description: "equal booleans (false)", value1: false, value2: false, equal: true, }, { description: "not equal booleans", value1: true, value2: false, equal: false, }, { description: "1 and true are not equal", value1: 1, value2: true, equal: false, }, { description: "0 and false are not equal", value1: 0, value2: false, equal: false, }, { description: "NaN and NaN are equal", value1: NaN, value2: NaN, equal: true, }, { description: "0 and -0 are equal", value1: 0, value2: -0, equal: true, }, { description: "Infinity and Infinity are equal", value1: Infinity, value2: Infinity, equal: true, }, { description: "Infinity and -Infinity are not equal", value1: Infinity, value2: -Infinity, equal: false, }, ], }, { description: "objects", tests: [ { description: "empty objects are equal", value1: {}, value2: {}, equal: true, }, { description: 'equal objects (same properties "order")', value1: { a: 1, b: "2" }, value2: { a: 1, b: "2" }, equal: true, }, { description: 'equal objects (different properties "order")', value1: { a: 1, b: "2" }, value2: { b: "2", a: 1 }, equal: true, }, { description: "not equal objects (extra property)", value1: { a: 1, b: "2" }, value2: { a: 1, b: "2", c: [] }, equal: false, }, { description: "not equal objects (different property values)", value1: { a: 1, b: "2", c: 3 }, value2: { a: 1, b: "2", c: 4 }, equal: false, }, { description: "not equal objects (different properties)", value1: { a: 1, b: "2", c: 3 }, value2: { a: 1, b: "2", d: 3 }, equal: false, }, { description: "equal objects (same sub-properties)", value1: { a: [{ b: "c" }] }, value2: { a: [{ b: "c" }] }, equal: true, }, { description: "not equal objects (different sub-property value)", value1: { a: [{ b: "c" }] }, value2: { a: [{ b: "d" }] }, equal: false, }, { description: "not equal objects (different sub-property)", value1: { a: [{ b: "c" }] }, value2: { a: [{ c: "c" }] }, equal: false, }, { description: "empty array and empty object are not equal", value1: {}, value2: [], equal: false, }, { description: "object with extra undefined properties are not equal #1", value1: {}, value2: { foo: undefined }, equal: false, }, { description: "object with extra undefined properties are not equal #2", value1: { foo: undefined }, value2: {}, equal: false, }, { description: "object with extra undefined properties are not equal #3", value1: { foo: undefined }, value2: { bar: undefined }, equal: false, }, { description: "nulls are equal", value1: null, value2: null, equal: true, }, { description: "null and undefined are not equal", value1: null, value2: undefined, equal: false, }, { description: "null and empty object are not equal", value1: null, value2: {}, equal: false, }, { description: "undefined and empty object are not equal", value1: undefined, value2: {}, equal: false, }, { description: "objects with different `toString` functions returning same values are equal", value1: { toString: () => "Hello world!" }, value2: { toString: () => "Hello world!" }, equal: true, }, { description: "objects with `toString` functions returning different values are not equal", value1: { toString: () => "Hello world!" }, value2: { toString: () => "Hi!" }, equal: false, }, ], }, { description: "arrays", tests: [ { description: "two empty arrays are equal", value1: [], value2: [], equal: true, }, { description: "equal arrays", value1: [1, 2, 3], value2: [1, 2, 3], equal: true, }, { description: "equal arrays with symbols", value1: a1, value2: a2, equal: true, }, // { // description: "not equal arrays (different item)", // value1: [1, 2, 3], // value2: [1, 2, 4], // equal: false, // }, // { // description: "not equal arrays (different length)", // value1: [1, 2, 3], // value2: [1, 2], // equal: false, // }, { description: "equal arrays of objects", value1: [ ...Array.from({ length: 200000 }, (i) => ({ a: 1, b: 2, })), ], value2: [ ...Array.from({ length: 200000 }, (i) => ({ a: 1, b: 2, })), ], equal: true, }, { description: "equal objects", value1: { a: 1, b: 2, c: 3, d: 4, // get foo() { // return 1; // }, }, value2: { a: 1, b: 2, c: 3, d: 4, // get foo() { // return 1; // }, }, equal: true, }, { description: "equal sets", value1: d1, value2: d2, equal: true, }, // { // description: "not equal arrays of objects", // value1: [{ a: "a" }, { b: "b" }], // value2: [{ a: "a" }, { b: "c" }], // equal: false, // }, // { // description: "pseudo array and equivalent array are not equal", // value1: { 0: 0, 1: 1, length: 2 }, // value2: [0, 1], // equal: false, // }, ], }, { description: "Date objects", tests: [ { description: "equal date objects", value1: new Date("2017-06-16T21:36:48.362Z"), value2: new Date("2017-06-16T21:36:48.362Z"), equal: true, }, { description: "not equal date objects", value1: new Date("2017-06-16T21:36:48.362Z"), value2: new Date("2017-01-01T00:00:00.000Z"), equal: false, }, { description: "date and string are not equal", value1: new Date("2017-06-16T21:36:48.362Z"), value2: "2017-06-16T21:36:48.362Z", equal: false, }, { description: "date and object are not equal", value1: new Date("2017-06-16T21:36:48.362Z"), value2: {}, equal: false, }, ], }, { description: "RegExp objects", tests: [ { description: "equal RegExp objects", value1: /foo/, value2: /foo/, equal: true, }, { description: "not equal RegExp objects (different pattern)", value1: /foo/, value2: /bar/, equal: false, }, { description: "not equal RegExp objects (different flags)", value1: /foo/, value2: /foo/i, equal: false, }, { description: "RegExp and string are not equal", value1: /foo/, value2: "foo", equal: false, }, { description: "RegExp and object are not equal", value1: /foo/, value2: {}, equal: false, }, ], }, { description: "functions", tests: [ { description: "same function is equal", value1: func1, value2: func1, equal: true, }, { description: "different functions are not equal", value1: func1, value2: func2, equal: false, }, ], }, { description: "sample objects", tests: [ { description: "big object", value1: { prop1: "value1", prop2: "value2", prop3: "value3", prop4: { subProp1: "sub value1", subProp2: { subSubProp1: "sub sub value1", subSubProp2: [1, 2, { prop2: 1, prop: 2 }, 4, 5], }, }, prop5: 1000, // prop6: new Date(2016, 2, 10), }, value2: { prop5: 1000, prop3: "value3", prop1: "value1", prop2: "value2", // prop6: new Date(2016, 2, 10), prop4: { subProp2: { subSubProp1: "sub sub value1", subSubProp2: [1, 2, { prop2: 1, prop: 2 }, 4, 5], }, subProp1: "sub value1", }, }, equal: true, }, ], }, ]; for (let { tests, description } of fixture) { // if (description === "sample objects") { for (let { description: describe, value1, value2, equal } of tests) { var expected; group(describe, () => { for (let equalsFn of [Bun.deepEquals, fastDeepEquals]) { bench(equalsFn.name, () => { expected = equalsFn(value1, value2); if (expected !== equal) { throw new Error( `Expected ${expected} to be ${equal} for ${description}`, ); } }); } }); // } } } await run(); mpty-slots'>fix/empty-slots Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/packages/astro/test/fixtures/astro-partial-html/src/pages (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2022-05-12Serialize route generation (#3354)Gravatar Juan Martín Seery 5-59/+61
2022-05-12Corrected the default value of trailingSlash (#3353)Gravatar Rafid Muhymin Wafi 1-1/+1
2022-05-12[ci] formatGravatar matthewp 1-85/+78
2022-05-12Fixed search bar of the docs example not working (#3247)Gravatar Rafid Muhymin Wafi 1-76/+94
* fixed search bar not working * fixed search bar not working during build * fix search bar throwing error on production site
2022-05-12Add config option customPages (#3315)Gravatar Eloi-Perez 1-0/+14
* Add config option customPages Add config option customPages to be able to add custom URL pages to the sitemap.xml * add comment to document customPages option
2022-05-12fix: vite types (#3352)Gravatar Juan Martín Seery 4-5/+16
* Re-export vite types and added them to zod schema * Removed casted typed * Changeset
2022-05-12[ci] update lockfile (#3287)Gravatar Fred K. Schott 33-1038/+1096
* [ci] update lockfile * chore: fix lockfile * fix: pin turbo Co-authored-by: FredKSchott <FredKSchott@users.noreply.github.com> Co-authored-by: Nate Moore <nate@skypack.dev>
2022-05-12[ci] formatGravatar matthewp 2-2/+2
2022-05-12add error hints (#3350)Gravatar Fred K. Schott 3-0/+19
* add error hints * chore: add changeset Co-authored-by: Nate Moore <nate@skypack.dev>
2022-05-12[ci] formatGravatar matthewp 2-10/+6
2022-05-12Fix: React - Use "createRoot" instead of "hydrateRoot" for `client:only` (#3337)Gravatar Ben Holmes 4-22/+34
* feat: pass "client" directive to clientEntrypoints * refactor: remove hydration warning suppression react 17 * feat: remove hydration warning suppression react 18 * chore: changeset * fix: change metadata to options bag
2022-05-12[ci] formatGravatar matthewp 1-2/+8
2022-05-12Resolve components by module ID during compilation (#3300)Gravatar Tony Sullivan 22-41/+407
* WIP: adding test coverage * test fixes * moving the shared lib up a directory to reproduce the bug * fix: transform with the module ID instead of parsing the filepath * adding the shared lib to the workspaces list * fix: client-only assets now get the full URL from vite * why is this needed for windows? * WIP: using /@fs to handle windows filepaths * fix: remove /@fs from hoisted script imports * nit: removing unused imports * fix: strip off the path root when mapping client:only styles * had to reverse the `/@fs` handling to work on windows and unix * chore: adding comments to explain the fix * chore: adding changeset
2022-05-12[ci] collect statsGravatar FredKSchott 1-0/+1
2022-05-11Exclude `node-fetch` from vite.optimizeDeps (#3348)Gravatar Nate Moore 2-0/+6
* fix: exclude `node-fetch` from vite.optimizeDeps * chore: format
2022-05-11fix: updated blog template with existing address (#3312)Gravatar Gautier Ben Aïm 1-2/+2
2022-05-11refactor(vercel): Build Output API v3 (#3216)Gravatar Juan Martín Seery 42-231/+659
* Removed ignores * Migration to v3 * More changes * Remove legacy redirects * Fail when there is no ENABLE_VC_BUILD * Fix edge * Updated readme * Changeset * Added static mode * Updated documentation * Updated shim * Made edge work! * Updated changeset * Ensure empty dir * Fixed redirects for dynamic paths * Removed extra declaration * Splited imports * Updated readme * Fixed some urls * Deprecated shim! * [test]: Vercel NFT * Beautify * Edge bundle to node 14.19 Vercel runs 14.19.1 (I've checked it manually) * Re-added shim (#3304) * Added `node:` prefix * Use the same bundling as Deno for Edge * Remove esbuild * Fixed shim * Moved nft * Updated changeset * Added note about Edge * fix typo * Added support for Node 16 (vercel/vercel#7772)
2022-05-11Fix APIRoute type (#3344)Gravatar Matthew Phillips 3-11/+8
* Fix APIRoute type * Adds a changeset * Update usage of the two API route signatures
2022-05-11[create-astro] Finalize developer experience... with gradients 🚀 (#3313)Gravatar Ben Holmes 5-23/+123
* wip: port gradient helpers from sandbox ideas * feat: wire up rocket gradient 🚀 * feat: wire up rocket gradient on install step * refactor: update "next steps" wording * deps: add chalk (for rendering gradient) * chore: changeset * chore: clean up sstray template string