diff --git a/node_modules/test-performance/cjs/index.js b/node_modules/test-performance/cjs/index.js index 65d5904..04638a1 100644 --- a/node_modules/test-performance/cjs/index.js +++ b/node_modules/test-performance/cjs/index.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -15,50 +15,139 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ +const { performance } = require("perf_hooks"); + function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); } function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [], + }, + f, + y, + t, + g; + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === "function" && + (g[Symbol.iterator] = function () { + return this; + }), + g + ); + function verb(n) { + return function (v) { + return step([n, v]); + }; + } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y["return"] + : op[0] + ? y["throw"] || ((t = y["return"]) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t; + if (((y = 0), t)) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } } var baselineFunctions = { - standard: { - expectedMsRunTime: 12, - func: function (dummyParam) { - }, - }, + standard: { + expectedMsRunTime: 12, + func: function (dummyParam) {}, + }, }; /** @@ -66,28 +155,28 @@ var baselineFunctions = { * to a baseline. */ function calculateExpectedPerformance(baselineExpected, baselineActual, target) { - var performanceRatio = baselineActual / baselineExpected; - return target / performanceRatio; + var performanceRatio = baselineActual / baselineExpected; + return target / performanceRatio; } /** * This runs a single performance test of a function */ function perfTest(func) { - return __awaiter(this, void 0, void 0, function () { - var start, end; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - start = performance.now(); - return [4 /*yield*/, func()]; - case 1: - _a.sent(); - end = performance.now(); - return [2 /*return*/, end - start]; - } - }); - }); + return __awaiter(this, void 0, void 0, function () { + var start, end; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + start = performance.now(); + return [4 /*yield*/, func()]; + case 1: + _a.sent(); + end = performance.now(); + return [2 /*return*/, end - start]; + } + }); + }); } var NUMBER_OF_TESTS = 10000; @@ -96,22 +185,31 @@ var NUMBER_OF_TESTS = 10000; * the average in milliseconds. */ function getScore(func) { - return __awaiter(this, void 0, void 0, function () { - var tests, results; - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - tests = new Array(NUMBER_OF_TESTS).fill(undefined).map(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { - return [2 /*return*/, perfTest(func)]; - }); }); }); - return [4 /*yield*/, Promise.all(tests)]; - case 1: - results = _a.sent(); - return [2 /*return*/, results.reduce(function (acc, val) { return acc + val; }, 0) / NUMBER_OF_TESTS]; - } - }); - }); + return __awaiter(this, void 0, void 0, function () { + var tests, results; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + tests = new Array(NUMBER_OF_TESTS).fill(undefined).map(function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, perfTest(func)]; + }); + }); + }); + return [4 /*yield*/, Promise.all(tests)]; + case 1: + results = _a.sent(); + return [ + 2 /*return*/, + results.reduce(function (acc, val) { + return acc + val; + }, 0) / NUMBER_OF_TESTS, + ]; + } + }); + }); } /** @@ -119,31 +217,38 @@ function getScore(func) { * known baseline function. */ function runTests(baselineFunc, targetFunc) { - return __awaiter(this, void 0, void 0, function () { - var initialBaselineScore, initialTargetScore, midwayBaselineScore, endTargetScore, endBaselineScore, totalBaselineScore, totalTargetScore; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, getScore(baselineFunc)]; - case 1: - initialBaselineScore = _a.sent(); - return [4 /*yield*/, getScore(targetFunc)]; - case 2: - initialTargetScore = _a.sent(); - return [4 /*yield*/, getScore(baselineFunc)]; - case 3: - midwayBaselineScore = _a.sent(); - return [4 /*yield*/, getScore(targetFunc)]; - case 4: - endTargetScore = _a.sent(); - return [4 /*yield*/, getScore(baselineFunc)]; - case 5: - endBaselineScore = _a.sent(); - totalBaselineScore = (initialBaselineScore + midwayBaselineScore + endBaselineScore) / 3; - totalTargetScore = (initialTargetScore + endTargetScore) / 2; - return [2 /*return*/, [totalBaselineScore, totalTargetScore]]; - } - }); - }); + return __awaiter(this, void 0, void 0, function () { + var initialBaselineScore, + initialTargetScore, + midwayBaselineScore, + endTargetScore, + endBaselineScore, + totalBaselineScore, + totalTargetScore; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4 /*yield*/, getScore(baselineFunc)]; + case 1: + initialBaselineScore = _a.sent(); + return [4 /*yield*/, getScore(targetFunc)]; + case 2: + initialTargetScore = _a.sent(); + return [4 /*yield*/, getScore(baselineFunc)]; + case 3: + midwayBaselineScore = _a.sent(); + return [4 /*yield*/, getScore(targetFunc)]; + case 4: + endTargetScore = _a.sent(); + return [4 /*yield*/, getScore(baselineFunc)]; + case 5: + endBaselineScore = _a.sent(); + totalBaselineScore = (initialBaselineScore + midwayBaselineScore + endBaselineScore) / 3; + totalTargetScore = (initialTargetScore + endTargetScore) / 2; + return [2 /*return*/, [totalBaselineScore, totalTargetScore]]; + } + }); + }); } /** @@ -152,20 +257,22 @@ function runTests(baselineFunc, targetFunc) { */ var BASELINE_FUNCTION = baselineFunctions.standard; function getPerformanceScore(func) { - return __awaiter(this, void 0, void 0, function () { - var _a, baseline, target; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (typeof func !== 'function') - throw new Error(func + " is not a function"); - return [4 /*yield*/, runTests(BASELINE_FUNCTION.func, func)]; - case 1: - _a = _b.sent(), baseline = _a[0], target = _a[1]; - return [2 /*return*/, calculateExpectedPerformance(BASELINE_FUNCTION.expectedMsRunTime, baseline, target)]; - } - }); - }); + return __awaiter(this, void 0, void 0, function () { + var _a, baseline, target; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (typeof func !== "function") throw new Error(func + " is not a function"); + return [4 /*yield*/, runTests(BASELINE_FUNCTION.func, func)]; + case 1: + (_a = _b.sent()), (baseline = _a[0]), (target = _a[1]); + return [ + 2 /*return*/, + calculateExpectedPerformance(BASELINE_FUNCTION.expectedMsRunTime, baseline, target), + ]; + } + }); + }); } module.exports = getPerformanceScore;