bench data
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,6 +2,8 @@
|
|||||||
zig-out/
|
zig-out/
|
||||||
zig-cache/
|
zig-cache/
|
||||||
.zig-cache/
|
.zig-cache/
|
||||||
|
.pugz-cache/
|
||||||
|
node_modules
|
||||||
|
|
||||||
# IDE
|
# IDE
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|||||||
86
src/benchmarks/pugjs/bench.js
Normal file
86
src/benchmarks/pugjs/bench.js
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
/**
|
||||||
|
* Pug.js Benchmark - Comparison with Pugz
|
||||||
|
*
|
||||||
|
* Run: npm install && npm run bench
|
||||||
|
*
|
||||||
|
* Both Pug.js and Pugz benchmarks read from the same files:
|
||||||
|
* ../templates/*.pug (templates)
|
||||||
|
* ../templates/*.json (data)
|
||||||
|
*/
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const pug = require('pug');
|
||||||
|
|
||||||
|
const iterations = 2000;
|
||||||
|
const templatesDir = path.join(__dirname, '..', 'templates');
|
||||||
|
|
||||||
|
const benchmarks = [
|
||||||
|
'simple-0',
|
||||||
|
'simple-1',
|
||||||
|
'simple-2',
|
||||||
|
'if-expression',
|
||||||
|
'projects-escaped',
|
||||||
|
'search-results',
|
||||||
|
'friends',
|
||||||
|
];
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// Load templates and data from shared files BEFORE benchmarking
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
console.log("");
|
||||||
|
console.log("Loading templates and data...");
|
||||||
|
|
||||||
|
const templates = {};
|
||||||
|
const data = {};
|
||||||
|
|
||||||
|
for (const name of benchmarks) {
|
||||||
|
templates[name] = fs.readFileSync(path.join(templatesDir, `${name}.pug`), 'utf8');
|
||||||
|
data[name] = JSON.parse(fs.readFileSync(path.join(templatesDir, `${name}.json`), 'utf8'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compile all templates BEFORE benchmarking
|
||||||
|
const compiled = {};
|
||||||
|
for (const name of benchmarks) {
|
||||||
|
compiled[name] = pug.compile(templates[name], { pretty: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("Templates compiled. Starting benchmark...\n");
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// Benchmark
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
console.log("╔═══════════════════════════════════════════════════════════════╗");
|
||||||
|
console.log(`║ Pug.js Benchmark (${iterations} iterations) ║`);
|
||||||
|
console.log("║ Templates: src/benchmarks/templates/*.pug ║");
|
||||||
|
console.log("║ Data: src/benchmarks/templates/*.json ║");
|
||||||
|
console.log("╚═══════════════════════════════════════════════════════════════╝");
|
||||||
|
|
||||||
|
let total = 0;
|
||||||
|
|
||||||
|
for (const name of benchmarks) {
|
||||||
|
const compiledFn = compiled[name];
|
||||||
|
const templateData = data[name];
|
||||||
|
|
||||||
|
// Warmup
|
||||||
|
for (let i = 0; i < 100; i++) {
|
||||||
|
compiledFn(templateData);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Benchmark
|
||||||
|
const start = process.hrtime.bigint();
|
||||||
|
for (let i = 0; i < iterations; i++) {
|
||||||
|
compiledFn(templateData);
|
||||||
|
}
|
||||||
|
const end = process.hrtime.bigint();
|
||||||
|
|
||||||
|
const ms = Number(end - start) / 1_000_000;
|
||||||
|
total += ms;
|
||||||
|
console.log(` ${name.padEnd(20)} => ${ms.toFixed(1).padStart(7)}ms`);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("");
|
||||||
|
console.log(` ${"TOTAL".padEnd(20)} => ${total.toFixed(1).padStart(7)}ms`);
|
||||||
|
console.log("");
|
||||||
576
src/benchmarks/pugjs/package-lock.json
generated
Normal file
576
src/benchmarks/pugjs/package-lock.json
generated
Normal file
@@ -0,0 +1,576 @@
|
|||||||
|
{
|
||||||
|
"name": "pugjs-benchmark",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "pugjs-benchmark",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"pug": "^3.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-string-parser": {
|
||||||
|
"version": "7.27.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
|
||||||
|
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-validator-identifier": {
|
||||||
|
"version": "7.28.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
|
||||||
|
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/parser": {
|
||||||
|
"version": "7.28.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz",
|
||||||
|
"integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/types": "^7.28.6"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"parser": "bin/babel-parser.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/types": {
|
||||||
|
"version": "7.28.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz",
|
||||||
|
"integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-string-parser": "^7.27.1",
|
||||||
|
"@babel/helper-validator-identifier": "^7.28.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/acorn": {
|
||||||
|
"version": "7.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
|
||||||
|
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"acorn": "bin/acorn"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/asap": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||||
|
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/assert-never": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/babel-walk": {
|
||||||
|
"version": "3.0.0-canary-5",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
||||||
|
"integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/types": "^7.9.6"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/call-bind-apply-helpers": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"es-errors": "^1.3.0",
|
||||||
|
"function-bind": "^1.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/call-bound": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bind-apply-helpers": "^1.0.2",
|
||||||
|
"get-intrinsic": "^1.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/character-parser": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-regex": "^1.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/constantinople": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/parser": "^7.6.0",
|
||||||
|
"@babel/types": "^7.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/doctypes": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/dunder-proto": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bind-apply-helpers": "^1.0.1",
|
||||||
|
"es-errors": "^1.3.0",
|
||||||
|
"gopd": "^1.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/es-define-property": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/es-errors": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/es-object-atoms": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"es-errors": "^1.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/function-bind": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/get-intrinsic": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bind-apply-helpers": "^1.0.2",
|
||||||
|
"es-define-property": "^1.0.1",
|
||||||
|
"es-errors": "^1.3.0",
|
||||||
|
"es-object-atoms": "^1.1.1",
|
||||||
|
"function-bind": "^1.1.2",
|
||||||
|
"get-proto": "^1.0.1",
|
||||||
|
"gopd": "^1.2.0",
|
||||||
|
"has-symbols": "^1.1.0",
|
||||||
|
"hasown": "^2.0.2",
|
||||||
|
"math-intrinsics": "^1.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/get-proto": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"dunder-proto": "^1.0.1",
|
||||||
|
"es-object-atoms": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gopd": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/has-symbols": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/has-tostringtag": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"has-symbols": "^1.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/hasown": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"function-bind": "^1.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-core-module": {
|
||||||
|
"version": "2.16.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
|
||||||
|
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"hasown": "^2.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-expression": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"acorn": "^7.1.1",
|
||||||
|
"object-assign": "^4.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-promise": {
|
||||||
|
"version": "2.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
||||||
|
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/is-regex": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bound": "^1.0.2",
|
||||||
|
"gopd": "^1.2.0",
|
||||||
|
"has-tostringtag": "^1.0.2",
|
||||||
|
"hasown": "^2.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/js-stringify": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/jstransformer": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-promise": "^2.0.0",
|
||||||
|
"promise": "^7.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/math-intrinsics": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/object-assign": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/path-parse": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/promise": {
|
||||||
|
"version": "7.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
||||||
|
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"asap": "~2.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pug-code-gen": "^3.0.3",
|
||||||
|
"pug-filters": "^4.0.0",
|
||||||
|
"pug-lexer": "^5.0.1",
|
||||||
|
"pug-linker": "^4.0.0",
|
||||||
|
"pug-load": "^3.0.0",
|
||||||
|
"pug-parser": "^6.0.0",
|
||||||
|
"pug-runtime": "^3.0.1",
|
||||||
|
"pug-strip-comments": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-attrs": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"constantinople": "^4.0.1",
|
||||||
|
"js-stringify": "^1.0.2",
|
||||||
|
"pug-runtime": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-code-gen": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"constantinople": "^4.0.1",
|
||||||
|
"doctypes": "^1.1.0",
|
||||||
|
"js-stringify": "^1.0.2",
|
||||||
|
"pug-attrs": "^3.0.0",
|
||||||
|
"pug-error": "^2.1.0",
|
||||||
|
"pug-runtime": "^3.0.1",
|
||||||
|
"void-elements": "^3.1.0",
|
||||||
|
"with": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-error": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/pug-filters": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"constantinople": "^4.0.1",
|
||||||
|
"jstransformer": "1.0.0",
|
||||||
|
"pug-error": "^2.0.0",
|
||||||
|
"pug-walk": "^2.0.0",
|
||||||
|
"resolve": "^1.15.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-lexer": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"character-parser": "^2.2.0",
|
||||||
|
"is-expression": "^4.0.0",
|
||||||
|
"pug-error": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-linker": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pug-error": "^2.0.0",
|
||||||
|
"pug-walk": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-load": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"object-assign": "^4.1.1",
|
||||||
|
"pug-walk": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-parser": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pug-error": "^2.0.0",
|
||||||
|
"token-stream": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-runtime": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/pug-strip-comments": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pug-error": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pug-walk": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/resolve": {
|
||||||
|
"version": "1.22.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
|
||||||
|
"integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-core-module": "^2.16.1",
|
||||||
|
"path-parse": "^1.0.7",
|
||||||
|
"supports-preserve-symlinks-flag": "^1.0.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"resolve": "bin/resolve"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/supports-preserve-symlinks-flag": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/token-stream": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/void-elements": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/with": {
|
||||||
|
"version": "7.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
|
||||||
|
"integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/parser": "^7.9.6",
|
||||||
|
"@babel/types": "^7.9.6",
|
||||||
|
"assert-never": "^1.2.1",
|
||||||
|
"babel-walk": "3.0.0-canary-5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
12
src/benchmarks/pugjs/package.json
Normal file
12
src/benchmarks/pugjs/package.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "pugjs-benchmark",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Pug.js benchmark for comparison with Pugz",
|
||||||
|
"main": "bench.js",
|
||||||
|
"scripts": {
|
||||||
|
"bench": "node bench.js"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"pug": "^3.0.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
3064
src/benchmarks/templates/friends.json
Normal file
3064
src/benchmarks/templates/friends.json
Normal file
File diff suppressed because it is too large
Load Diff
28
src/benchmarks/templates/if-expression.json
Normal file
28
src/benchmarks/templates/if-expression.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"accounts": [
|
||||||
|
{
|
||||||
|
"balance": 0,
|
||||||
|
"balanceFormatted": "$0.00",
|
||||||
|
"status": "open",
|
||||||
|
"negative": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"balance": 10,
|
||||||
|
"balanceFormatted": "$10.00",
|
||||||
|
"status": "closed",
|
||||||
|
"negative": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"balance": -100,
|
||||||
|
"balanceFormatted": "$-100.00",
|
||||||
|
"status": "suspended",
|
||||||
|
"negative": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"balance": 999,
|
||||||
|
"balanceFormatted": "$999.00",
|
||||||
|
"status": "open",
|
||||||
|
"negative": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
41
src/benchmarks/templates/projects-escaped.json
Normal file
41
src/benchmarks/templates/projects-escaped.json
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"title": "Projects",
|
||||||
|
"text": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>",
|
||||||
|
"projects": [
|
||||||
|
{
|
||||||
|
"name": "<strong>Facebook</strong>",
|
||||||
|
"url": "http://facebook.com",
|
||||||
|
"description": "Social network"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "<strong>Google</strong>",
|
||||||
|
"url": "http://google.com",
|
||||||
|
"description": "Search engine"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "<strong>Twitter</strong>",
|
||||||
|
"url": "http://twitter.com",
|
||||||
|
"description": "Microblogging service"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "<strong>Amazon</strong>",
|
||||||
|
"url": "http://amazon.com",
|
||||||
|
"description": "Online retailer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "<strong>eBay</strong>",
|
||||||
|
"url": "http://ebay.com",
|
||||||
|
"description": "Online auction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "<strong>Wikipedia</strong>",
|
||||||
|
"url": "http://wikipedia.org",
|
||||||
|
"description": "A free encyclopedia"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "<strong>LiveJournal</strong>",
|
||||||
|
"url": "http://livejournal.com",
|
||||||
|
"description": "Blogging platform"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
278
src/benchmarks/templates/search-results.json
Normal file
278
src/benchmarks/templates/search-results.json
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
{
|
||||||
|
"searchRecords": [
|
||||||
|
{
|
||||||
|
"imgUrl": "img1.jpg",
|
||||||
|
"viewItemUrl": "http://foo/1",
|
||||||
|
"title": "Namebox",
|
||||||
|
"description": "Duis laborum nostrud consectetur exercitation minim ad laborum velit adipisicing.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img2.jpg",
|
||||||
|
"viewItemUrl": "http://foo/2",
|
||||||
|
"title": "Arctiq",
|
||||||
|
"description": "Incididunt ea mollit commodo velit officia. Enim officia occaecat nulla aute.",
|
||||||
|
"featured": false,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img3.jpg",
|
||||||
|
"viewItemUrl": "http://foo/3",
|
||||||
|
"title": "Niquent",
|
||||||
|
"description": "Aliquip Lorem consequat sunt ipsum dolor amet amet cupidatat deserunt eiusmod.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img4.jpg",
|
||||||
|
"viewItemUrl": "http://foo/4",
|
||||||
|
"title": "Remotion",
|
||||||
|
"description": "Est ad amet irure veniam dolore velit amet irure fugiat ut elit.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img5.jpg",
|
||||||
|
"viewItemUrl": "http://foo/5",
|
||||||
|
"title": "Octocore",
|
||||||
|
"description": "Sunt ex magna culpa cillum esse irure consequat Lorem aliquip enim sit.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img6.jpg",
|
||||||
|
"viewItemUrl": "http://foo/6",
|
||||||
|
"title": "Spherix",
|
||||||
|
"description": "Duis laborum nostrud consectetur exercitation minim ad laborum velit adipisicing.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img7.jpg",
|
||||||
|
"viewItemUrl": "http://foo/7",
|
||||||
|
"title": "Quarex",
|
||||||
|
"description": "Incididunt ea mollit commodo velit officia. Enim officia occaecat nulla aute.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img8.jpg",
|
||||||
|
"viewItemUrl": "http://foo/8",
|
||||||
|
"title": "Supremia",
|
||||||
|
"description": "Aliquip Lorem consequat sunt ipsum dolor amet amet cupidatat deserunt eiusmod.",
|
||||||
|
"featured": false,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img9.jpg",
|
||||||
|
"viewItemUrl": "http://foo/9",
|
||||||
|
"title": "Amtap",
|
||||||
|
"description": "Est ad amet irure veniam dolore velit amet irure fugiat ut elit.",
|
||||||
|
"featured": false,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img10.jpg",
|
||||||
|
"viewItemUrl": "http://foo/10",
|
||||||
|
"title": "Qiao",
|
||||||
|
"description": "Sunt ex magna culpa cillum esse irure consequat Lorem aliquip enim sit.",
|
||||||
|
"featured": false,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img11.jpg",
|
||||||
|
"viewItemUrl": "http://foo/11",
|
||||||
|
"title": "Pushcart",
|
||||||
|
"description": "Duis laborum nostrud consectetur exercitation minim ad laborum velit adipisicing.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img12.jpg",
|
||||||
|
"viewItemUrl": "http://foo/12",
|
||||||
|
"title": "Eweville",
|
||||||
|
"description": "Incididunt ea mollit commodo velit officia. Enim officia occaecat nulla aute.",
|
||||||
|
"featured": false,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img13.jpg",
|
||||||
|
"viewItemUrl": "http://foo/13",
|
||||||
|
"title": "Senmei",
|
||||||
|
"description": "Aliquip Lorem consequat sunt ipsum dolor amet amet cupidatat deserunt eiusmod.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img14.jpg",
|
||||||
|
"viewItemUrl": "http://foo/14",
|
||||||
|
"title": "Maximind",
|
||||||
|
"description": "Est ad amet irure veniam dolore velit amet irure fugiat ut elit.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img15.jpg",
|
||||||
|
"viewItemUrl": "http://foo/15",
|
||||||
|
"title": "Blurrybus",
|
||||||
|
"description": "Sunt ex magna culpa cillum esse irure consequat Lorem aliquip enim sit.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img16.jpg",
|
||||||
|
"viewItemUrl": "http://foo/16",
|
||||||
|
"title": "Virva",
|
||||||
|
"description": "Duis laborum nostrud consectetur exercitation minim ad laborum velit adipisicing.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img17.jpg",
|
||||||
|
"viewItemUrl": "http://foo/17",
|
||||||
|
"title": "Centregy",
|
||||||
|
"description": "Incididunt ea mollit commodo velit officia. Enim officia occaecat nulla aute.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img18.jpg",
|
||||||
|
"viewItemUrl": "http://foo/18",
|
||||||
|
"title": "Dancerity",
|
||||||
|
"description": "Aliquip Lorem consequat sunt ipsum dolor amet amet cupidatat deserunt eiusmod.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img19.jpg",
|
||||||
|
"viewItemUrl": "http://foo/19",
|
||||||
|
"title": "Oceanica",
|
||||||
|
"description": "Est ad amet irure veniam dolore velit amet irure fugiat ut elit.",
|
||||||
|
"featured": true,
|
||||||
|
"sizes": [
|
||||||
|
"S",
|
||||||
|
"M",
|
||||||
|
"L",
|
||||||
|
"XL",
|
||||||
|
"XXL"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"imgUrl": "img20.jpg",
|
||||||
|
"viewItemUrl": "http://foo/20",
|
||||||
|
"title": "Synkgen",
|
||||||
|
"description": "Sunt ex magna culpa cillum esse irure consequat Lorem aliquip enim sit.",
|
||||||
|
"featured": false,
|
||||||
|
"sizes": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,19 +1,3 @@
|
|||||||
.search-results-container
|
|
||||||
.searching#searching
|
|
||||||
.wait-indicator-icon Searching...
|
|
||||||
#resultsContainer
|
|
||||||
.hd
|
|
||||||
span.count
|
|
||||||
span#count= totalCount
|
|
||||||
| results
|
|
||||||
.view-modifiers
|
|
||||||
.view-select
|
|
||||||
| View:
|
|
||||||
.view-icon.view-icon-selected#viewIconGallery
|
|
||||||
i.icon-th
|
|
||||||
.view-icon#viewIconList
|
|
||||||
i.icon-th-list
|
|
||||||
#resultsTarget
|
|
||||||
.search-results.view-gallery
|
.search-results.view-gallery
|
||||||
each searchRecord in searchRecords
|
each searchRecord in searchRecords
|
||||||
.search-item
|
.search-item
|
||||||
|
|||||||
3
src/benchmarks/templates/simple-0.json
Normal file
3
src/benchmarks/templates/simple-0.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"name": "John"
|
||||||
|
}
|
||||||
19
src/benchmarks/templates/simple-1.json
Normal file
19
src/benchmarks/templates/simple-1.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "George Washington",
|
||||||
|
"messageCount": 999,
|
||||||
|
"colors": [
|
||||||
|
"red",
|
||||||
|
"green",
|
||||||
|
"blue",
|
||||||
|
"yellow",
|
||||||
|
"orange",
|
||||||
|
"pink",
|
||||||
|
"black",
|
||||||
|
"white",
|
||||||
|
"beige",
|
||||||
|
"brown",
|
||||||
|
"cyan",
|
||||||
|
"magenta"
|
||||||
|
],
|
||||||
|
"primary": true
|
||||||
|
}
|
||||||
20
src/benchmarks/templates/simple-2.json
Normal file
20
src/benchmarks/templates/simple-2.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"header": "Header",
|
||||||
|
"header2": "Header2",
|
||||||
|
"header3": "Header3",
|
||||||
|
"header4": "Header4",
|
||||||
|
"header5": "Header5",
|
||||||
|
"header6": "Header6",
|
||||||
|
"list": [
|
||||||
|
"1000000000",
|
||||||
|
"2",
|
||||||
|
"3",
|
||||||
|
"4",
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7",
|
||||||
|
"8",
|
||||||
|
"9",
|
||||||
|
"10"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user