'use strict'; const { join } = require('path'); const { readFileSync, createReadStream, readdirSync } = require('fs'); const Benchmark = require('benchmark'); const { loadTreeConstructionTestData } = require('../../test/utils/generate-parsing-tests'); const loadSAXParserTestData = require('../../test/utils/load-sax-parser-test-data'); const { treeAdapters, WritableStreamStub } = require('../../test/utils/common'); //HACK: https://github.com/bestiejs/benchmark.js/issues/51 /* global workingCopy, WorkingCopyParserStream, upstreamParser, hugePage, microTests, runMicro, runPages, files */ global.workingCopy = require('../../packages/parse5/lib'); global.WorkingCopyParserStream = require('../../packages/parse5-parser-stream/lib'); global.upstreamParser = require('parse5'); // Huge page data global.hugePage = readFileSync(join(__dirname, '../../test/data/huge-page/huge-page.html')).toString(); // Micro data global.microTests = loadTreeConstructionTestData( [join(__dirname, '../../test/data/html5lib-tests/tree-construction')], treeAdapters.default ) .filter( test => //NOTE: this test caused stack overflow in parse5 v1.x test.input !== '