Skip to content

Instantly share code, notes, and snippets.

@academo
Created September 28, 2023 09:33
Show Gist options
  • Save academo/9173e0d8022fe2938cbdb5016a2a6de0 to your computer and use it in GitHub Desktop.
Save academo/9173e0d8022fe2938cbdb5016a2a6de0 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Direct vs proxies</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script>
<script src="./suite.js"></script>
</head>
<body>
<h1>Open the console to view the results</h1>
<h2><code>cmd + alt + j</code> or <code>ctrl + alt + j</code></h2>
</body>
</html>
"use strict";
(function (factory) {
if (typeof Benchmark !== "undefined") {
factory(Benchmark);
} else {
factory(require("benchmark"));
}
})(function (Benchmark) {
var suite = new Benchmark.Suite;
suite.add("const original = [", function () {
const original = [
{
"_id": "651541cddd87df12b14e4c71",
"index": 0,
"guid": "e0b1662e-ac55-48c7-a75a-5d1e3e8f9823",
"isActive": true,
"balance": "$1,938.95",
"picture": "http://placehold.it/32x32",
"age": 27,
"eyeColor": "green",
"name": "Daugherty Clarke",
"gender": "male",
"company": "QUIZKA",
"email": "daughertyclarke@quizka.com",
"phone": "+1 (922) 511-3471",
"address": "794 Moultrie Street, Summerset, Oregon, 4903",
"about": "Mollit aute velit reprehenderit nostrud. Nostrud ea ad veniam exercitation occaecat culpa aliqua Lorem pariatur aute cupidatat tempor. Dolore occaecat sit pariatur exercitation veniam ullamco do sit esse ullamco sunt velit. Do sunt nostrud labore tempor fugiat eu excepteur reprehenderit sit elit. Voluptate adipisicing excepteur aliqua ullamco elit aute. Do velit do amet Lorem id quis anim. Culpa sit excepteur minim veniam laborum commodo do eu sit.\r\n",
"registered": "2017-07-28T09:22:17 -02:00",
"latitude": -54.791812,
"longitude": 25.269584,
"tags": [
"enim",
"id",
"officia",
"occaecat",
"tempor",
"fugiat",
"eiusmod"
],
"friends": [
{
"id": 0,
"name": "Katy Harrington"
},
{
"id": 1,
"name": "Johnson Horn"
},
{
"id": 2,
"name": "Gayle Hines"
}
],
"greeting": "Hello, Daugherty Clarke! You have 2 unread messages.",
"favoriteFruit": "banana"
},
{
"_id": "651541cd230dd97b3faee8b9",
"index": 1,
"guid": "a7f690ed-e7a8-4c88-882d-096e109c565d",
"isActive": false,
"balance": "$1,850.80",
"picture": "http://placehold.it/32x32",
"age": 20,
"eyeColor": "blue",
"name": "Barlow Walter",
"gender": "male",
"company": "ZAYA",
"email": "barlowwalter@zaya.com",
"phone": "+1 (878) 448-3836",
"address": "467 Bills Place, Lacomb, Palau, 1140",
"about": "In exercitation velit non aliqua reprehenderit dolor. Enim velit proident commodo tempor velit officia ut. Proident quis esse anim commodo tempor aliqua. Dolore ad irure cupidatat enim incididunt eiusmod ullamco labore voluptate amet magna consequat.\r\n",
"registered": "2017-02-08T09:47:14 -01:00",
"latitude": -63.740352,
"longitude": 136.527168,
"tags": [
"occaecat",
"aliqua",
"fugiat",
"laborum",
"nisi",
"amet",
"magna"
],
"friends": [
{
"id": 0,
"name": "Erin Hopkins"
},
{
"id": 1,
"name": "Hunt Cooley"
},
{
"id": 2,
"name": "Wiggins Raymond"
}
],
"greeting": "Hello, Barlow Walter! You have 4 unread messages.",
"favoriteFruit": "strawberry"
},
{
"_id": "651541cde410051c55a50c40",
"index": 2,
"guid": "634893f4-c048-473a-9394-39b0a624dfcf",
"isActive": true,
"balance": "$3,033.13",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "blue",
"name": "Schroeder Sherman",
"gender": "male",
"company": "POLARIA",
"email": "schroedersherman@polaria.com",
"phone": "+1 (936) 532-2922",
"address": "749 Legion Street, Bluetown, Pennsylvania, 3667",
"about": "Irure labore quis Lorem ex fugiat aliqua est ut pariatur non do. Voluptate officia ex laboris nulla tempor. Sunt minim consequat nostrud aute aliqua consequat sit aliqua.\r\n",
"registered": "2015-05-02T12:49:35 -02:00",
"latitude": 10.211285,
"longitude": 4.996534,
"tags": [
"sit",
"amet",
"fugiat",
"ipsum",
"anim",
"do",
"pariatur"
],
"friends": [
{
"id": 0,
"name": "Genevieve Deleon"
},
{
"id": 1,
"name": "Webb Oneal"
},
{
"id": 2,
"name": "Mclaughlin Barr"
}
],
"greeting": "Hello, Schroeder Sherman! You have 4 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cde11f85a4f1f7dc9c",
"index": 3,
"guid": "6c18204e-7fbf-498d-bc2c-14e4c500b5f6",
"isActive": false,
"balance": "$1,480.68",
"picture": "http://placehold.it/32x32",
"age": 33,
"eyeColor": "green",
"name": "Hester Barron",
"gender": "male",
"company": "VALREDA",
"email": "hesterbarron@valreda.com",
"phone": "+1 (998) 464-3488",
"address": "400 Williams Court, Murillo, Utah, 3509",
"about": "Nostrud exercitation dolore Lorem quis ea mollit incididunt minim eiusmod excepteur exercitation labore non. Occaecat ullamco laborum minim pariatur. Ad enim aliqua irure laboris consequat elit duis enim tempor proident labore non mollit. Esse nostrud minim tempor reprehenderit aute mollit. Veniam labore cillum commodo elit aliqua sint exercitation eiusmod eiusmod. Ex do ut nulla id officia officia consequat reprehenderit laboris culpa aliquip aliquip. Occaecat dolor sint tempor et ipsum occaecat.\r\n",
"registered": "2020-01-29T07:03:16 -01:00",
"latitude": -30.313867,
"longitude": 107.211758,
"tags": [
"sint",
"sunt",
"eiusmod",
"ea",
"consectetur",
"sit",
"exercitation"
],
"friends": [
{
"id": 0,
"name": "Yvonne Barber"
},
{
"id": 1,
"name": "Duke Mcneil"
},
{
"id": 2,
"name": "Debbie Mccall"
}
],
"greeting": "Hello, Hester Barron! You have 8 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cd840e6edf25b1ebe5",
"index": 4,
"guid": "e69cf9eb-c402-4ea7-a7b9-8fc95ec658cd",
"isActive": false,
"balance": "$3,356.38",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "green",
"name": "Noreen Moore",
"gender": "female",
"company": "EZENT",
"email": "noreenmoore@ezent.com",
"phone": "+1 (814) 461-2976",
"address": "466 Noel Avenue, Waiohinu, New Jersey, 3514",
"about": "Adipisicing laboris elit dolore do ea ex cillum aliqua ipsum ut veniam eu enim proident. Dolor aute consectetur cillum anim cupidatat. Reprehenderit ut ex quis aliqua deserunt culpa enim non nisi id minim do qui. Do ad mollit commodo nulla sit irure. Aliquip cupidatat pariatur nostrud sunt veniam commodo. Amet minim nulla veniam pariatur.\r\n",
"registered": "2023-02-21T10:02:41 -01:00",
"latitude": -82.550602,
"longitude": -100.555255,
"tags": [
"nisi",
"quis",
"deserunt",
"cillum",
"adipisicing",
"quis",
"quis"
],
"friends": [
{
"id": 0,
"name": "Inez Valentine"
},
{
"id": 1,
"name": "Rose Irwin"
},
{
"id": 2,
"name": "Betty Mcconnell"
}
],
"greeting": "Hello, Noreen Moore! You have 5 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cd604a8fe9aff2305b",
"index": 5,
"guid": "517b1c32-b192-4023-a0f7-8dedd54fe74f",
"isActive": true,
"balance": "$3,594.98",
"picture": "http://placehold.it/32x32",
"age": 30,
"eyeColor": "blue",
"name": "Blevins Lynn",
"gender": "male",
"company": "IMAGINART",
"email": "blevinslynn@imaginart.com",
"phone": "+1 (949) 507-3255",
"address": "659 Kosciusko Street, Irwin, Washington, 3374",
"about": "Adipisicing cupidatat minim mollit minim et consequat incididunt id in voluptate. Voluptate qui proident qui aliquip labore. Enim amet dolor cupidatat magna velit consectetur ullamco laboris dolor cupidatat irure. Excepteur aute laborum laborum eiusmod incididunt.\r\n",
"registered": "2015-09-16T12:11:07 -02:00",
"latitude": 61.310245,
"longitude": 21.985807,
"tags": [
"ea",
"minim",
"occaecat",
"nulla",
"dolor",
"duis",
"minim"
],
"friends": [
{
"id": 0,
"name": "Tyler Cole"
},
{
"id": 1,
"name": "Black Diaz"
},
{
"id": 2,
"name": "Cox Yang"
}
],
"greeting": "Hello, Blevins Lynn! You have 7 unread messages.",
"favoriteFruit": "banana"
}
];
function printObject(obj) {
for (const prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
console.log(prop + ": " + obj[prop]);
if (obj[prop] instanceof Object) {
printObject(obj[prop]);
}
}
}
}
const iterateMe = original;
printObject(iterateMe);
});
suite.add("let proxyCache = new WeakMap();", function () {
let proxyCache = new WeakMap();
function createDeepOnChangeProxy(target, onChange) {
return new Proxy(target, {
get(target, property) {
const item = target[property];
if (item && typeof item === 'object') {
if (proxyCache.has(item)) return proxyCache.get(item);
const proxy = createDeepOnChangeProxy(item, onChange);
proxyCache.set(item, proxy);
return proxy;
}
return item;
},
});
}
const original = [
{
"_id": "651541cddd87df12b14e4c71",
"index": 0,
"guid": "e0b1662e-ac55-48c7-a75a-5d1e3e8f9823",
"isActive": true,
"balance": "$1,938.95",
"picture": "http://placehold.it/32x32",
"age": 27,
"eyeColor": "green",
"name": "Daugherty Clarke",
"gender": "male",
"company": "QUIZKA",
"email": "daughertyclarke@quizka.com",
"phone": "+1 (922) 511-3471",
"address": "794 Moultrie Street, Summerset, Oregon, 4903",
"about": "Mollit aute velit reprehenderit nostrud. Nostrud ea ad veniam exercitation occaecat culpa aliqua Lorem pariatur aute cupidatat tempor. Dolore occaecat sit pariatur exercitation veniam ullamco do sit esse ullamco sunt velit. Do sunt nostrud labore tempor fugiat eu excepteur reprehenderit sit elit. Voluptate adipisicing excepteur aliqua ullamco elit aute. Do velit do amet Lorem id quis anim. Culpa sit excepteur minim veniam laborum commodo do eu sit.\r\n",
"registered": "2017-07-28T09:22:17 -02:00",
"latitude": -54.791812,
"longitude": 25.269584,
"tags": [
"enim",
"id",
"officia",
"occaecat",
"tempor",
"fugiat",
"eiusmod"
],
"friends": [
{
"id": 0,
"name": "Katy Harrington"
},
{
"id": 1,
"name": "Johnson Horn"
},
{
"id": 2,
"name": "Gayle Hines"
}
],
"greeting": "Hello, Daugherty Clarke! You have 2 unread messages.",
"favoriteFruit": "banana"
},
{
"_id": "651541cd230dd97b3faee8b9",
"index": 1,
"guid": "a7f690ed-e7a8-4c88-882d-096e109c565d",
"isActive": false,
"balance": "$1,850.80",
"picture": "http://placehold.it/32x32",
"age": 20,
"eyeColor": "blue",
"name": "Barlow Walter",
"gender": "male",
"company": "ZAYA",
"email": "barlowwalter@zaya.com",
"phone": "+1 (878) 448-3836",
"address": "467 Bills Place, Lacomb, Palau, 1140",
"about": "In exercitation velit non aliqua reprehenderit dolor. Enim velit proident commodo tempor velit officia ut. Proident quis esse anim commodo tempor aliqua. Dolore ad irure cupidatat enim incididunt eiusmod ullamco labore voluptate amet magna consequat.\r\n",
"registered": "2017-02-08T09:47:14 -01:00",
"latitude": -63.740352,
"longitude": 136.527168,
"tags": [
"occaecat",
"aliqua",
"fugiat",
"laborum",
"nisi",
"amet",
"magna"
],
"friends": [
{
"id": 0,
"name": "Erin Hopkins"
},
{
"id": 1,
"name": "Hunt Cooley"
},
{
"id": 2,
"name": "Wiggins Raymond"
}
],
"greeting": "Hello, Barlow Walter! You have 4 unread messages.",
"favoriteFruit": "strawberry"
},
{
"_id": "651541cde410051c55a50c40",
"index": 2,
"guid": "634893f4-c048-473a-9394-39b0a624dfcf",
"isActive": true,
"balance": "$3,033.13",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "blue",
"name": "Schroeder Sherman",
"gender": "male",
"company": "POLARIA",
"email": "schroedersherman@polaria.com",
"phone": "+1 (936) 532-2922",
"address": "749 Legion Street, Bluetown, Pennsylvania, 3667",
"about": "Irure labore quis Lorem ex fugiat aliqua est ut pariatur non do. Voluptate officia ex laboris nulla tempor. Sunt minim consequat nostrud aute aliqua consequat sit aliqua.\r\n",
"registered": "2015-05-02T12:49:35 -02:00",
"latitude": 10.211285,
"longitude": 4.996534,
"tags": [
"sit",
"amet",
"fugiat",
"ipsum",
"anim",
"do",
"pariatur"
],
"friends": [
{
"id": 0,
"name": "Genevieve Deleon"
},
{
"id": 1,
"name": "Webb Oneal"
},
{
"id": 2,
"name": "Mclaughlin Barr"
}
],
"greeting": "Hello, Schroeder Sherman! You have 4 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cde11f85a4f1f7dc9c",
"index": 3,
"guid": "6c18204e-7fbf-498d-bc2c-14e4c500b5f6",
"isActive": false,
"balance": "$1,480.68",
"picture": "http://placehold.it/32x32",
"age": 33,
"eyeColor": "green",
"name": "Hester Barron",
"gender": "male",
"company": "VALREDA",
"email": "hesterbarron@valreda.com",
"phone": "+1 (998) 464-3488",
"address": "400 Williams Court, Murillo, Utah, 3509",
"about": "Nostrud exercitation dolore Lorem quis ea mollit incididunt minim eiusmod excepteur exercitation labore non. Occaecat ullamco laborum minim pariatur. Ad enim aliqua irure laboris consequat elit duis enim tempor proident labore non mollit. Esse nostrud minim tempor reprehenderit aute mollit. Veniam labore cillum commodo elit aliqua sint exercitation eiusmod eiusmod. Ex do ut nulla id officia officia consequat reprehenderit laboris culpa aliquip aliquip. Occaecat dolor sint tempor et ipsum occaecat.\r\n",
"registered": "2020-01-29T07:03:16 -01:00",
"latitude": -30.313867,
"longitude": 107.211758,
"tags": [
"sint",
"sunt",
"eiusmod",
"ea",
"consectetur",
"sit",
"exercitation"
],
"friends": [
{
"id": 0,
"name": "Yvonne Barber"
},
{
"id": 1,
"name": "Duke Mcneil"
},
{
"id": 2,
"name": "Debbie Mccall"
}
],
"greeting": "Hello, Hester Barron! You have 8 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cd840e6edf25b1ebe5",
"index": 4,
"guid": "e69cf9eb-c402-4ea7-a7b9-8fc95ec658cd",
"isActive": false,
"balance": "$3,356.38",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "green",
"name": "Noreen Moore",
"gender": "female",
"company": "EZENT",
"email": "noreenmoore@ezent.com",
"phone": "+1 (814) 461-2976",
"address": "466 Noel Avenue, Waiohinu, New Jersey, 3514",
"about": "Adipisicing laboris elit dolore do ea ex cillum aliqua ipsum ut veniam eu enim proident. Dolor aute consectetur cillum anim cupidatat. Reprehenderit ut ex quis aliqua deserunt culpa enim non nisi id minim do qui. Do ad mollit commodo nulla sit irure. Aliquip cupidatat pariatur nostrud sunt veniam commodo. Amet minim nulla veniam pariatur.\r\n",
"registered": "2023-02-21T10:02:41 -01:00",
"latitude": -82.550602,
"longitude": -100.555255,
"tags": [
"nisi",
"quis",
"deserunt",
"cillum",
"adipisicing",
"quis",
"quis"
],
"friends": [
{
"id": 0,
"name": "Inez Valentine"
},
{
"id": 1,
"name": "Rose Irwin"
},
{
"id": 2,
"name": "Betty Mcconnell"
}
],
"greeting": "Hello, Noreen Moore! You have 5 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cd604a8fe9aff2305b",
"index": 5,
"guid": "517b1c32-b192-4023-a0f7-8dedd54fe74f",
"isActive": true,
"balance": "$3,594.98",
"picture": "http://placehold.it/32x32",
"age": 30,
"eyeColor": "blue",
"name": "Blevins Lynn",
"gender": "male",
"company": "IMAGINART",
"email": "blevinslynn@imaginart.com",
"phone": "+1 (949) 507-3255",
"address": "659 Kosciusko Street, Irwin, Washington, 3374",
"about": "Adipisicing cupidatat minim mollit minim et consequat incididunt id in voluptate. Voluptate qui proident qui aliquip labore. Enim amet dolor cupidatat magna velit consectetur ullamco laboris dolor cupidatat irure. Excepteur aute laborum laborum eiusmod incididunt.\r\n",
"registered": "2015-09-16T12:11:07 -02:00",
"latitude": 61.310245,
"longitude": 21.985807,
"tags": [
"ea",
"minim",
"occaecat",
"nulla",
"dolor",
"duis",
"minim"
],
"friends": [
{
"id": 0,
"name": "Tyler Cole"
},
{
"id": 1,
"name": "Black Diaz"
},
{
"id": 2,
"name": "Cox Yang"
}
],
"greeting": "Hello, Blevins Lynn! You have 7 unread messages.",
"favoriteFruit": "banana"
}
];
function printObject(obj) {
for (const prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
console.log(prop + ": " + obj[prop]);
if (obj[prop] instanceof Object) {
printObject(obj[prop]);
}
}
}
}
const iterateMe = createDeepOnChangeProxy(original);
printObject(iterateMe);
});
suite.add("let proxyCache = new WeakMap();", function () {
let proxyCache = new WeakMap();
function createDeepOnChangeProxy(target, onChange) {
return new Proxy(target, {
get(target, property) {
const item = Reflect.get(target, property);
if (item && typeof item === 'object') {
if (proxyCache.has(item)) return proxyCache.get(item);
const proxy = createDeepOnChangeProxy(item, onChange);
proxyCache.set(item, proxy);
return proxy;
}
return item;
},
});
}
const original = [
{
"_id": "651541cddd87df12b14e4c71",
"index": 0,
"guid": "e0b1662e-ac55-48c7-a75a-5d1e3e8f9823",
"isActive": true,
"balance": "$1,938.95",
"picture": "http://placehold.it/32x32",
"age": 27,
"eyeColor": "green",
"name": "Daugherty Clarke",
"gender": "male",
"company": "QUIZKA",
"email": "daughertyclarke@quizka.com",
"phone": "+1 (922) 511-3471",
"address": "794 Moultrie Street, Summerset, Oregon, 4903",
"about": "Mollit aute velit reprehenderit nostrud. Nostrud ea ad veniam exercitation occaecat culpa aliqua Lorem pariatur aute cupidatat tempor. Dolore occaecat sit pariatur exercitation veniam ullamco do sit esse ullamco sunt velit. Do sunt nostrud labore tempor fugiat eu excepteur reprehenderit sit elit. Voluptate adipisicing excepteur aliqua ullamco elit aute. Do velit do amet Lorem id quis anim. Culpa sit excepteur minim veniam laborum commodo do eu sit.\r\n",
"registered": "2017-07-28T09:22:17 -02:00",
"latitude": -54.791812,
"longitude": 25.269584,
"tags": [
"enim",
"id",
"officia",
"occaecat",
"tempor",
"fugiat",
"eiusmod"
],
"friends": [
{
"id": 0,
"name": "Katy Harrington"
},
{
"id": 1,
"name": "Johnson Horn"
},
{
"id": 2,
"name": "Gayle Hines"
}
],
"greeting": "Hello, Daugherty Clarke! You have 2 unread messages.",
"favoriteFruit": "banana"
},
{
"_id": "651541cd230dd97b3faee8b9",
"index": 1,
"guid": "a7f690ed-e7a8-4c88-882d-096e109c565d",
"isActive": false,
"balance": "$1,850.80",
"picture": "http://placehold.it/32x32",
"age": 20,
"eyeColor": "blue",
"name": "Barlow Walter",
"gender": "male",
"company": "ZAYA",
"email": "barlowwalter@zaya.com",
"phone": "+1 (878) 448-3836",
"address": "467 Bills Place, Lacomb, Palau, 1140",
"about": "In exercitation velit non aliqua reprehenderit dolor. Enim velit proident commodo tempor velit officia ut. Proident quis esse anim commodo tempor aliqua. Dolore ad irure cupidatat enim incididunt eiusmod ullamco labore voluptate amet magna consequat.\r\n",
"registered": "2017-02-08T09:47:14 -01:00",
"latitude": -63.740352,
"longitude": 136.527168,
"tags": [
"occaecat",
"aliqua",
"fugiat",
"laborum",
"nisi",
"amet",
"magna"
],
"friends": [
{
"id": 0,
"name": "Erin Hopkins"
},
{
"id": 1,
"name": "Hunt Cooley"
},
{
"id": 2,
"name": "Wiggins Raymond"
}
],
"greeting": "Hello, Barlow Walter! You have 4 unread messages.",
"favoriteFruit": "strawberry"
},
{
"_id": "651541cde410051c55a50c40",
"index": 2,
"guid": "634893f4-c048-473a-9394-39b0a624dfcf",
"isActive": true,
"balance": "$3,033.13",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "blue",
"name": "Schroeder Sherman",
"gender": "male",
"company": "POLARIA",
"email": "schroedersherman@polaria.com",
"phone": "+1 (936) 532-2922",
"address": "749 Legion Street, Bluetown, Pennsylvania, 3667",
"about": "Irure labore quis Lorem ex fugiat aliqua est ut pariatur non do. Voluptate officia ex laboris nulla tempor. Sunt minim consequat nostrud aute aliqua consequat sit aliqua.\r\n",
"registered": "2015-05-02T12:49:35 -02:00",
"latitude": 10.211285,
"longitude": 4.996534,
"tags": [
"sit",
"amet",
"fugiat",
"ipsum",
"anim",
"do",
"pariatur"
],
"friends": [
{
"id": 0,
"name": "Genevieve Deleon"
},
{
"id": 1,
"name": "Webb Oneal"
},
{
"id": 2,
"name": "Mclaughlin Barr"
}
],
"greeting": "Hello, Schroeder Sherman! You have 4 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cde11f85a4f1f7dc9c",
"index": 3,
"guid": "6c18204e-7fbf-498d-bc2c-14e4c500b5f6",
"isActive": false,
"balance": "$1,480.68",
"picture": "http://placehold.it/32x32",
"age": 33,
"eyeColor": "green",
"name": "Hester Barron",
"gender": "male",
"company": "VALREDA",
"email": "hesterbarron@valreda.com",
"phone": "+1 (998) 464-3488",
"address": "400 Williams Court, Murillo, Utah, 3509",
"about": "Nostrud exercitation dolore Lorem quis ea mollit incididunt minim eiusmod excepteur exercitation labore non. Occaecat ullamco laborum minim pariatur. Ad enim aliqua irure laboris consequat elit duis enim tempor proident labore non mollit. Esse nostrud minim tempor reprehenderit aute mollit. Veniam labore cillum commodo elit aliqua sint exercitation eiusmod eiusmod. Ex do ut nulla id officia officia consequat reprehenderit laboris culpa aliquip aliquip. Occaecat dolor sint tempor et ipsum occaecat.\r\n",
"registered": "2020-01-29T07:03:16 -01:00",
"latitude": -30.313867,
"longitude": 107.211758,
"tags": [
"sint",
"sunt",
"eiusmod",
"ea",
"consectetur",
"sit",
"exercitation"
],
"friends": [
{
"id": 0,
"name": "Yvonne Barber"
},
{
"id": 1,
"name": "Duke Mcneil"
},
{
"id": 2,
"name": "Debbie Mccall"
}
],
"greeting": "Hello, Hester Barron! You have 8 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cd840e6edf25b1ebe5",
"index": 4,
"guid": "e69cf9eb-c402-4ea7-a7b9-8fc95ec658cd",
"isActive": false,
"balance": "$3,356.38",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "green",
"name": "Noreen Moore",
"gender": "female",
"company": "EZENT",
"email": "noreenmoore@ezent.com",
"phone": "+1 (814) 461-2976",
"address": "466 Noel Avenue, Waiohinu, New Jersey, 3514",
"about": "Adipisicing laboris elit dolore do ea ex cillum aliqua ipsum ut veniam eu enim proident. Dolor aute consectetur cillum anim cupidatat. Reprehenderit ut ex quis aliqua deserunt culpa enim non nisi id minim do qui. Do ad mollit commodo nulla sit irure. Aliquip cupidatat pariatur nostrud sunt veniam commodo. Amet minim nulla veniam pariatur.\r\n",
"registered": "2023-02-21T10:02:41 -01:00",
"latitude": -82.550602,
"longitude": -100.555255,
"tags": [
"nisi",
"quis",
"deserunt",
"cillum",
"adipisicing",
"quis",
"quis"
],
"friends": [
{
"id": 0,
"name": "Inez Valentine"
},
{
"id": 1,
"name": "Rose Irwin"
},
{
"id": 2,
"name": "Betty Mcconnell"
}
],
"greeting": "Hello, Noreen Moore! You have 5 unread messages.",
"favoriteFruit": "apple"
},
{
"_id": "651541cd604a8fe9aff2305b",
"index": 5,
"guid": "517b1c32-b192-4023-a0f7-8dedd54fe74f",
"isActive": true,
"balance": "$3,594.98",
"picture": "http://placehold.it/32x32",
"age": 30,
"eyeColor": "blue",
"name": "Blevins Lynn",
"gender": "male",
"company": "IMAGINART",
"email": "blevinslynn@imaginart.com",
"phone": "+1 (949) 507-3255",
"address": "659 Kosciusko Street, Irwin, Washington, 3374",
"about": "Adipisicing cupidatat minim mollit minim et consequat incididunt id in voluptate. Voluptate qui proident qui aliquip labore. Enim amet dolor cupidatat magna velit consectetur ullamco laboris dolor cupidatat irure. Excepteur aute laborum laborum eiusmod incididunt.\r\n",
"registered": "2015-09-16T12:11:07 -02:00",
"latitude": 61.310245,
"longitude": 21.985807,
"tags": [
"ea",
"minim",
"occaecat",
"nulla",
"dolor",
"duis",
"minim"
],
"friends": [
{
"id": 0,
"name": "Tyler Cole"
},
{
"id": 1,
"name": "Black Diaz"
},
{
"id": 2,
"name": "Cox Yang"
}
],
"greeting": "Hello, Blevins Lynn! You have 7 unread messages.",
"favoriteFruit": "banana"
}
];
function printObject(obj) {
for (const prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
console.log(prop + ": " + obj[prop]);
if (obj[prop] instanceof Object) {
printObject(obj[prop]);
}
}
}
}
const iterateMe = createDeepOnChangeProxy(original);
printObject(iterateMe);
});
suite.on("cycle", function (evt) {
console.log(" - " + evt.target);
});
suite.on("complete", function (evt) {
console.log(new Array(30).join("-"));
var results = evt.currentTarget.sort(function (a, b) {
return b.hz - a.hz;
});
results.forEach(function (item) {
console.log((idx + 1) + ". " + item);
});
});
console.log("Direct vs proxies");
console.log(new Array(30).join("-"));
suite.run();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment