diff --git a/package-lock.json b/package-lock.json index 144a9026..3c1e201d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,11033 +6,26 @@ "dependencies": { "@as-pect/assembly": { "version": "file:packages/assembly", - "dev": true, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsonc-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", - "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash.differencewith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", - "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.18.0.tgz", - "integrity": "sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw==", - "requires": { - "markdown-it": "10.0.0" - } - }, - "markdownlint-cli": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz", - "integrity": "sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg==", - "requires": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "ignore": "~5.1.4", - "js-yaml": "~3.13.1", - "jsonc-parser": "~2.2.0", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.18.0", - "markdownlint-rule-helpers": "~0.6.0", - "minimatch": "~3.0.4", - "rc": "~1.2.7" - } - }, - "markdownlint-rule-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz", - "integrity": "sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } - }, - "@as-pect/cli": { - "version": "file:packages/cli", - "dev": true, - "requires": { - "@as-pect/assembly": "^2.6.0", - "@as-pect/core": "^2.6.0", - "chalk": "^3.0.0", - "glob": "^7.1.6" - }, - "dependencies": { - "@as-pect/assembly": { - "version": "2.6.0", - "dev": true, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsonc-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", - "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash.differencewith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", - "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.18.0.tgz", - "integrity": "sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw==", - "requires": { - "markdown-it": "10.0.0" - } - }, - "markdownlint-cli": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz", - "integrity": "sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg==", - "requires": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "ignore": "~5.1.4", - "js-yaml": "~3.13.1", - "jsonc-parser": "~2.2.0", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.18.0", - "markdownlint-rule-helpers": "~0.6.0", - "minimatch": "~3.0.4", - "rc": "~1.2.7" - } - }, - "markdownlint-rule-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz", - "integrity": "sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } - }, - "@as-pect/core": { - "version": "2.6.0", - "dev": true, - "requires": { - "@as-pect/assembly": "^2.6.0", - "chalk": "^3.0.0", - "csv-stringify": "^5.3.6", - "long": "^4.0.0" - }, - "dependencies": { - "@as-pect/assembly": { - "version": "2.6.0", - "dev": true, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsonc-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", - "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash.differencewith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", - "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.18.0.tgz", - "integrity": "sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw==", - "requires": { - "markdown-it": "10.0.0" - } - }, - "markdownlint-cli": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz", - "integrity": "sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg==", - "requires": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "ignore": "~5.1.4", - "js-yaml": "~3.13.1", - "jsonc-parser": "~2.2.0", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.18.0", - "markdownlint-rule-helpers": "~0.6.0", - "minimatch": "~3.0.4", - "rc": "~1.2.7" - } - }, - "markdownlint-rule-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz", - "integrity": "sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": {} - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } - }, - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", - "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helpers": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", - "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@cnakazawa/watch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", - "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/core": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", - "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/reporters": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-changed-files": "^24.9.0", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-resolve-dependencies": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "jest-watcher": "^24.9.0", - "micromatch": "^3.1.10", - "p-each-series": "^1.0.0", - "realpath-native": "^1.1.0", - "rimraf": "^2.5.4", - "slash": "^2.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/environment": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", - "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", - "requires": { - "@jest/fake-timers": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/reporters": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", - "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.2", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.1", - "istanbul-reports": "^2.2.6", - "jest-haste-map": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "node-notifier": "^5.4.2", - "slash": "^2.0.0", - "source-map": "^0.6.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/test-sequencer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", - "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", - "requires": { - "@jest/test-result": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0" - } - }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/babel__core": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", - "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", - "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", - "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==" - }, - "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w==", - "requires": { - "jest-diff": "^24.3.0" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/yargs": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.5.tgz", - "integrity": "sha512-CF/+sxTO7FOwbIRL4wMv0ZYLCRfMid2HQpzDRyViH7kSpfoAFiMdGqKIxb1PxWfjtQXQhnQuD33lvRHNwr809Q==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" - }, - "abab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", - "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" - } - } - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, - "babel-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", - "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", - "requires": { - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^5.1.0", - "babel-preset-jest": "^24.9.0", - "chalk": "^2.4.2", - "slash": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", - "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" - } - }, - "babel-plugin-jest-hoist": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", - "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", - "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", - "requires": { - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^24.9.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "requires": { - "cssom": "0.3.x" - } - }, - "csv-stringify": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", - "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==", - "dev": true, - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" - }, - "diff-sequences": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.1.tgz", - "integrity": "sha512-WmWNHWmm/LDwK8jaeZic/g6sU1ZckM+vvOyCV1qFRhJJ6hzve6DRgthNQB7Lra1ocrw68HexLKYgtdxIPcb3Fg==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", - "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expect": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", - "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", - "requires": { - "import-local": "^2.0.0", - "jest-cli": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "jest-cli": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", - "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", - "requires": { - "@jest/core": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "import-local": "^2.0.0", - "is-ci": "^2.0.0", - "jest-config": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^13.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, - "jest-config": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", - "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^24.9.0", - "@jest/types": "^24.9.0", - "babel-jest": "^24.9.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^24.9.0", - "jest-environment-node": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "micromatch": "^3.1.10", - "pretty-format": "^24.9.0", - "realpath-native": "^1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-docblock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", - "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-each": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", - "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", - "requires": { - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", - "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0", - "jsdom": "^11.5.1" - } - }, - "jest-environment-node": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", - "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0" - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", - "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^24.9.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0", - "throat": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "requires": { - "@jest/types": "^24.9.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", - "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==" - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@jest/types": "^24.9.0", - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", - "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", - "requires": { - "@jest/types": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.9.0" - } - }, - "jest-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.4.2", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-docblock": "^24.3.0", - "jest-haste-map": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-leak-detector": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/source-map": "^24.3.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "strip-bom": "^3.0.0", - "yargs": "^13.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "expect": "^24.9.0", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-watcher": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", - "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", - "requires": { - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "jest-util": "^24.9.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "requires": { - "mime-db": "1.43.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-each-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", - "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "requires": { - "p-reduce": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "prompts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", - "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.3" - } - }, - "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "requires": { - "util.promisify": "^1.0.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, - "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", - "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", - "requires": { - "lodash": "^4.17.15" - } - }, - "request-promise-native": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", - "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", - "requires": { - "request-promise-core": "1.1.3", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "sisteransi": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", - "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - } - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "ts-jest": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", - "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==", - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "mkdirp": "0.x", - "resolve": "1.x", - "semver": "^5.5", - "yargs-parser": "10.x" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "requires": { - "browser-process-hrtime": "^0.1.2" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "arg": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.2.tgz", - "integrity": "sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==" - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "ts-node": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz", - "integrity": "sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==", - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "3.1.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - } - } - }, - "@as-pect/core": { - "version": "file:packages/core", - "dev": true, - "requires": { - "@as-pect/assembly": "^2.6.0", - "chalk": "^3.0.0", - "csv-stringify": "^5.3.6", - "long": "^4.0.0" - }, - "dependencies": { - "@as-pect/assembly": { - "version": "2.6.0", - "dev": true, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsonc-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", - "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash.differencewith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", - "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.18.0.tgz", - "integrity": "sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw==", - "requires": { - "markdown-it": "10.0.0" - } - }, - "markdownlint-cli": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz", - "integrity": "sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg==", - "requires": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "ignore": "~5.1.4", - "js-yaml": "~3.13.1", - "jsonc-parser": "~2.2.0", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.18.0", - "markdownlint-rule-helpers": "~0.6.0", - "minimatch": "~3.0.4", - "rc": "~1.2.7" - } - }, - "markdownlint-rule-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz", - "integrity": "sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } - }, - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", - "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helpers": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", - "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@cnakazawa/watch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", - "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/core": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", - "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/reporters": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-changed-files": "^24.9.0", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-resolve-dependencies": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "jest-watcher": "^24.9.0", - "micromatch": "^3.1.10", - "p-each-series": "^1.0.0", - "realpath-native": "^1.1.0", - "rimraf": "^2.5.4", - "slash": "^2.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/environment": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", - "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", - "requires": { - "@jest/fake-timers": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/reporters": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", - "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.2", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.1", - "istanbul-reports": "^2.2.6", - "jest-haste-map": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "node-notifier": "^5.4.2", - "slash": "^2.0.0", - "source-map": "^0.6.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/test-sequencer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", - "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", - "requires": { - "@jest/test-result": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0" - } - }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/babel__core": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", - "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", - "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", - "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==" - }, - "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w==", - "requires": { - "jest-diff": "^24.3.0" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/yargs": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.5.tgz", - "integrity": "sha512-CF/+sxTO7FOwbIRL4wMv0ZYLCRfMid2HQpzDRyViH7kSpfoAFiMdGqKIxb1PxWfjtQXQhnQuD33lvRHNwr809Q==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" - }, - "abab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", - "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" - } - } - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assemblyscript": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1.tgz", - "integrity": "sha512-AEpb4Aq5g77XOxSvWn9ZFjIdfyypGavO5oKOAXUo22tnSpebGHdrx0iyVindGKkDlxWhHUc87B0fvM/w1fnpDg==", - "requires": { - "binaryen": "89.0.0-nightly.20191113", - "long": "^4.0.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, - "babel-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", - "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", - "requires": { - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^5.1.0", - "babel-preset-jest": "^24.9.0", - "chalk": "^2.4.2", - "slash": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", - "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" - } - }, - "babel-plugin-jest-hoist": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", - "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", - "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", - "requires": { - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^24.9.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binaryen": { - "version": "89.0.0-nightly.20191113", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0-nightly.20191113.tgz", - "integrity": "sha512-scODswmj6Xf/Adjy1PRsjf8fHxpIIUYpH7HjKUaZ/RdZYjqB1Zq3X4izpLfcK+hKGNah92DpAJ3i/adEayMe9g==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "requires": { - "cssom": "0.3.x" - } - }, - "csv-stringify": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", - "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==", - "dev": true, - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" - }, - "diff-sequences": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.1.tgz", - "integrity": "sha512-WmWNHWmm/LDwK8jaeZic/g6sU1ZckM+vvOyCV1qFRhJJ6hzve6DRgthNQB7Lra1ocrw68HexLKYgtdxIPcb3Fg==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", - "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expect": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", - "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", - "requires": { - "import-local": "^2.0.0", - "jest-cli": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "jest-cli": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", - "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", - "requires": { - "@jest/core": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "import-local": "^2.0.0", - "is-ci": "^2.0.0", - "jest-config": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^13.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, - "jest-config": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", - "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^24.9.0", - "@jest/types": "^24.9.0", - "babel-jest": "^24.9.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^24.9.0", - "jest-environment-node": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "micromatch": "^3.1.10", - "pretty-format": "^24.9.0", - "realpath-native": "^1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-docblock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", - "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-each": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", - "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", - "requires": { - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", - "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0", - "jsdom": "^11.5.1" - } - }, - "jest-environment-node": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", - "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0" - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", - "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^24.9.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0", - "throat": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "requires": { - "@jest/types": "^24.9.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", - "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==" - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@jest/types": "^24.9.0", - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", - "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", - "requires": { - "@jest/types": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.9.0" - } - }, - "jest-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.4.2", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-docblock": "^24.3.0", - "jest-haste-map": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-leak-detector": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/source-map": "^24.3.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "strip-bom": "^3.0.0", - "yargs": "^13.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "expect": "^24.9.0", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-watcher": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", - "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", - "requires": { - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "jest-util": "^24.9.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "requires": { - "minimist": "^1.2.0" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "requires": { - "mime-db": "1.43.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-each-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", - "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "requires": { - "p-reduce": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "prompts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", - "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.3" - } - }, - "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "requires": { - "util.promisify": "^1.0.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, - "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", - "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", - "requires": { - "lodash": "^4.17.15" - } - }, - "request-promise-native": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", - "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", - "requires": { - "request-promise-core": "1.1.3", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "sisteransi": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", - "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - } - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "ts-jest": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", - "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==", - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "mkdirp": "0.x", - "resolve": "1.x", - "semver": "^5.5", - "yargs-parser": "10.x" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "requires": { - "browser-process-hrtime": "^0.1.2" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "dev": true + }, + "@as-pect/cli": { + "version": "file:packages/cli", + "dev": true, + "requires": { + "@as-pect/assembly": "^2.7.0", + "@as-pect/core": "^2.7.0", + "chalk": "^3.0.0", + "glob": "^7.1.6" + } + }, + "@as-pect/core": { + "version": "file:packages/core", + "dev": true, + "requires": { + "@as-pect/assembly": "^2.7.0", + "chalk": "^3.0.0", + "csv-stringify": "^5.3.6", + "long": "^4.0.0" } }, "@babel/code-frame": { @@ -11165,6 +158,58 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/parser": { @@ -11366,6 +411,58 @@ "@jest/source-map": "^24.9.0", "chalk": "^2.0.1", "slash": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@jest/core": { @@ -11404,6 +501,47 @@ "strip-ansi": "^5.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -11412,6 +550,15 @@ "requires": { "glob": "^7.1.3" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -11465,6 +612,58 @@ "slash": "^2.0.0", "source-map": "^0.6.0", "string-length": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@jest/source-map": { @@ -11523,6 +722,58 @@ "slash": "^2.0.0", "source-map": "^0.6.1", "write-file-atomic": "2.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@jest/types": { @@ -11633,6 +884,58 @@ "chalk": "^2.3.1", "execa": "^1.0.0", "strong-log-transformer": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@lerna/clean": { @@ -11704,6 +1007,58 @@ "chalk": "^2.3.1", "figgy-pudding": "^3.5.1", "npmlog": "^4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@lerna/collect-updates": { @@ -12048,6 +1403,58 @@ "@lerna/query-graph": "3.18.5", "chalk": "^2.3.1", "columnify": "^1.5.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@lerna/log-packed": { @@ -12533,6 +1940,47 @@ "write-json-file": "^3.2.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "load-json-file": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", @@ -12557,6 +2005,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -12586,6 +2043,15 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, + "@octokit/auth-token": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz", + "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.0" + } + }, "@octokit/endpoint": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", @@ -12620,6 +2086,31 @@ "integrity": "sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA==", "dev": true }, + "@octokit/plugin-paginate-rest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.1.tgz", + "integrity": "sha512-Kf0bnNoOXK9EQLkc3rtXfPnu/bwiiUJ1nH3l7tmXYwdDJ7tk/Od2auFU9b86xxKZunPkV9SO1oeojT707q1l7A==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==", + "dev": true + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.1.2.tgz", + "integrity": "sha512-PS77CqifhDqYONWAxLh+BKGlmuhdEX39JVEVQoWWDvkh5B+2bcg9eaxMEFUEJtfuqdAw33sdGrrlGtqtl+9lqg==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1", + "deprecation": "^2.3.1" + } + }, "@octokit/request": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", @@ -12665,11 +2156,15 @@ } }, "@octokit/rest": { - "version": "16.36.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.36.0.tgz", - "integrity": "sha512-zoZj7Ya4vWBK4fjTwK2Cnmu7XBB1p9ygSvTk2TthN6DVJXM4hQZQoAiknWFLJWSTix4dnA3vuHtjPZbExYoCZA==", + "version": "16.40.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.40.1.tgz", + "integrity": "sha512-H8Twi0NfeQYrpsQ2T63vww9DQ5oKwWl89ZTZyMOVJwdgIPAIn969HqQPtBQMWq26qx+VkYi/WlhFzaZYabN2yg==", "dev": true, "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "^2.1.0", "@octokit/request": "^5.2.0", "@octokit/request-error": "^1.0.2", "atob-lite": "^2.0.0", @@ -12685,9 +2180,9 @@ } }, "@octokit/types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz", - "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.1.1.tgz", + "integrity": "sha512-89LOYH+d/vsbDX785NOfLxTW88GjNd0lWRz1DVPVsZgg9Yett5O+3MOvwo7iHgvUwbFz0mf/yPIjBkUbs4kxoQ==", "dev": true, "requires": { "@types/node": ">= 8" @@ -12734,6 +2229,12 @@ "@babel/types": "^7.3.0" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -12758,9 +2259,9 @@ "dev": true }, "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" @@ -12777,9 +2278,9 @@ } }, "@types/jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w==", + "version": "24.9.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz", + "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==", "dev": true, "requires": { "jest-diff": "^24.3.0" @@ -12792,9 +2293,9 @@ "dev": true }, "@types/node": { - "version": "13.1.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.7.tgz", - "integrity": "sha512-HU0q9GXazqiKwviVxg9SI/+t/nAsGkvLDkIdxz+ObejG2nX6Si00TeLqHMoS+a/1tjH7a8YpKVQwtgHuMQsldg==", + "version": "13.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.5.1.tgz", + "integrity": "sha512-Jj2W7VWQ2uM83f8Ls5ON9adxN98MvyJsMSASYFuSvrov8RMRY64Ayay7KV35ph1TSGIJ2gG9ZVDdEq3c3zaydA==", "dev": true }, "@types/stack-utils": { @@ -12804,9 +2305,9 @@ "dev": true }, "@types/yargs": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.5.tgz", - "integrity": "sha512-CF/+sxTO7FOwbIRL4wMv0ZYLCRfMid2HQpzDRyViH7kSpfoAFiMdGqKIxb1PxWfjtQXQhnQuD33lvRHNwr809Q==", + "version": "13.0.7", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.7.tgz", + "integrity": "sha512-Sg9kNeJz+V+W+0fugcVhHC+mNHnydDR1RJrW5Qn2jVrDQARF8wfPVqIqwEzZp+bneuEBIm2ClsJ1/je42ZBzSg==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -12900,12 +2401,12 @@ } }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -12924,12 +2425,13 @@ "dev": true }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "any-promise": { @@ -13064,12 +2566,12 @@ } }, "assemblyscript": { - "version": "0.8.1-nightly.20200114", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1-nightly.20200114.tgz", - "integrity": "sha512-8accd9rrGBJo5VzG8mUFyebUqAXwccxXAzxtJSf+Mp320oJHSu3CmSwDwi35clIB6IMXahfRr7OQEepyovErig==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.9.0.tgz", + "integrity": "sha512-HDDoaDfdnp0Ki/k272ib12sKz3ytVlXsIDise5meamInLC1qZAcmwwO+aqNyiVksmPYyLhQlaVZRPKWibHqo3g==", "dev": true, "requires": { - "binaryen": "90.0.0-nightly.20200101", + "binaryen": "90.0.0-nightly.20200111", "long": "^4.0.0" } }, @@ -13140,6 +2642,58 @@ "babel-preset-jest": "^24.9.0", "chalk": "^2.4.2", "slash": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "babel-plugin-istanbul": { @@ -13259,15 +2813,16 @@ "dev": true }, "binaryen": { - "version": "90.0.0-nightly.20200101", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200101.tgz", - "integrity": "sha512-64lgruunUnkJD4YVD0DLCSRskqfo3xhoErM1H22GfkkWNT16/7tPTLG+MYqKLMALTiIyLL6L9UqmDaxOxDv0rw==", + "version": "90.0.0-nightly.20200111", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200111.tgz", + "integrity": "sha512-2uihf1tqfkG2OJB54LjIDu5/fqbGgbj9VSwnj8hYtsRfML61y0uHeMkPfWctyl99m7hsgyDu7xUbJ7iyqBz6BA==", "dev": true }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, "optional": true, "requires": { "file-uri-to-path": "1.0.0" @@ -13519,14 +3074,13 @@ "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "chardet": { @@ -13636,18 +3190,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "columnify": { @@ -14025,9 +3579,9 @@ } }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -14500,9 +4054,9 @@ } }, "es-abstract": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.1.tgz", - "integrity": "sha512-WmWNHWmm/LDwK8jaeZic/g6sU1ZckM+vvOyCV1qFRhJJ6hzve6DRgthNQB7Lra1ocrw68HexLKYgtdxIPcb3Fg==", + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", @@ -14551,24 +4105,16 @@ "dev": true }, "escodegen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", - "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz", + "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==", "dev": true, "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - } } }, "esprima": { @@ -14669,6 +4215,32 @@ "jest-matcher-utils": "^24.9.0", "jest-message-util": "^24.9.0", "jest-regex-util": "^24.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "extend": { @@ -14781,9 +4353,9 @@ "dev": true }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-glob": { @@ -14863,6 +4435,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, "optional": true }, "fill-range": { @@ -14991,6 +4564,7 @@ "version": "1.2.11", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, "optional": true, "requires": { "bindings": "^1.5.0", @@ -15001,21 +4575,25 @@ "abbrev": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, + "dev": true, "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", @@ -15025,11 +4603,13 @@ "balanced-match": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "optional": true, "requires": { "balanced-match": "^1.0.0", @@ -15039,31 +4619,37 @@ "chownr": { "version": "1.1.3", "bundled": true, + "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, + "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, + "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, + "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "debug": { "version": "3.2.6", "bundled": true, + "dev": true, "optional": true, "requires": { "ms": "^2.1.1" @@ -15072,21 +4658,25 @@ "deep-extend": { "version": "0.6.0", "bundled": true, + "dev": true, "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, + "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.7", "bundled": true, + "dev": true, "optional": true, "requires": { "minipass": "^2.6.0" @@ -15095,11 +4685,13 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, + "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", @@ -15115,6 +4707,7 @@ "glob": { "version": "7.1.6", "bundled": true, + "dev": true, "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -15128,11 +4721,13 @@ "has-unicode": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, + "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -15141,6 +4736,7 @@ "ignore-walk": { "version": "3.0.3", "bundled": true, + "dev": true, "optional": true, "requires": { "minimatch": "^3.0.4" @@ -15149,6 +4745,7 @@ "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "optional": true, "requires": { "once": "^1.3.0", @@ -15158,16 +4755,19 @@ "inherits": { "version": "2.0.4", "bundled": true, + "dev": true, "optional": true }, "ini": { "version": "1.3.5", "bundled": true, + "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -15176,11 +4776,13 @@ "isarray": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "optional": true, "requires": { "brace-expansion": "^1.1.7" @@ -15189,11 +4791,13 @@ "minimist": { "version": "0.0.8", "bundled": true, + "dev": true, "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, + "dev": true, "optional": true, "requires": { "safe-buffer": "^5.1.2", @@ -15203,6 +4807,7 @@ "minizlib": { "version": "1.3.3", "bundled": true, + "dev": true, "optional": true, "requires": { "minipass": "^2.9.0" @@ -15211,6 +4816,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "optional": true, "requires": { "minimist": "0.0.8" @@ -15219,11 +4825,13 @@ "ms": { "version": "2.1.2", "bundled": true, + "dev": true, "optional": true }, "needle": { "version": "2.4.0", "bundled": true, + "dev": true, "optional": true, "requires": { "debug": "^3.2.6", @@ -15234,6 +4842,7 @@ "node-pre-gyp": { "version": "0.14.0", "bundled": true, + "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -15251,6 +4860,7 @@ "nopt": { "version": "4.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "abbrev": "1", @@ -15260,6 +4870,7 @@ "npm-bundled": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true, "requires": { "npm-normalize-package-bin": "^1.0.1" @@ -15268,11 +4879,13 @@ "npm-normalize-package-bin": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.7", "bundled": true, + "dev": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -15282,6 +4895,7 @@ "npmlog": { "version": "4.1.2", "bundled": true, + "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -15293,16 +4907,19 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, + "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "optional": true, "requires": { "wrappy": "1" @@ -15311,16 +4928,19 @@ "os-homedir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -15330,16 +4950,19 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "rc": { "version": "1.2.8", "bundled": true, + "dev": true, "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -15351,6 +4974,7 @@ "minimist": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true } } @@ -15358,6 +4982,7 @@ "readable-stream": { "version": "2.3.6", "bundled": true, + "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -15372,6 +4997,7 @@ "rimraf": { "version": "2.7.1", "bundled": true, + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -15380,36 +5006,43 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, + "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, + "dev": true, "optional": true }, "sax": { "version": "1.2.4", "bundled": true, + "dev": true, "optional": true }, "semver": { "version": "5.7.1", "bundled": true, + "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, + "dev": true, "optional": true }, "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -15420,6 +5053,7 @@ "string_decoder": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -15428,6 +5062,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -15436,11 +5071,13 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "tar": { "version": "4.4.13", "bundled": true, + "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", @@ -15455,11 +5092,13 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -15468,11 +5107,13 @@ "wrappy": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "yallist": { "version": "3.1.1", "bundled": true, + "dev": true, "optional": true } } @@ -16101,9 +5742,9 @@ } }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-symbols": { @@ -16151,13 +5792,10 @@ } }, "highlight.js": { - "version": "9.17.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.17.1.tgz", - "integrity": "sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw==", - "dev": true, - "requires": { - "handlebars": "^4.5.3" - } + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.0.tgz", + "integrity": "sha512-A97kI1KAUzKoAiEoaGcf2O9YPS8nbDTCRFokaaeBhnqjQTvbAuAJrQMm21zw8s8xzaMtCQBtgbyGXLGxdxQyqQ==", + "dev": true }, "hosted-git-info": { "version": "2.8.5", @@ -16387,6 +6025,47 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -16407,6 +6086,15 @@ } } } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -16748,6 +6436,12 @@ "supports-color": "^6.1.0" }, "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -16817,6 +6511,47 @@ "jest-cli": "^24.9.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "jest-cli": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", @@ -16837,6 +6572,15 @@ "realpath-native": "^1.1.0", "yargs": "^13.3.0" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -16874,6 +6618,58 @@ "micromatch": "^3.1.10", "pretty-format": "^24.9.0", "realpath-native": "^1.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-diff": { @@ -16886,6 +6682,58 @@ "diff-sequences": "^24.9.0", "jest-get-type": "^24.9.0", "pretty-format": "^24.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-docblock": { @@ -16908,6 +6756,58 @@ "jest-get-type": "^24.9.0", "jest-util": "^24.9.0", "pretty-format": "^24.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-environment-jsdom": { @@ -16985,6 +6885,58 @@ "jest-util": "^24.9.0", "pretty-format": "^24.9.0", "throat": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-leak-detector": { @@ -17007,6 +6959,58 @@ "jest-diff": "^24.9.0", "jest-get-type": "^24.9.0", "pretty-format": "^24.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-message-util": { @@ -17023,6 +7027,58 @@ "micromatch": "^3.1.10", "slash": "^2.0.0", "stack-utils": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-mock": { @@ -17057,6 +7113,58 @@ "chalk": "^2.0.1", "jest-pnp-resolver": "^1.2.1", "realpath-native": "^1.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-resolve-dependencies": { @@ -17095,6 +7203,58 @@ "jest-worker": "^24.6.0", "source-map-support": "^0.5.6", "throat": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-runtime": { @@ -17126,6 +7286,58 @@ "slash": "^2.0.0", "strip-bom": "^3.0.0", "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-serializer": { @@ -17155,11 +7367,61 @@ "semver": "^6.2.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -17181,6 +7443,58 @@ "mkdirp": "^0.5.1", "slash": "^2.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-validate": { @@ -17195,6 +7509,58 @@ "jest-get-type": "^24.9.0", "leven": "^3.1.0", "pretty-format": "^24.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-watcher": { @@ -17210,6 +7576,58 @@ "chalk": "^2.0.1", "jest-util": "^24.9.0", "string-length": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-worker": { @@ -17222,6 +7640,12 @@ "supports-color": "^6.1.0" }, "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -17368,9 +7792,9 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "kleur": { @@ -18084,6 +8508,7 @@ "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, "optional": true }, "nanomatch": { @@ -18284,13 +8709,14 @@ } }, "npm-packlist": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz", - "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", "dev": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npm-pick-manifest": { @@ -18319,6 +8745,58 @@ "read-pkg": "^3.0.0", "shell-quote": "^1.6.1", "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "npm-run-path": { @@ -18806,6 +9284,32 @@ "ansi-regex": "^4.0.0", "ansi-styles": "^3.2.0", "react-is": "^16.8.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "process-nextick-args": { @@ -19189,9 +9693,9 @@ "dev": true }, "resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -19241,9 +9745,9 @@ "dev": true }, "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.1.tgz", + "integrity": "sha512-IQ4ikL8SjBiEDZfk+DFVwqRK8md24RWMEJkdSlgNLkyyAImcjf8SWvU1qFMDOb4igBClbTQ/ugPqXcRwdFTxZw==", "dev": true, "requires": { "glob": "^7.1.3" @@ -19896,12 +10400,12 @@ } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "symbol-tree": { @@ -20207,9 +10711,9 @@ "dev": true }, "typedoc": { - "version": "0.16.4", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.4.tgz", - "integrity": "sha512-7pUHKipYmvmnKQtczPp1gFa/19z2lxkWzJVboMKeNRjz4cf82EfGdtcRD146KV0Nl4cAehhU28qcU+dcWn+e4g==", + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.9.tgz", + "integrity": "sha512-UvOGoy76yqwCXwxPgatwgXWfsQ3FczyZ6ZNLjhCPK+TsDir6LiU3YB6N9XZmPv36E+7LA860mnc8a0v6YADKFw==", "dev": true, "requires": { "@types/minimatch": "3.0.3", @@ -20221,14 +10725,14 @@ "minimatch": "^3.0.0", "progress": "^2.0.3", "shelljs": "^0.8.3", - "typedoc-default-themes": "^0.7.1", + "typedoc-default-themes": "^0.7.2", "typescript": "3.7.x" } }, "typedoc-default-themes": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.7.1.tgz", - "integrity": "sha512-s3jeUHc4EY8snIta6lNkUu9+36WMDUnkKm0UQ59w5iPo/4Y2d4+M9CDIKoenYKT5hkg/UnTc3oX48VZZytv8Xw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.7.2.tgz", + "integrity": "sha512-fiFKlFO6VTqjcno8w6WpTsbCgXmfPHVjnLfYkmByZE7moaz+E2DSpAT+oHtDHv7E0BM5kAhPrHJELP2J2Y2T9A==", "dev": true, "requires": { "backbone": "^1.4.0", @@ -20244,9 +10748,9 @@ "dev": true }, "typescript": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", - "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", + "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", "dev": true }, "uc.micro": { @@ -20256,9 +10760,9 @@ "dev": true }, "uglify-js": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.5.tgz", - "integrity": "sha512-GFZ3EXRptKGvb/C1Sq6nO1iI7AGcjyqmIyOw0DrD0675e+NNbGO72xmMM2iEBdFbxaTLo70NbjM/Wy54uZIlsg==", + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.6.tgz", + "integrity": "sha512-yYqjArOYSxvqeeiYH2VGjZOqq6SVmhxzaPjJC1W2F9e+bqvFL9QXQ2osQuKUFjM2hGjKG2YclQnRKWQSt/nOTQ==", "dev": true, "optional": true, "requires": { @@ -20412,19 +10916,21 @@ } }, "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" } }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, "validate-npm-package-license": { @@ -20597,6 +11103,32 @@ "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "wrappy": { diff --git a/package.json b/package.json index 03dad4bf..15694d32 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,8 @@ "@as-pect/core": "file:./packages/core", "@types/glob": "^7.1.1", "@types/jest": "^24.9.0", - "@types/node": "^13.1.7", - "assemblyscript": "0.8.1-nightly.20200114", + "assemblyscript": "^0.9.0", + "@types/node": "^13.1.8", "coveralls": "^3.0.9", "csv-stringify": "^5.3.6", "jest": "^24.9.0", @@ -45,9 +45,9 @@ "rimraf": "^3.0.0", "ts-jest": "^24.3.0", "ts-node": "^8.6.2", - "typedoc": "^0.16.4", + "typedoc": "^0.16.7", "typedoc-plugin-lerna-packages": "^0.2.2", - "typescript": "^3.7.4" + "typescript": "^3.7.5" }, "dependencies": {} } diff --git a/packages/assembly/assembly/__tests__/RTrace.spec.ts b/packages/assembly/assembly/__tests__/RTrace.spec.ts index c68850db..17bbcf8d 100644 --- a/packages/assembly/assembly/__tests__/RTrace.spec.ts +++ b/packages/assembly/assembly/__tests__/RTrace.spec.ts @@ -13,11 +13,11 @@ describe("RTrace", () => { it("should return a positive number", () => { globalVec = new Vec3(1, 2, 3); - expect(RTrace.count()).toBeGreaterThan(0, "RTrace counts should be greater than 0"); + expect(RTrace.count()).toBeGreaterThan(0, "RTrace counts should be greater than 0"); }); afterEach(() => { let delta = RTrace.end(1); - expect(delta).toBe(1, "There should only now be one global reference to the Vec3 object"); + expect(delta).toBe(1, "There should only now be one global reference to the Vec3 object"); }); }); diff --git a/packages/assembly/assembly/__tests__/RTrace.spec.wat b/packages/assembly/assembly/__tests__/RTrace.spec.wat index ee637d87..c407cc36 100644 --- a/packages/assembly/assembly/__tests__/RTrace.spec.wat +++ b/packages/assembly/assembly/__tests__/RTrace.spec.wat @@ -1,21 +1,29 @@ (module - (type $i32_=>_none (func (param i32))) - (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00R\00T\00r\00a\00c\00e\00") + (data (i32.const 208) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00e\00t\00u\00r\00n\00 \00a\00 \00p\00o\00s\00i\00t\00i\00v\00e\00 \00n\00u\00m\00b\00e\00r\00") + (data (i32.const 288) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00R\00T\00r\00a\00c\00e\00 \00c\00o\00u\00n\00t\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \000\00") + (data (i32.const 384) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 480) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00T\00h\00e\00r\00e\00 \00s\00h\00o\00u\00l\00d\00 \00o\00n\00l\00y\00 \00n\00o\00w\00 \00b\00e\00 \00o\00n\00e\00 \00g\00l\00o\00b\00a\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00o\00 \00t\00h\00e\00 \00V\00e\00c\003\00 \00o\00b\00j\00e\00c\00t\00") + (data (i32.const 624) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "startRTrace" (func $assembly/internal/RTrace/startRTrace (param i32))) (import "__aspect" "reportBeforeEach" (func $assembly/internal/Test/reportBeforeEach (param i32))) (import "__aspect" "getRTraceCount" (func $assembly/internal/RTrace/getRTraceCount (result i32))) @@ -48,27 +56,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00R\00T\00r\00a\00c\00e\00") - (data (i32.const 320) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00e\00t\00u\00r\00n\00 \00a\00 \00p\00o\00s\00i\00t\00i\00v\00e\00 \00n\00u\00m\00b\00e\00r\00") - (data (i32.const 400) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00R\00T\00r\00a\00c\00e\00 \00c\00o\00u\00n\00t\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \000\00") - (data (i32.const 496) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 592) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00T\00h\00e\00r\00e\00 \00s\00h\00o\00u\00l\00d\00 \00o\00n\00l\00y\00 \00n\00o\00w\00 \00b\00e\00 \00o\00n\00e\00 \00g\00l\00o\00b\00a\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00o\00 \00t\00h\00e\00 \00V\00e\00c\003\00 \00o\00b\00j\00e\00c\00t\00") - (data (i32.const 736) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 6 funcref) (elem (i32.const 1) $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/RTrace.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/RTrace.spec/globalVec (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) @@ -94,8 +88,8 @@ (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 736)) - (global $~lib/heap/__heap_base i32 (i32.const 788)) + (global $~lib/rt/__rtti_base i32 (i32.const 624)) + (global $~lib/heap/__heap_base i32 (i32.const 676)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1184,296 +1178,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 44 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 45 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 46 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 47 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 48 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 49 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 43 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1557,7 +1262,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1652,9 +1357,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 51 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 45 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1668,12 +1373,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1684,20 +1389,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1710,1512 +1415,97 @@ end else local.get $0 - local.get $2 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 507 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - end - end - local.get $3 - i32.load - i32.const -4 - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 510 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 52 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 53 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 54 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 55 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else + local.get $3 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq + i32.eqz if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end + i32.const 0 + i32.const 32 + i32.const 507 + i32.const 17 + call $~lib/builtins/abort + unreachable end end end - ) - (func $~lib/rt/tlsf/__free (; 58 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end + local.get $4 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.ge_u i32.eqz if i32.const 0 i32.const 32 - i32.const 593 - i32.const 2 + i32.const 510 + i32.const 13 call $~lib/builtins/abort unreachable end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 59 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 - call $~lib/memory/memory.copy + i32.store offset=12 local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 local.get $4 - i32.add - global.set $~lib/rt/pure/END + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 ) - (func $~lib/rt/pure/appendRoot (; 60 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 46 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 61 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 47 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3225,90 +1515,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 48 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 62 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 49 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3319,22 +1544,22 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/RTrace/RTrace.start (; 63 ;) (param $0 i32) + (func $assembly/internal/RTrace/RTrace.start (; 50 ;) (param $0 i32) global.get $assembly/internal/RTrace/RTrace.enabled if local.get $0 call $assembly/internal/RTrace/startRTrace end ) - (func $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|0 (; 64 ;) + (func $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|0 (; 51 ;) i32.const 1 call $assembly/internal/RTrace/RTrace.start ) - (func $assembly/internal/Test/beforeEach (; 65 ;) (param $0 i32) + (func $assembly/internal/Test/beforeEach (; 52 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeEach ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 66 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 53 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3355,7 +1580,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/RTrace/RTrace.count (; 67 ;) (result i32) + (func $assembly/internal/RTrace/RTrace.count (; 54 ;) (result i32) global.get $assembly/internal/RTrace/RTrace.enabled if call $assembly/internal/RTrace/getRTraceCount @@ -3363,7 +1588,7 @@ end i32.const 0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 68 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 55 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3384,12 +1609,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 69 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 56 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 70 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 57 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3415,7 +1640,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 71 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 58 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3447,9 +1672,47 @@ end global.set $assembly/internal/report/Expected/Expected.signed local.get $0 - global.set $assembly/internal/report/Expected/Expected.integer + global.set $assembly/internal/report/Expected/Expected.integer + ) + (func $assembly/internal/comparison/assert/assert (; 59 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 400 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/greaterThanComparison/greaterThanComparison (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $0 + local.get $1 + i32.gt_s + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.clear (; 72 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 61 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3469,7 +1732,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 73 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 62 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3487,63 +1750,23 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 74 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 - i32.gt_s - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 512 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/greaterThanComparison/greaterThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|1 (; 75 ;) + (func $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|1 (; 64 ;) (local $0 i32) i32.const 0 f64.const 1 @@ -3559,12 +1782,12 @@ call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 416 + i32.const 304 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 76 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 65 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3574,7 +1797,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/RTrace/RTrace.end (; 77 ;) (param $0 i32) (result i32) + (func $assembly/internal/RTrace/RTrace.end (; 66 ;) (param $0 i32) (result i32) global.get $assembly/internal/RTrace/RTrace.enabled if local.get $0 @@ -3583,63 +1806,42 @@ end i32.const 0 ) - (func $assembly/internal/Expectation/Expectation#toBe (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/exactComparison/exactComparison (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - i32.load offset=4 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 i32.eq i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 512 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBe (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|2 (; 79 ;) + (func $start:assembly/__tests__/RTrace.spec~anonymous|0~anonymous|2 (; 69 ;) (local $0 i32) (local $1 i32) i32.const 1 @@ -3649,28 +1851,28 @@ call $assembly/internal/Expectation/expect local.tee $1 i32.const 1 - i32.const 608 + i32.const 496 call $assembly/internal/Expectation/Expectation#toBe local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/afterEach (; 80 ;) (param $0 i32) + (func $assembly/internal/Test/afterEach (; 70 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterEach ) - (func $start:assembly/__tests__/RTrace.spec~anonymous|0 (; 81 ;) + (func $start:assembly/__tests__/RTrace.spec~anonymous|0 (; 71 ;) i32.const 1 call $assembly/internal/Test/beforeEach - i32.const 336 + i32.const 224 i32.const 2 call $assembly/internal/Test/it i32.const 3 call $assembly/internal/Test/afterEach ) - (func $start:assembly/internal/noOp~anonymous|0 (; 82 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 72 ;) nop ) - (func $assembly/internal/Describe/describe (; 83 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 73 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3684,22 +1886,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/RTrace.spec (; 84 ;) - i32.const 304 + (func $start:assembly/__tests__/RTrace.spec (; 74 ;) + i32.const 192 i32.const 4 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 85 ;) + (func $assembly/index/__ready (; 75 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 86 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 76 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 87 ;) + (func $assembly/internal/report/Actual/__sendActual (; 77 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3807,7 +2009,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 88 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 78 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3946,24 +2148,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 89 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 79 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 90 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 80 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 91 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 81 ;) (result i32) i32.const 5 ) - (func $assembly/internal/Expectation/__cleanup (; 92 ;) + (func $assembly/internal/Expectation/__cleanup (; 82 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 93 ;) + (func $~start (; 83 ;) global.get $~started if return @@ -3973,140 +2175,130 @@ end call $start:assembly/__tests__/RTrace.spec ) - (func $~lib/array/Array#__visit_impl (; 94 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 84 ;) + return ) - (func $~lib/rt/pure/__visit (; 95 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 85 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 86 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 87 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 88 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 96 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 89 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/addedFiles.spec.ts b/packages/assembly/assembly/__tests__/addedFiles.spec.ts index ef6858f6..1bf0ae05 100644 --- a/packages/assembly/assembly/__tests__/addedFiles.spec.ts +++ b/packages/assembly/assembly/__tests__/addedFiles.spec.ts @@ -10,6 +10,6 @@ describe("added files", () => { */ it("should read globals from included files", () => { // @ts-ignore: Please see setup/Test.include.ts - expect(meaningOfLife).toBe(42); + expect(meaningOfLife).toBe(42); }); }); diff --git a/packages/assembly/assembly/__tests__/addedFiles.spec.wat b/packages/assembly/assembly/__tests__/addedFiles.spec.wat index 3e5c131b..4401cb7f 100644 --- a/packages/assembly/assembly/__tests__/addedFiles.spec.wat +++ b/packages/assembly/assembly/__tests__/addedFiles.spec.wat @@ -7,14 +7,21 @@ (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00a\00d\00d\00e\00d\00 \00f\00i\00l\00e\00s\00") + (data (i32.const 224) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00e\00a\00d\00 \00g\00l\00o\00b\00a\00l\00s\00 \00f\00r\00o\00m\00 \00i\00n\00c\00l\00u\00d\00e\00d\00 \00f\00i\00l\00e\00s\00") + (data (i32.const 320) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 416) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 432) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -42,26 +49,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00a\00d\00d\00e\00d\00 \00f\00i\00l\00e\00s\00") - (data (i32.const 336) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00e\00a\00d\00 \00g\00l\00o\00b\00a\00l\00s\00 \00f\00r\00o\00m\00 \00i\00n\00c\00l\00u\00d\00e\00d\00 \00f\00i\00l\00e\00s\00") - (data (i32.const 432) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 528) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 544) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 4 funcref) (elem (i32.const 1) $start:assembly/__tests__/addedFiles.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/addedFiles.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -86,8 +80,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 544)) - (global $~lib/heap/__heap_base i32 (i32.const 588)) + (global $~lib/rt/__rtti_base i32 (i32.const 432)) + (global $~lib/heap/__heap_base i32 (i32.const 476)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1176,296 +1170,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 38 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 39 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 40 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 41 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 43 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 44 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 38 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1549,7 +1254,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 45 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1644,9 +1349,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 46 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1660,12 +1365,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1676,20 +1381,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1702,15 +1407,15 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 - i32.eqz - if + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz + if i32.const 0 i32.const 32 i32.const 507 @@ -1720,11 +1425,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1735,37 +1440,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 41 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 48 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 42 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1783,7 +1486,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1802,1505 +1505,27 @@ i32.eqz i32.eqz if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 49 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 50 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 53 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 54 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 55 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 56 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 43 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 57 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 44 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3311,7 +1536,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/Expectation/Expectation#constructor (; 58 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 45 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3332,12 +1557,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 59 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 46 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 60 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 47 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3363,7 +1588,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 61 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 48 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3397,7 +1622,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 62 ;) + (func $assembly/internal/comparison/assert/assert (; 49 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 336 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/exactComparison/exactComparison (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $1 + local.get $0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 51 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3417,7 +1680,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 63 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 52 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3435,74 +1698,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBe (; 64 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBe (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 - i32.eq - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 448 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/addedFiles.spec~anonymous|0~anonymous|0 (; 65 ;) + (func $start:assembly/__tests__/addedFiles.spec~anonymous|0~anonymous|0 (; 54 ;) (local $0 i32) global.get $assembly/__tests__/setup/Test.include/meaningOfLife call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 544 + i32.const 432 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 66 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 55 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3512,15 +1735,15 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/addedFiles.spec~anonymous|0 (; 67 ;) - i32.const 352 + (func $start:assembly/__tests__/addedFiles.spec~anonymous|0 (; 56 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it ) - (func $start:assembly/internal/noOp~anonymous|0 (; 68 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 57 ;) nop ) - (func $assembly/internal/Describe/describe (; 69 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 58 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3534,22 +1757,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/addedFiles.spec (; 70 ;) - i32.const 304 + (func $start:assembly/__tests__/addedFiles.spec (; 59 ;) + i32.const 192 i32.const 2 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 71 ;) + (func $assembly/index/__ready (; 60 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 72 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 61 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 73 ;) + (func $assembly/internal/report/Actual/__sendActual (; 62 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3657,7 +1880,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 74 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 63 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3796,24 +2019,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 75 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 64 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 76 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 65 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 77 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 66 ;) (result i32) i32.const 4 ) - (func $assembly/internal/Expectation/__cleanup (; 78 ;) + (func $assembly/internal/Expectation/__cleanup (; 67 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 79 ;) + (func $~start (; 68 ;) global.get $~started if return @@ -3823,140 +2046,130 @@ end call $start:assembly/__tests__/addedFiles.spec ) - (func $~lib/array/Array#__visit_impl (; 80 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 69 ;) + return ) - (func $~lib/rt/pure/__visit (; 81 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 70 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 71 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 72 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 73 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 82 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 74 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/customImports.spec.ts b/packages/assembly/assembly/__tests__/customImports.spec.ts index 181a337b..1c556f83 100644 --- a/packages/assembly/assembly/__tests__/customImports.spec.ts +++ b/packages/assembly/assembly/__tests__/customImports.spec.ts @@ -9,7 +9,7 @@ declare function getValue(): i32; describe("linked functions", () => { it("should be linked", () => { let result = getValue(); - expect(result).toBe(42); - log(result); + expect(result).toBe(42); + log(result); }); }); diff --git a/packages/assembly/assembly/__tests__/customImports.spec.wat b/packages/assembly/assembly/__tests__/customImports.spec.wat index 8b909c05..e0fd1837 100644 --- a/packages/assembly/assembly/__tests__/customImports.spec.wat +++ b/packages/assembly/assembly/__tests__/customImports.spec.wat @@ -1,20 +1,27 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00l\00i\00n\00k\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00s\00") + (data (i32.const 224) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00l\00i\00n\00k\00e\00d\00") + (data (i32.const 272) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 368) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 384) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "linked" "getValue" (func $assembly/__tests__/customImports.spec/getValue (result i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) @@ -44,26 +51,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00l\00i\00n\00k\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00s\00") - (data (i32.const 336) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00l\00i\00n\00k\00e\00d\00") - (data (i32.const 384) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 480) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 496) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 4 funcref) (elem (i32.const 1) $start:assembly/__tests__/customImports.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/customImports.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.float (mut f64) (f64.const 0)) @@ -88,8 +82,8 @@ (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 496)) - (global $~lib/heap/__heap_base i32 (i32.const 540)) + (global $~lib/rt/__rtti_base i32 (i32.const 384)) + (global $~lib/heap/__heap_base i32 (i32.const 428)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1178,296 +1172,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 41 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 42 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 44 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 45 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 46 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 40 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1551,7 +1256,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 47 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1646,9 +1351,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1662,12 +1367,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1678,20 +1383,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1704,13 +1409,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1722,11 +1427,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1737,37 +1442,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 49 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 50 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 44 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1785,7 +1488,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1804,1505 +1507,27 @@ i32.eqz i32.eqz if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 51 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 52 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 55 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 56 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 57 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 58 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 45 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 59 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 46 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3313,7 +1538,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 47 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3334,12 +1559,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 48 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 49 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3365,7 +1590,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 50 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3399,7 +1624,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 64 ;) + (func $assembly/internal/comparison/assert/assert (; 51 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 288 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/exactComparison/exactComparison (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $1 + local.get $0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3419,7 +1682,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3437,63 +1700,23 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBe (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBe (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 - i32.eq - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 400 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/log/log (; 67 ;) (param $0 i32) + (func $assembly/internal/log/log (; 56 ;) (param $0 i32) global.get $assembly/internal/log/ignoreLogs if return @@ -3518,7 +1741,7 @@ end call $assembly/internal/log/logInteger ) - (func $start:assembly/__tests__/customImports.spec~anonymous|0~anonymous|0 (; 68 ;) + (func $start:assembly/__tests__/customImports.spec~anonymous|0~anonymous|0 (; 57 ;) (local $0 i32) (local $1 i32) call $assembly/__tests__/customImports.spec/getValue @@ -3527,14 +1750,14 @@ call $assembly/internal/Expectation/expect local.tee $1 i32.const 42 - i32.const 496 + i32.const 384 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $assembly/internal/log/log local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 69 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 58 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3544,15 +1767,15 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/customImports.spec~anonymous|0 (; 70 ;) - i32.const 352 + (func $start:assembly/__tests__/customImports.spec~anonymous|0 (; 59 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it ) - (func $start:assembly/internal/noOp~anonymous|0 (; 71 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 60 ;) nop ) - (func $assembly/internal/Describe/describe (; 72 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 61 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3566,22 +1789,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/customImports.spec (; 73 ;) - i32.const 304 + (func $start:assembly/__tests__/customImports.spec (; 62 ;) + i32.const 192 i32.const 2 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 74 ;) + (func $assembly/index/__ready (; 63 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 75 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 64 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 76 ;) + (func $assembly/internal/report/Actual/__sendActual (; 65 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3689,7 +1912,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 77 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 66 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3828,24 +2051,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 78 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 67 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 79 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 68 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 80 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 69 ;) (result i32) i32.const 4 ) - (func $assembly/internal/Expectation/__cleanup (; 81 ;) + (func $assembly/internal/Expectation/__cleanup (; 70 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 82 ;) + (func $~start (; 71 ;) global.get $~started if return @@ -3855,140 +2078,130 @@ end call $start:assembly/__tests__/customImports.spec ) - (func $~lib/array/Array#__visit_impl (; 83 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 72 ;) + return ) - (func $~lib/rt/pure/__visit (; 84 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 73 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 74 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 75 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 76 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 85 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 77 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/empty.spec.wat b/packages/assembly/assembly/__tests__/empty.spec.wat index d845a03d..49830711 100644 --- a/packages/assembly/assembly/__tests__/empty.spec.wat +++ b/packages/assembly/assembly/__tests__/empty.spec.wat @@ -1,20 +1,23 @@ (module - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "reportActualArray" (func $assembly/internal/report/Actual/reportActualArray (param i32 i32))) (import "__aspect" "reportActualValue" (func $assembly/internal/report/Actual/reportActualFloat (param f64 i32 i32))) (import "__aspect" "reportActualValue" (func $assembly/internal/report/Actual/reportActualInteger (param i32 i32 i32))) @@ -36,22 +39,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 2 funcref) (elem (i32.const 1) $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/noOp/noOp i32 (i32.const 1)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) @@ -75,8 +69,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 288)) - (global $~lib/heap/__heap_base i32 (i32.const 324)) + (global $~lib/rt/__rtti_base i32 (i32.const 176)) + (global $~lib/heap/__heap_base i32 (i32.const 212)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1165,296 +1159,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 32 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 33 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 34 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 35 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 36 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 37 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 38 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 32 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1538,7 +1243,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 33 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1633,9 +1338,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 40 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 34 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1649,12 +1354,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1665,20 +1370,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1691,13 +1396,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1709,11 +1414,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1724,1479 +1429,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 41 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 + local.get $4 local.get $2 - local.get $1 i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 43 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 44 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end + local.get $4 local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 45 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + i32.store offset=12 local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 47 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 48 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc local.get $4 - i32.add - global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 49 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 35 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 50 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 36 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3206,90 +1496,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 37 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 51 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 38 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3300,20 +1525,20 @@ call $~lib/rt/pure/decrement end ) - (func $start:assembly/internal/noOp~anonymous|0 (; 52 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 39 ;) nop ) - (func $assembly/index/__ready (; 53 ;) + (func $assembly/index/__ready (; 40 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 54 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 41 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 55 ;) + (func $assembly/internal/report/Actual/__sendActual (; 42 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3421,7 +1646,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 56 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 43 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3560,20 +1785,20 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 57 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 44 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 58 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 45 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 59 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 46 ;) (result i32) i32.const 3 ) - (func $assembly/internal/report/Expected/Expected.clear (; 60 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 47 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3591,7 +1816,7 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/report/Actual/Actual.clear (; 61 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 48 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3611,147 +1836,137 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/Expectation/__cleanup (; 62 ;) + (func $assembly/internal/Expectation/__cleanup (; 49 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 63 ;) + (func $~start (; 50 ;) nop ) - (func $~lib/array/Array#__visit_impl (; 64 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 51 ;) + return ) - (func $~lib/rt/pure/__visit (; 65 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 52 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 53 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 54 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 55 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 66 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 56 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/emptyDescribeBlock.spec.wat b/packages/assembly/assembly/__tests__/emptyDescribeBlock.spec.wat index ddbd42b5..fcccbc60 100644 --- a/packages/assembly/assembly/__tests__/emptyDescribeBlock.spec.wat +++ b/packages/assembly/assembly/__tests__/emptyDescribeBlock.spec.wat @@ -1,20 +1,24 @@ (module - (type $i32_=>_none (func (param i32))) - (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00e\00m\00p\00t\00y\00 \00t\00e\00s\00t\00i\00n\00g\00 \00b\00l\00o\00c\00k\00") + (data (i32.const 240) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "reportDescribe" (func $assembly/internal/Describe/reportDescribe (param i32))) (import "__aspect" "reportEndDescribe" (func $assembly/internal/Describe/reportEndDescribe)) (import "__aspect" "reportActualArray" (func $assembly/internal/report/Actual/reportActualArray (param i32 i32))) @@ -38,23 +42,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00e\00m\00p\00t\00y\00 \00t\00e\00s\00t\00i\00n\00g\00 \00b\00l\00o\00c\00k\00") - (data (i32.const 352) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 3 funcref) (elem (i32.const 1) $start:assembly/__tests__/emptyDescribeBlock.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/noOp/noOp i32 (i32.const 2)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) @@ -79,8 +73,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 352)) - (global $~lib/heap/__heap_base i32 (i32.const 388)) + (global $~lib/rt/__rtti_base i32 (i32.const 240)) + (global $~lib/heap/__heap_base i32 (i32.const 276)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1169,296 +1163,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 34 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 35 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 36 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 37 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 38 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 39 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 40 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 34 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1542,7 +1247,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 35 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1637,9 +1342,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1653,12 +1358,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1669,20 +1374,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1695,13 +1400,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1713,11 +1418,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1728,1479 +1433,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 + local.get $4 local.get $2 - local.get $1 i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 44 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 45 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 46 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end + local.get $4 local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 47 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + i32.store offset=12 local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 48 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 49 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 50 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc local.get $4 - i32.add - global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 51 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 37 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 52 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 38 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3210,90 +1500,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 39 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 53 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 40 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3304,13 +1529,13 @@ call $~lib/rt/pure/decrement end ) - (func $start:assembly/__tests__/emptyDescribeBlock.spec~anonymous|0 (; 54 ;) + (func $start:assembly/__tests__/emptyDescribeBlock.spec~anonymous|0 (; 41 ;) nop ) - (func $start:assembly/internal/noOp~anonymous|0 (; 55 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 42 ;) nop ) - (func $assembly/internal/Describe/describe (; 56 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 43 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3324,22 +1549,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/emptyDescribeBlock.spec (; 57 ;) - i32.const 304 + (func $start:assembly/__tests__/emptyDescribeBlock.spec (; 44 ;) + i32.const 192 i32.const 1 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 58 ;) + (func $assembly/index/__ready (; 45 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 59 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 46 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 60 ;) + (func $assembly/internal/report/Actual/__sendActual (; 47 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3447,7 +1672,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 61 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 48 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3586,20 +1811,20 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 62 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 49 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 63 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 50 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 64 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 51 ;) (result i32) i32.const 3 ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 52 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3617,7 +1842,7 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/report/Actual/Actual.clear (; 66 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3637,11 +1862,11 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/Expectation/__cleanup (; 67 ;) + (func $assembly/internal/Expectation/__cleanup (; 54 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 68 ;) + (func $~start (; 55 ;) global.get $~started if return @@ -3651,140 +1876,130 @@ end call $start:assembly/__tests__/emptyDescribeBlock.spec ) - (func $~lib/array/Array#__visit_impl (; 69 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 56 ;) + return ) - (func $~lib/rt/pure/__visit (; 70 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 57 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 58 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 59 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 60 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 71 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 61 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/flow.spec.ts b/packages/assembly/assembly/__tests__/flow.spec.ts index a4288459..47e53cc2 100644 --- a/packages/assembly/assembly/__tests__/flow.spec.ts +++ b/packages/assembly/assembly/__tests__/flow.spec.ts @@ -1,8 +1,8 @@ -var beforeEachRan: i32 = 0; -var beforeAllRan: i32 = 0; -var afterEachRan: i32 = 0; -var afterAllRan: i32 = 0; -var testCount: i32 = 0; +var beforeEachRan = 0; +var beforeAllRan = 0; +var afterEachRan = 0; +var afterAllRan = 0; +var testCount = 0; /** diff --git a/packages/assembly/assembly/__tests__/flow.spec.wat b/packages/assembly/assembly/__tests__/flow.spec.wat index 8ba6c44a..5ceb3faf 100644 --- a/packages/assembly/assembly/__tests__/flow.spec.wat +++ b/packages/assembly/assembly/__tests__/flow.spec.wat @@ -4,17 +4,36 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00s\00t\00") + (data (i32.const 224) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00 \00t\00h\00i\00s\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00s\00t\00") + (data (i32.const 304) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00t\00h\00i\00s\00 \00t\00e\00s\00t\00 \00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00") + (data (i32.const 368) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 384) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00l\00o\00w\00") + (data (i32.const 416) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00t\00w\00i\00c\00e\00") + (data (i32.const 496) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \004\00") + (data (i32.const 576) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00f\00l\00o\00w\00.\00s\00p\00e\00c\00.\00t\00s\00") + (data (i32.const 656) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00b\00e\00f\00o\00r\00e\00A\00l\00l\00 \00o\00n\00c\00e\00") + (data (i32.const 736) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00b\00e\00f\00o\00r\00e\00A\00l\00l\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") + (data (i32.const 816) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00t\00w\00i\00c\00e\00") + (data (i32.const 896) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \004\00") + (data (i32.const 976) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00a\00f\00t\00e\00r\00A\00l\00l\00 \00o\00n\00c\00e\00") + (data (i32.const 1056) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00a\00f\00t\00e\00r\00A\00l\00l\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") + (data (i32.const 1136) ".\00\00\00\01\00\00\00\01\00\00\00.\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00a\00l\00l\00 \004\00 \00t\00e\00s\00t\00s\00") + (data (i32.const 1200) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00t\00e\00s\00t\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \004\00") + (data (i32.const 1280) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "reportBeforeAll" (func $assembly/internal/Test/reportBeforeAll (param i32))) (import "__aspect" "reportBeforeEach" (func $assembly/internal/Test/reportBeforeEach (param i32))) (import "__aspect" "reportAfterEach" (func $assembly/internal/Test/reportAfterEach (param i32))) @@ -44,38 +63,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00s\00t\00") - (data (i32.const 336) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00 \00t\00h\00i\00s\00 \00e\00x\00a\00m\00p\00l\00e\00 \00t\00e\00s\00t\00") - (data (i32.const 416) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00t\00h\00i\00s\00 \00t\00e\00s\00t\00 \00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00") - (data (i32.const 480) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 496) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00l\00o\00w\00") - (data (i32.const 528) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00t\00w\00i\00c\00e\00") - (data (i32.const 608) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \004\00") - (data (i32.const 688) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00f\00l\00o\00w\00.\00s\00p\00e\00c\00.\00t\00s\00") - (data (i32.const 768) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00b\00e\00f\00o\00r\00e\00A\00l\00l\00 \00o\00n\00c\00e\00") - (data (i32.const 848) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00b\00e\00f\00o\00r\00e\00A\00l\00l\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") - (data (i32.const 928) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00t\00w\00i\00c\00e\00") - (data (i32.const 1008) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \004\00") - (data (i32.const 1088) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00a\00f\00t\00e\00r\00A\00l\00l\00 \00o\00n\00c\00e\00") - (data (i32.const 1168) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00a\00f\00t\00e\00r\00A\00l\00l\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") - (data (i32.const 1248) ".\00\00\00\01\00\00\00\01\00\00\00.\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00a\00l\00l\00 \00a\00l\00l\00 \004\00 \00t\00e\00s\00t\00s\00") - (data (i32.const 1312) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00t\00e\00s\00t\00 \00r\00u\00n\00 \00c\00o\00u\00n\00t\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \004\00") - (data (i32.const 1392) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 17 funcref) (elem (i32.const 1) $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/flow.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0 $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|0 $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|1 $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|2 $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|3 $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|4 $start:assembly/__tests__/flow.spec~anonymous|1) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/flow.spec/beforeEachRan (mut i32) (i32.const 0)) (global $assembly/__tests__/flow.spec/beforeAllRan (mut i32) (i32.const 0)) (global $assembly/__tests__/flow.spec/afterEachRan (mut i32) (i32.const 0)) @@ -105,8 +99,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1392)) - (global $~lib/heap/__heap_base i32 (i32.const 1428)) + (global $~lib/rt/__rtti_base i32 (i32.const 1280)) + (global $~lib/heap/__heap_base i32 (i32.const 1316)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1195,296 +1189,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 41 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 42 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 44 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 45 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 46 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 40 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1568,7 +1273,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 47 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1663,9 +1368,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1679,12 +1384,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1695,20 +1400,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1721,13 +1426,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1739,11 +1444,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1754,1479 +1459,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 49 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 + local.get $4 local.get $2 - local.get $1 i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 50 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 51 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 52 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end + local.get $4 local.get $1 - i32.const 4 - i32.add + i32.store offset=12 local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 55 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 56 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc local.get $4 - i32.add - global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 57 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 44 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3236,90 +1526,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 45 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 59 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 46 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3330,53 +1555,53 @@ call $~lib/rt/pure/decrement end ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|0 (; 60 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|0 (; 47 ;) global.get $assembly/__tests__/flow.spec/beforeAllRan i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/beforeAllRan ) - (func $assembly/internal/Test/beforeAll (; 61 ;) (param $0 i32) + (func $assembly/internal/Test/beforeAll (; 48 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeAll ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|1 (; 62 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|1 (; 49 ;) global.get $assembly/__tests__/flow.spec/beforeEachRan i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/beforeEachRan ) - (func $assembly/internal/Test/beforeEach (; 63 ;) (param $0 i32) + (func $assembly/internal/Test/beforeEach (; 50 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeEach ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|2 (; 64 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|2 (; 51 ;) global.get $assembly/__tests__/flow.spec/afterEachRan i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/afterEachRan ) - (func $assembly/internal/Test/afterEach (; 65 ;) (param $0 i32) + (func $assembly/internal/Test/afterEach (; 52 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterEach ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|3 (; 66 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|3 (; 53 ;) global.get $assembly/__tests__/flow.spec/afterAllRan i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/afterAllRan ) - (func $assembly/internal/Test/afterAll (; 67 ;) (param $0 i32) + (func $assembly/internal/Test/afterAll (; 54 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterAll ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|4 (; 68 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|4 (; 55 ;) global.get $assembly/__tests__/flow.spec/testCount i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/testCount ) - (func $assembly/internal/Test/it (; 69 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 56 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3386,26 +1611,26 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|5 (; 70 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|5 (; 57 ;) global.get $assembly/__tests__/flow.spec/testCount i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/testCount ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|6 (; 71 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|6 (; 58 ;) global.get $assembly/__tests__/flow.spec/testCount i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/testCount ) - (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|7 (; 72 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0~anonymous|7 (; 59 ;) global.get $assembly/__tests__/flow.spec/testCount i32.const 1 i32.add global.set $assembly/__tests__/flow.spec/testCount unreachable ) - (func $assembly/internal/Test/throws (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3421,7 +1646,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/flow.spec~anonymous|0 (; 74 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|0 (; 61 ;) i32.const 1 call $assembly/internal/Test/beforeAll i32.const 2 @@ -3430,24 +1655,24 @@ call $assembly/internal/Test/afterEach i32.const 4 call $assembly/internal/Test/afterAll - i32.const 352 + i32.const 240 i32.const 5 call $assembly/internal/Test/it - i32.const 352 + i32.const 240 i32.const 6 call $assembly/internal/Test/it - i32.const 352 + i32.const 240 i32.const 7 call $assembly/internal/Test/it - i32.const 432 + i32.const 320 i32.const 8 - i32.const 496 + i32.const 384 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 75 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 62 ;) nop ) - (func $assembly/internal/Describe/describe (; 76 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 63 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3461,112 +1686,112 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|0 (; 77 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|0 (; 64 ;) global.get $assembly/__tests__/flow.spec/beforeEachRan i32.const 4 i32.eq i32.eqz if - i32.const 624 - i32.const 704 + i32.const 512 + i32.const 592 i32.const 74 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|1 (; 78 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|1 (; 65 ;) global.get $assembly/__tests__/flow.spec/beforeAllRan i32.const 1 i32.eq i32.eqz if - i32.const 864 - i32.const 704 + i32.const 752 + i32.const 592 i32.const 82 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|2 (; 79 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|2 (; 66 ;) global.get $assembly/__tests__/flow.spec/afterEachRan i32.const 4 i32.eq i32.eqz if - i32.const 1024 - i32.const 704 + i32.const 912 + i32.const 592 i32.const 90 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|3 (; 80 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|3 (; 67 ;) global.get $assembly/__tests__/flow.spec/afterAllRan i32.const 1 i32.eq i32.eqz if - i32.const 1184 - i32.const 704 + i32.const 1072 + i32.const 592 i32.const 98 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|4 (; 81 ;) + (func $start:assembly/__tests__/flow.spec~anonymous|1~anonymous|4 (; 68 ;) global.get $assembly/__tests__/flow.spec/testCount i32.const 4 i32.eq i32.eqz if - i32.const 1328 - i32.const 704 + i32.const 1216 + i32.const 592 i32.const 105 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $start:assembly/__tests__/flow.spec~anonymous|1 (; 82 ;) - i32.const 544 + (func $start:assembly/__tests__/flow.spec~anonymous|1 (; 69 ;) + i32.const 432 i32.const 11 call $assembly/internal/Test/it - i32.const 784 + i32.const 672 i32.const 12 call $assembly/internal/Test/it - i32.const 944 + i32.const 832 i32.const 13 call $assembly/internal/Test/it - i32.const 1104 + i32.const 992 i32.const 14 call $assembly/internal/Test/it - i32.const 1264 + i32.const 1152 i32.const 15 call $assembly/internal/Test/it ) - (func $start:assembly/__tests__/flow.spec (; 83 ;) - i32.const 304 + (func $start:assembly/__tests__/flow.spec (; 70 ;) + i32.const 192 i32.const 9 call $assembly/internal/Describe/describe - i32.const 512 + i32.const 400 i32.const 16 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 84 ;) + (func $assembly/index/__ready (; 71 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 85 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 72 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 86 ;) + (func $assembly/internal/report/Actual/__sendActual (; 73 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3674,7 +1899,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 87 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 74 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3813,20 +2038,20 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 88 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 75 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 89 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 76 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 90 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 77 ;) (result i32) i32.const 3 ) - (func $assembly/internal/report/Expected/Expected.clear (; 91 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 78 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3844,7 +2069,7 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/report/Actual/Actual.clear (; 92 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 79 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3864,11 +2089,11 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/Expectation/__cleanup (; 93 ;) + (func $assembly/internal/Expectation/__cleanup (; 80 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 94 ;) + (func $~start (; 81 ;) global.get $~started if return @@ -3878,140 +2103,130 @@ end call $start:assembly/__tests__/flow.spec ) - (func $~lib/array/Array#__visit_impl (; 95 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 82 ;) + return ) - (func $~lib/rt/pure/__visit (; 96 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 83 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 84 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 85 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 86 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 97 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 87 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/greaterThan.spec.ts b/packages/assembly/assembly/__tests__/greaterThan.spec.ts index 4109d4ac..7b90e809 100644 --- a/packages/assembly/assembly/__tests__/greaterThan.spec.ts +++ b/packages/assembly/assembly/__tests__/greaterThan.spec.ts @@ -13,56 +13,56 @@ describe("GreaterThan (>)", () => { * This test is the idiomatic greaterThan test. */ it("should validate that the actual value is greater than the expected value", () => { - expect(42).toBeGreaterThan(0, "Assertions with larger actual values should not throw."); + expect(42).toBeGreaterThan(0, "Assertions with larger actual values should not throw."); }); /** * This test verifies the negated version of the previous test actually throws an error. */ throws("should throw when the expected value is less than the actual value", () => { - expect(42).not.toBeGreaterThan(0); + expect(42).not.toBeGreaterThan(0); }, "Negated toBeGreaterThan assertions should throw when the actual value is less than the expected value."); /** * This test is the contrapositive of the first test, and should be valid as well. */ it("should validate that the actual value is not greater than the expected value", () => { - expect(0).not.toBeGreaterThan(42); + expect(0).not.toBeGreaterThan(42); }); /** * This test verifies that the negated version of the previous test actualy throws an error. */ throws("should throw when the expected value is not greater than the actual value", () => { - expect(0).toBeGreaterThan(42); + expect(0).toBeGreaterThan(42); }, "It should throw when the actual value is less than the expected value."); /** * This test verifies that when values are equal, the negated expectation is successful. */ it("should validate that equal values are not greater than each other", () => { - expect(42).not.toBeGreaterThan(42); + expect(42).not.toBeGreaterThan(42); }); /** * This test verifies that when values are equal, the expectation throws. */ throws("should throw when the values are equal", () => { - expect(42).toBeGreaterThan(42); + expect(42).toBeGreaterThan(42); }, "It should throw when the actual value equals the expected value."); /** * This test verifies that when the actual value is NaN, the expectation throws. */ throws("should throw when the actual value is NaN", () => { - expect(NaN).toBeGreaterThan(0); + expect(NaN).toBeGreaterThan(0); }, "It should throw when the actual value is NaN."); /** * This test verifies that when the expected value is NaN, the expectation throws. */ throws("should throw when the expected value is NaN", () => { - expect(0).toBeGreaterThan(NaN); + expect(0.0).toBeGreaterThan(NaN); }, "It should throw when the expected value is NaN."); /** @@ -70,7 +70,7 @@ describe("GreaterThan (>)", () => { * is used. */ it("should verify one reference is greater than another", () => { - expect(vec2) + expect(vec2) .toBeGreaterThan(vec1, "Operator overloading should allow references to verify that one reference is greater than another value"); }); diff --git a/packages/assembly/assembly/__tests__/greaterThan.spec.wat b/packages/assembly/assembly/__tests__/greaterThan.spec.wat index 22117bec..c4052616 100644 --- a/packages/assembly/assembly/__tests__/greaterThan.spec.wat +++ b/packages/assembly/assembly/__tests__/greaterThan.spec.wat @@ -3,25 +3,57 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_i32_=>_none (func (param i32 f64 i32))) (type $f64_=>_none (func (param f64))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_f64_i32_i32_=>_none (func (param f64 f64 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_=>_f64 (func (param i32) (result f64))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00(\00>\00)\00") + (data (i32.const 224) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 384) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00l\00a\00r\00g\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 512) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 608) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 768) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 784) "\cc\00\00\00\01\00\00\00\01\00\00\00\cc\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1008) "\98\00\00\00\01\00\00\00\01\00\00\00\98\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1184) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1360) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1520) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 1680) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1776) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1920) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2032) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2144) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2256) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2368) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2480) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2592) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") + (data (i32.const 2720) "\ce\00\00\00\01\00\00\00\01\00\00\00\ce\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 2944) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 3024) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3120) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3248) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3360) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3520) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3632) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3792) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -50,50 +82,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00(\00>\00)\00") - (data (i32.const 336) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 496) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00l\00a\00r\00g\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 624) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 720) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 880) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 896) "\cc\00\00\00\01\00\00\00\01\00\00\00\cc\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1120) "\98\00\00\00\01\00\00\00\01\00\00\00\98\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1296) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1472) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1632) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 1792) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 1888) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 2032) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2144) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2256) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2368) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2480) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2592) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2704) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") - (data (i32.const 2832) "\ce\00\00\00\01\00\00\00\01\00\00\00\ce\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 3056) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") - (data (i32.const 3136) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3232) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3360) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3472) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3632) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3744) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3904) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 14 funcref) (elem (i32.const 1) $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/greaterThan.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/greaterThan.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/__tests__/greaterThan.spec/vec2 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) @@ -120,8 +115,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3904)) - (global $~lib/heap/__heap_base i32 (i32.const 3980)) + (global $~lib/rt/__rtti_base i32 (i32.const 3792)) + (global $~lib/heap/__heap_base i32 (i32.const 3868)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1210,296 +1205,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1583,7 +1289,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1678,9 +1384,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1694,12 +1400,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1710,20 +1416,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1736,13 +1442,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1754,11 +1460,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1769,37 +1475,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1817,7 +1521,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1830,1511 +1534,33 @@ local.get $0 call $~lib/rt/rtrace/onincrement local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3345,7 +1571,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 59 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 46 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3366,7 +1592,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 47 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3387,12 +1613,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 48 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 49 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3418,7 +1644,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 50 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3452,7 +1678,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 64 ;) + (func $assembly/internal/comparison/assert/assert (; 51 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 528 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/greaterThanComparison/greaterThanComparison (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $0 + local.get $1 + i32.gt_s + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3472,7 +1736,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3490,74 +1754,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 - i32.gt_s - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/greaterThanComparison/greaterThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|0 (; 67 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|0 (; 56 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 512 + i32.const 400 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 68 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 57 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3567,14 +1791,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 69 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|1 (; 70 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|1 (; 59 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3583,14 +1807,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3606,7 +1830,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|2 (; 72 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|2 (; 61 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3615,25 +1839,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|3 (; 73 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|3 (; 62 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|4 (; 74 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|4 (; 63 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3642,25 +1866,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|5 (; 75 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|5 (; 64 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 76 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 65 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -3681,12 +1905,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 77 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 66 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 78 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 67 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3694,7 +1918,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Expected/Expected.report (; 79 ;) (param $0 f64) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 68 ;) (param $0 f64) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3710,127 +1934,76 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.float ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 80 ;) (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/greaterThanComparison/greaterThanComparison (; 69 ;) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - f64.load offset=8 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $5 - local.get $5 + local.get $1 + local.get $1 f64.ne i32.eqz - local.set $8 - i32.const 2160 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 - local.get $6 + i32.const 2048 + call $assembly/internal/comparison/assert/assert + local.get $0 + local.get $0 f64.ne i32.eqz - local.set $8 - i32.const 2272 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 2160 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 f64.gt i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 70 ;) (param $0 i32) (param $1 f64) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.load offset=8 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/greaterThanComparison/greaterThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|6 (; 81 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|6 (; 71 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|7 (; 82 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|7 (; 72 ;) (local $0 i32) f64.const 0 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 83 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 73 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3873,7 +2046,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 84 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 74 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3886,7 +2059,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 85 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 75 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3914,7 +2087,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 86 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 76 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3952,7 +2125,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 87 ;) (param $0 i32) (result f64) + (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 77 ;) (param $0 i32) (result f64) local.get $0 f64.load local.get $0 @@ -3972,7 +2145,7 @@ f64.add f64.sqrt ) - (func $assembly/__tests__/setup/Vec3/Vec3#__greaterThan (; 88 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__greaterThan (; 78 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 f64) (local $3 i32) (local $4 f64) @@ -3983,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 3072 + i32.const 2960 i32.const 16 i32.const 4 call $~lib/builtins/abort @@ -3993,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 3072 + i32.const 2960 i32.const 17 i32.const 4 call $~lib/builtins/abort @@ -4007,6 +2180,11 @@ if (result i32) local.get $3 else + i32.const 0 + i32.const 2960 + i32.const 19 + i32.const 23 + call $~lib/builtins/abort unreachable end call $assembly/__tests__/setup/Vec3/Vec3#magnitude @@ -4019,66 +2197,49 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/greaterThanComparison/greaterThanComparison (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__greaterThan i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/greaterThanComparison/greaterThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4086,18 +2247,18 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|8 (; 90 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|8 (; 81 ;) (local $0 i32) global.get $assembly/__tests__/greaterThan.spec/vec2 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/greaterThan.spec/vec1 - i32.const 2848 + i32.const 2736 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 91 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4140,7 +2301,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 92 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4153,7 +2314,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 93 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 84 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4191,7 +2352,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 94 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 85 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4239,106 +2400,59 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/greaterThanComparison/greaterThanComparison (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $5 + local.get $1 i32.const 0 i32.ne - local.set $8 - i32.const 3248 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 + i32.const 3136 + call $assembly/internal/comparison/assert/assert + local.get $0 i32.const 0 i32.ne - local.set $8 - i32.const 3376 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 3264 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__greaterThan i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThan (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/greaterThanComparison/greaterThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4346,74 +2460,74 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|9 (; 96 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|9 (; 88 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/greaterThan.spec/vec2 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|10 (; 97 ;) + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0~anonymous|10 (; 89 ;) (local $0 i32) global.get $assembly/__tests__/greaterThan.spec/vec2 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeGreaterThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec~anonymous|0 (; 98 ;) - i32.const 352 + (func $start:assembly/__tests__/greaterThan.spec~anonymous|0 (; 90 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 736 + i32.const 624 i32.const 2 - i32.const 912 + i32.const 800 call $assembly/internal/Test/throws - i32.const 1136 + i32.const 1024 i32.const 3 call $assembly/internal/Test/it - i32.const 1312 + i32.const 1200 i32.const 4 - i32.const 1488 + i32.const 1376 call $assembly/internal/Test/throws - i32.const 1648 + i32.const 1536 i32.const 5 call $assembly/internal/Test/it - i32.const 1808 + i32.const 1696 i32.const 6 - i32.const 1904 + i32.const 1792 call $assembly/internal/Test/throws - i32.const 2048 + i32.const 1936 i32.const 7 - i32.const 2384 + i32.const 2272 call $assembly/internal/Test/throws - i32.const 2496 + i32.const 2384 i32.const 8 - i32.const 2608 + i32.const 2496 call $assembly/internal/Test/throws - i32.const 2720 + i32.const 2608 i32.const 9 call $assembly/internal/Test/it - i32.const 3152 + i32.const 3040 i32.const 10 - i32.const 3488 + i32.const 3376 call $assembly/internal/Test/throws - i32.const 3648 + i32.const 3536 i32.const 11 - i32.const 3760 + i32.const 3648 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 99 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 91 ;) nop ) - (func $assembly/internal/Describe/describe (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 92 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4427,7 +2541,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThan.spec (; 101 ;) + (func $start:assembly/__tests__/greaterThan.spec (; 93 ;) i32.const 0 f64.const 1 f64.const 2 @@ -4440,21 +2554,21 @@ f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/greaterThan.spec/vec2 - i32.const 304 + i32.const 192 i32.const 12 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 102 ;) + (func $assembly/index/__ready (; 94 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 103 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 95 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 104 ;) + (func $assembly/internal/report/Actual/__sendActual (; 96 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4562,7 +2676,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 105 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 97 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4701,24 +2815,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 106 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 98 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 107 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 99 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 108 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 100 ;) (result i32) i32.const 8 ) - (func $assembly/internal/Expectation/__cleanup (; 109 ;) + (func $assembly/internal/Expectation/__cleanup (; 101 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 110 ;) + (func $~start (; 102 ;) global.get $~started if return @@ -4728,140 +2842,130 @@ end call $start:assembly/__tests__/greaterThan.spec ) - (func $~lib/array/Array#__visit_impl (; 111 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 103 ;) + return ) - (func $~lib/rt/pure/__visit (; 112 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 104 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 105 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 106 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 107 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 113 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 108 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.ts b/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.ts index 7cb2cfa1..b93f0456 100644 --- a/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.ts +++ b/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.ts @@ -13,56 +13,56 @@ describe("GreaterThanOrEqualTo (>=)", () => { * This test is the idiomatic greaterThanOrEqualTo test. */ it("should validate that the actual value is greater than or equal to the expected value", () => { - expect(42).toBeGreaterThanOrEqual(0, "Assertions with larger actual values should not throw."); + expect(42).toBeGreaterThanOrEqual(0, "Assertions with larger actual values should not throw."); }); /** * This test verifies the negated version of the previous test actually throws an error. */ throws("should throw when the expected value is less than the actual value", () => { - expect(42).not.toBeGreaterThanOrEqual(0); + expect(42).not.toBeGreaterThanOrEqual(0); }, "Negated toBeGreaterThanOrEqualTo assertions should throw when the actual value is less than the expected value."); /** * This test is the contrapositive of the first test, and should be valid as well. */ it("should validate that the actual value is not greater than or equal to the expected value", () => { - expect(0).not.toBeGreaterThanOrEqual(42); + expect(0).not.toBeGreaterThanOrEqual(42); }); /** * This test verifies that the negated version of the previous test actualy throws an error. */ throws("should throw when the expected value is not greater than or equal to the actual value", () => { - expect(0).toBeGreaterThanOrEqual(42); + expect(0).toBeGreaterThanOrEqual(42); }, "It should throw when the actual value is less than the expected value."); /** * This test verifies that when values are equal, the negated expectation is successful. */ it("should validate that equal values are greater than or equal to each other", () => { - expect(42).toBeGreaterThanOrEqual(42); + expect(42).toBeGreaterThanOrEqual(42); }); /** * This test verifies that when values are equal, the expectation throws. */ throws("should throw when the values are equal", () => { - expect(42).not.toBeGreaterThanOrEqual(42); + expect(42).not.toBeGreaterThanOrEqual(42); }, "It should throw when the actual value equals the expected value."); /** * This test verifies that when the actual value is NaN, the expectation throws. */ throws("should throw when the actual value is NaN", () => { - expect(NaN).toBeGreaterThanOrEqual(0); + expect(NaN).toBeGreaterThanOrEqual(0); }, "It should throw when the actual value is NaN."); /** * This test verifies that when the expected value is NaN, the expectation throws. */ throws("should throw when the expected value is NaN", () => { - expect(0).toBeGreaterThanOrEqual(NaN); + expect(0.0).toBeGreaterThanOrEqual(NaN); }, "It should throw when the expected value is NaN."); /** @@ -70,7 +70,7 @@ describe("GreaterThanOrEqualTo (>=)", () => { * is used. */ it("should verify one reference is greater than another", () => { - expect(vec2) + expect(vec2) .toBeGreaterThanOrEqual(vec1, "Operator overloading should allow references to verify that one reference is greater than another value"); }); diff --git a/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.wat b/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.wat index ef61bbfe..da4cca48 100644 --- a/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.wat +++ b/packages/assembly/assembly/__tests__/greaterThanOrEqualTo.spec.wat @@ -3,25 +3,57 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_i32_=>_none (func (param i32 f64 i32))) (type $f64_=>_none (func (param f64))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_f64_i32_i32_=>_none (func (param f64 f64 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_=>_f64 (func (param i32) (result f64))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00(\00>\00=\00)\00") + (data (i32.const 256) "\a8\00\00\00\01\00\00\00\01\00\00\00\a8\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 448) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00l\00a\00r\00g\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 576) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 672) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 832) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 848) "\de\00\00\00\01\00\00\00\01\00\00\00\de\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1088) "\b0\00\00\00\01\00\00\00\01\00\00\00\b0\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1280) "\aa\00\00\00\01\00\00\00\01\00\00\00\aa\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1472) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1632) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 1808) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1904) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 2048) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2160) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2272) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2384) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2496) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2608) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2720) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") + (data (i32.const 2848) "\ce\00\00\00\01\00\00\00\01\00\00\00\ce\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 3072) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 3152) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3248) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3376) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3488) "\9e\00\00\00\01\00\00\00\01\00\00\00\9e\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3664) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3776) "\a2\00\00\00\01\00\00\00\01\00\00\00\a2\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3968) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -50,50 +82,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00(\00>\00=\00)\00") - (data (i32.const 368) "\a8\00\00\00\01\00\00\00\01\00\00\00\a8\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 560) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00l\00a\00r\00g\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 688) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 784) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 944) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 960) "\de\00\00\00\01\00\00\00\01\00\00\00\de\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1200) "\b0\00\00\00\01\00\00\00\01\00\00\00\b0\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1392) "\aa\00\00\00\01\00\00\00\01\00\00\00\aa\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1584) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1744) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 1920) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 2016) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 2160) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2272) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2384) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2496) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2608) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2720) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2832) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") - (data (i32.const 2960) "\ce\00\00\00\01\00\00\00\01\00\00\00\ce\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00g\00r\00e\00a\00t\00e\00r\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 3184) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") - (data (i32.const 3264) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3360) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3488) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3600) "\9e\00\00\00\01\00\00\00\01\00\00\00\9e\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3776) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3888) "\a2\00\00\00\01\00\00\00\01\00\00\00\a2\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00G\00r\00e\00a\00t\00e\00r\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 4080) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 14 funcref) (elem (i32.const 1) $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/greaterThanOrEqualTo.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/__tests__/greaterThanOrEqualTo.spec/vec2 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) @@ -120,8 +115,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 4080)) - (global $~lib/heap/__heap_base i32 (i32.const 4156)) + (global $~lib/rt/__rtti_base i32 (i32.const 3968)) + (global $~lib/heap/__heap_base i32 (i32.const 4044)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1210,296 +1205,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1583,7 +1289,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1678,9 +1384,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1694,12 +1400,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1710,20 +1416,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1736,13 +1442,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1754,11 +1460,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1769,37 +1475,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1817,7 +1521,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1830,1511 +1534,33 @@ local.get $0 call $~lib/rt/rtrace/onincrement local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3345,7 +1571,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 59 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 46 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3366,7 +1592,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 47 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3387,12 +1613,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 48 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 49 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3418,7 +1644,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 50 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3452,7 +1678,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 64 ;) + (func $assembly/internal/comparison/assert/assert (; 51 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 592 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $0 + local.get $1 + i32.ge_s + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3472,7 +1736,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3490,74 +1754,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 - i32.ge_s - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|0 (; 67 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|0 (; 56 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 576 + i32.const 464 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 68 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 57 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3567,14 +1791,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 69 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|1 (; 70 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|1 (; 59 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3583,14 +1807,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3606,7 +1830,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|2 (; 72 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|2 (; 61 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3615,36 +1839,36 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|3 (; 73 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|3 (; 62 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|4 (; 74 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|4 (; 63 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|5 (; 75 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|5 (; 64 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3653,14 +1877,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 76 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 65 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -3681,12 +1905,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 77 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 66 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 78 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 67 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3694,7 +1918,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Expected/Expected.report (; 79 ;) (param $0 f64) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 68 ;) (param $0 f64) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3710,127 +1934,76 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.float ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 80 ;) (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison (; 69 ;) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - f64.load offset=8 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $5 - local.get $5 + local.get $1 + local.get $1 f64.ne i32.eqz - local.set $8 - i32.const 2288 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 - local.get $6 + i32.const 2176 + call $assembly/internal/comparison/assert/assert + local.get $0 + local.get $0 f64.ne i32.eqz - local.set $8 - i32.const 2400 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 2288 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 f64.ge i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 70 ;) (param $0 i32) (param $1 f64) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.load offset=8 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|6 (; 81 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|6 (; 71 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const 0 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|7 (; 82 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|7 (; 72 ;) (local $0 i32) f64.const 0 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 83 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 73 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3873,7 +2046,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 84 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 74 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3886,7 +2059,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 85 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 75 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3914,7 +2087,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 86 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 76 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3952,7 +2125,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 87 ;) (param $0 i32) (result f64) + (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 77 ;) (param $0 i32) (result f64) local.get $0 f64.load local.get $0 @@ -3972,7 +2145,7 @@ f64.add f64.sqrt ) - (func $assembly/__tests__/setup/Vec3/Vec3#__greaterThanOrEqualTo (; 88 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__greaterThanOrEqualTo (; 78 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 f64) (local $3 i32) (local $4 f64) @@ -3983,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 3200 + i32.const 3088 i32.const 25 i32.const 4 call $~lib/builtins/abort @@ -3993,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 3200 + i32.const 3088 i32.const 26 i32.const 4 call $~lib/builtins/abort @@ -4007,6 +2180,11 @@ if (result i32) local.get $3 else + i32.const 0 + i32.const 3088 + i32.const 28 + i32.const 23 + call $~lib/builtins/abort unreachable end call $assembly/__tests__/setup/Vec3/Vec3#magnitude @@ -4019,66 +2197,49 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__greaterThanOrEqualTo i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4086,18 +2247,18 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|8 (; 90 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|8 (; 81 ;) (local $0 i32) global.get $assembly/__tests__/greaterThanOrEqualTo.spec/vec2 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/greaterThanOrEqualTo.spec/vec1 - i32.const 2976 + i32.const 2864 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 91 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4140,7 +2301,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 92 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4153,7 +2314,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 93 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 84 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4191,7 +2352,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 94 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 85 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4239,106 +2400,59 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $5 + local.get $1 i32.const 0 i32.ne - local.set $8 - i32.const 3376 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 + i32.const 3264 + call $assembly/internal/comparison/assert/assert + local.get $0 i32.const 0 i32.ne - local.set $8 - i32.const 3504 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 3392 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__greaterThanOrEqualTo i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 704 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/greaterThanOrEqualToComparison/greaterThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4346,74 +2460,74 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|9 (; 96 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|9 (; 88 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/greaterThanOrEqualTo.spec/vec2 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|10 (; 97 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0~anonymous|10 (; 89 ;) (local $0 i32) global.get $assembly/__tests__/greaterThanOrEqualTo.spec/vec2 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 960 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeGreaterThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0 (; 98 ;) - i32.const 384 + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec~anonymous|0 (; 90 ;) + i32.const 272 i32.const 1 call $assembly/internal/Test/it - i32.const 800 + i32.const 688 i32.const 2 - i32.const 976 + i32.const 864 call $assembly/internal/Test/throws - i32.const 1216 + i32.const 1104 i32.const 3 call $assembly/internal/Test/it - i32.const 1408 + i32.const 1296 i32.const 4 - i32.const 1600 + i32.const 1488 call $assembly/internal/Test/throws - i32.const 1760 + i32.const 1648 i32.const 5 call $assembly/internal/Test/it - i32.const 1936 + i32.const 1824 i32.const 6 - i32.const 2032 + i32.const 1920 call $assembly/internal/Test/throws - i32.const 2176 + i32.const 2064 i32.const 7 - i32.const 2512 + i32.const 2400 call $assembly/internal/Test/throws - i32.const 2624 + i32.const 2512 i32.const 8 - i32.const 2736 + i32.const 2624 call $assembly/internal/Test/throws - i32.const 2848 + i32.const 2736 i32.const 9 call $assembly/internal/Test/it - i32.const 3280 + i32.const 3168 i32.const 10 - i32.const 3616 + i32.const 3504 call $assembly/internal/Test/throws - i32.const 3792 + i32.const 3680 i32.const 11 - i32.const 3904 + i32.const 3792 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 99 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 91 ;) nop ) - (func $assembly/internal/Describe/describe (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 92 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4427,7 +2541,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/greaterThanOrEqualTo.spec (; 101 ;) + (func $start:assembly/__tests__/greaterThanOrEqualTo.spec (; 93 ;) i32.const 0 f64.const 1 f64.const 2 @@ -4440,21 +2554,21 @@ f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/greaterThanOrEqualTo.spec/vec2 - i32.const 304 + i32.const 192 i32.const 12 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 102 ;) + (func $assembly/index/__ready (; 94 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 103 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 95 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 104 ;) + (func $assembly/internal/report/Actual/__sendActual (; 96 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4562,7 +2676,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 105 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 97 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4701,24 +2815,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 106 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 98 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 107 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 99 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 108 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 100 ;) (result i32) i32.const 8 ) - (func $assembly/internal/Expectation/__cleanup (; 109 ;) + (func $assembly/internal/Expectation/__cleanup (; 101 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 110 ;) + (func $~start (; 102 ;) global.get $~started if return @@ -4728,140 +2842,130 @@ end call $start:assembly/__tests__/greaterThanOrEqualTo.spec ) - (func $~lib/array/Array#__visit_impl (; 111 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 103 ;) + return ) - (func $~lib/rt/pure/__visit (; 112 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 104 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 105 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 106 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 107 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 113 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 108 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/lessThan.spec.ts b/packages/assembly/assembly/__tests__/lessThan.spec.ts index d3b70beb..db16695a 100644 --- a/packages/assembly/assembly/__tests__/lessThan.spec.ts +++ b/packages/assembly/assembly/__tests__/lessThan.spec.ts @@ -13,56 +13,56 @@ describe("LessThan (<)", () => { * This test is the idiomatic lessThan test. */ it("should validate that the actual value is less than the expected value", () => { - expect(0).toBeLessThan(42, "Assertions with smaller actual values should not throw."); + expect(0).toBeLessThan(42, "Assertions with smaller actual values should not throw."); }); /** * This test verifies the negated version of the previous test actually throws an error. */ throws("should throw when the expected value is less than the actual value", () => { - expect(0).not.toBeLessThan(42); + expect(0).not.toBeLessThan(42); }, "Negated toBeLessThan assertions should throw when the actual value is less than the expected value."); /** * This test is the contrapositive of the first test, and should be valid as well. */ it("should validate that the actual value is not less than the expected value", () => { - expect(42).not.toBeLessThan(0); + expect(42).not.toBeLessThan(0); }); /** * This test verifies that the negated version of the previous test actualy throws an error. */ throws("should throw when the expected value is not less than the actual value", () => { - expect(42).toBeLessThan(0); + expect(42).toBeLessThan(0); }, "It should throw when the actual value is less than the expected value."); /** * This test verifies that when values are equal, the negated expectation is successful. */ it("should validate that equal values are not less than each other", () => { - expect(42).not.toBeLessThan(42); + expect(42).not.toBeLessThan(42); }); /** * This test verifies that when values are equal, the expectation throws. */ throws("should throw when the values are equal", () => { - expect(42).toBeLessThan(42); + expect(42).toBeLessThan(42); }, "It should throw when the actual value equals the expected value."); /** * This test verifies that when the actual value is NaN, the expectation throws. */ throws("should throw when the actual value is NaN", () => { - expect(NaN).toBeLessThan(0); + expect(NaN).toBeLessThan(0); }, "It should throw when the actual value is NaN."); /** * This test verifies that when the expected value is NaN, the expectation throws. */ throws("should throw when the expected value is NaN", () => { - expect(0).toBeLessThan(NaN); + expect(0.0).toBeLessThan(NaN); }, "It should throw when the expected value is NaN."); /** @@ -70,7 +70,7 @@ describe("LessThan (<)", () => { * is used. */ it("should verify one reference is less than another", () => { - expect(vec1) + expect(vec1) .toBeLessThan(vec2, "Operator overloading should allow references to verify that one reference is less than another value"); }); diff --git a/packages/assembly/assembly/__tests__/lessThan.spec.wat b/packages/assembly/assembly/__tests__/lessThan.spec.wat index 3bde4d2c..216c8ac3 100644 --- a/packages/assembly/assembly/__tests__/lessThan.spec.wat +++ b/packages/assembly/assembly/__tests__/lessThan.spec.wat @@ -3,25 +3,57 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_i32_=>_none (func (param i32 f64 i32))) (type $f64_=>_none (func (param f64))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_f64_i32_i32_=>_none (func (param f64 f64 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_=>_f64 (func (param i32) (result f64))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00L\00e\00s\00s\00T\00h\00a\00n\00 \00(\00<\00)\00") + (data (i32.const 224) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 384) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00s\00m\00a\00l\00l\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 512) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 608) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 768) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 784) "\c6\00\00\00\01\00\00\00\01\00\00\00\c6\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1008) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1184) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1344) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1504) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 1648) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1744) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1888) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2000) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2112) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2224) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2336) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2448) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2560) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") + (data (i32.const 2672) "\c8\00\00\00\01\00\00\00\01\00\00\00\c8\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 2896) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 2976) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3072) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3200) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3312) "\86\00\00\00\01\00\00\00\01\00\00\00\86\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3472) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3584) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3744) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -50,50 +82,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00L\00e\00s\00s\00T\00h\00a\00n\00 \00(\00<\00)\00") - (data (i32.const 336) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 496) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00s\00m\00a\00l\00l\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 624) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 720) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 880) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 896) "\c6\00\00\00\01\00\00\00\01\00\00\00\c6\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1120) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1296) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1456) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1616) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 1760) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 1856) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 2000) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2112) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2224) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2336) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2448) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2560) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2672) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") - (data (i32.const 2784) "\c8\00\00\00\01\00\00\00\01\00\00\00\c8\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 3008) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") - (data (i32.const 3088) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3184) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3312) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3424) "\86\00\00\00\01\00\00\00\01\00\00\00\86\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3584) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3696) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3856) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 14 funcref) (elem (i32.const 1) $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/lessThan.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/lessThan.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/__tests__/lessThan.spec/vec2 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) @@ -120,8 +115,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3856)) - (global $~lib/heap/__heap_base i32 (i32.const 3932)) + (global $~lib/rt/__rtti_base i32 (i32.const 3744)) + (global $~lib/heap/__heap_base i32 (i32.const 3820)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1210,296 +1205,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1583,7 +1289,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1678,9 +1384,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1694,12 +1400,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1710,20 +1416,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1736,1512 +1442,97 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 507 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - end - end - local.get $3 - i32.load - i32.const -4 - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 510 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq + i32.eqz if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end + i32.const 0 + i32.const 32 + i32.const 507 + i32.const 17 + call $~lib/builtins/abort + unreachable end end end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end + local.get $4 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.ge_u i32.eqz if i32.const 0 i32.const 32 - i32.const 593 - i32.const 2 + i32.const 510 + i32.const 13 call $~lib/builtins/abort unreachable end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 - call $~lib/memory/memory.copy + i32.store offset=12 local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 local.get $4 - i32.add - global.set $~lib/rt/pure/END + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3251,90 +1542,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3345,7 +1571,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 59 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 46 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3366,7 +1592,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 47 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3387,12 +1613,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 48 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 49 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3418,7 +1644,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 50 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3448,11 +1674,49 @@ drop i32.const 0 end - global.set $assembly/internal/report/Expected/Expected.signed + global.set $assembly/internal/report/Expected/Expected.signed + local.get $0 + global.set $assembly/internal/report/Expected/Expected.integer + ) + (func $assembly/internal/comparison/assert/assert (; 51 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 528 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/lessThanComparison/lessThanComparison (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 local.get $0 - global.set $assembly/internal/report/Expected/Expected.integer + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $0 + local.get $1 + i32.lt_s + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.clear (; 64 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3472,7 +1736,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3490,74 +1754,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 - i32.lt_s - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/lessThanComparison/lessThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|0 (; 67 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|0 (; 56 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 512 + i32.const 400 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 68 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 57 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3567,14 +1791,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 69 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|1 (; 70 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|1 (; 59 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3583,14 +1807,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3606,7 +1830,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|2 (; 72 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|2 (; 61 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3615,25 +1839,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|3 (; 73 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|3 (; 62 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|4 (; 74 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|4 (; 63 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3642,25 +1866,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|5 (; 75 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|5 (; 64 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 76 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 65 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -3681,12 +1905,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 77 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 66 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 78 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 67 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3694,7 +1918,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Expected/Expected.report (; 79 ;) (param $0 f64) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 68 ;) (param $0 f64) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3710,127 +1934,76 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.float ) - (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 80 ;) (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/lessThanComparison/lessThanComparison (; 69 ;) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - f64.load offset=8 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $5 - local.get $5 + local.get $1 + local.get $1 f64.ne i32.eqz - local.set $8 - i32.const 2128 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 - local.get $6 + i32.const 2016 + call $assembly/internal/comparison/assert/assert + local.get $0 + local.get $0 f64.ne i32.eqz - local.set $8 - i32.const 2240 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 2128 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 f64.lt i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 70 ;) (param $0 i32) (param $1 f64) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.load offset=8 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lessThanComparison/lessThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|6 (; 81 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|6 (; 71 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|7 (; 82 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|7 (; 72 ;) (local $0 i32) f64.const 0 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 83 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 73 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3873,7 +2046,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 84 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 74 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3886,7 +2059,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 85 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 75 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3914,7 +2087,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 86 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 76 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3952,7 +2125,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 87 ;) (param $0 i32) (result f64) + (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 77 ;) (param $0 i32) (result f64) local.get $0 f64.load local.get $0 @@ -3972,7 +2145,7 @@ f64.add f64.sqrt ) - (func $assembly/__tests__/setup/Vec3/Vec3#__lessThan (; 88 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__lessThan (; 78 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 f64) (local $3 i32) (local $4 f64) @@ -3983,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 3024 + i32.const 2912 i32.const 34 i32.const 4 call $~lib/builtins/abort @@ -3993,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 3024 + i32.const 2912 i32.const 35 i32.const 4 call $~lib/builtins/abort @@ -4007,6 +2180,11 @@ if (result i32) local.get $3 else + i32.const 0 + i32.const 2912 + i32.const 37 + i32.const 23 + call $~lib/builtins/abort unreachable end call $assembly/__tests__/setup/Vec3/Vec3#magnitude @@ -4019,66 +2197,49 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/lessThanComparison/lessThanComparison (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__lessThan i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lessThanComparison/lessThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4086,18 +2247,18 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|8 (; 90 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|8 (; 81 ;) (local $0 i32) global.get $assembly/__tests__/lessThan.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/lessThan.spec/vec2 - i32.const 2800 + i32.const 2688 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 91 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4140,7 +2301,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 92 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4153,7 +2314,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 93 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 84 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4191,7 +2352,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 94 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 85 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4228,117 +2389,70 @@ global.get $assembly/internal/report/Expected/Expected.reference call $~lib/rt/pure/__release end - local.get $2 - global.set $assembly/internal/report/Expected/Expected.reference - i32.const 1 - global.set $assembly/internal/report/Expected/Expected.isManaged - i32.const 4 - global.set $assembly/internal/report/Expected/Expected.type - i32.const 24 - global.set $assembly/internal/report/Expected/Expected.offset - local.get $0 - call $~lib/rt/pure/__release - ) - (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + local.get $2 + global.set $assembly/internal/report/Expected/Expected.reference + i32.const 1 + global.set $assembly/internal/report/Expected/Expected.isManaged + i32.const 4 + global.set $assembly/internal/report/Expected/Expected.type + i32.const 24 + global.set $assembly/internal/report/Expected/Expected.offset + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/lessThanComparison/lessThanComparison (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $5 + local.get $1 i32.const 0 i32.ne - local.set $8 - i32.const 3200 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 + i32.const 3088 + call $assembly/internal/comparison/assert/assert + local.get $0 i32.const 0 i32.ne - local.set $8 - i32.const 3328 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 3216 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__lessThan i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeLessThan (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lessThanComparison/lessThanComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4346,74 +2460,74 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|9 (; 96 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|9 (; 88 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/lessThan.spec/vec2 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|10 (; 97 ;) + (func $start:assembly/__tests__/lessThan.spec~anonymous|0~anonymous|10 (; 89 ;) (local $0 i32) global.get $assembly/__tests__/lessThan.spec/vec2 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeLessThan local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec~anonymous|0 (; 98 ;) - i32.const 352 + (func $start:assembly/__tests__/lessThan.spec~anonymous|0 (; 90 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 736 + i32.const 624 i32.const 2 - i32.const 912 + i32.const 800 call $assembly/internal/Test/throws - i32.const 1136 + i32.const 1024 i32.const 3 call $assembly/internal/Test/it - i32.const 1312 + i32.const 1200 i32.const 4 - i32.const 1472 + i32.const 1360 call $assembly/internal/Test/throws - i32.const 1632 + i32.const 1520 i32.const 5 call $assembly/internal/Test/it - i32.const 1776 + i32.const 1664 i32.const 6 - i32.const 1872 + i32.const 1760 call $assembly/internal/Test/throws - i32.const 2016 + i32.const 1904 i32.const 7 - i32.const 2352 + i32.const 2240 call $assembly/internal/Test/throws - i32.const 2464 + i32.const 2352 i32.const 8 - i32.const 2576 + i32.const 2464 call $assembly/internal/Test/throws - i32.const 2688 + i32.const 2576 i32.const 9 call $assembly/internal/Test/it - i32.const 3104 + i32.const 2992 i32.const 10 - i32.const 3440 + i32.const 3328 call $assembly/internal/Test/throws - i32.const 3600 + i32.const 3488 i32.const 11 - i32.const 3712 + i32.const 3600 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 99 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 91 ;) nop ) - (func $assembly/internal/Describe/describe (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 92 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4427,7 +2541,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThan.spec (; 101 ;) + (func $start:assembly/__tests__/lessThan.spec (; 93 ;) i32.const 0 f64.const 1 f64.const 2 @@ -4440,21 +2554,21 @@ f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/lessThan.spec/vec2 - i32.const 304 + i32.const 192 i32.const 12 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 102 ;) + (func $assembly/index/__ready (; 94 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 103 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 95 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 104 ;) + (func $assembly/internal/report/Actual/__sendActual (; 96 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4562,7 +2676,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 105 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 97 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4701,24 +2815,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 106 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 98 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 107 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 99 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 108 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 100 ;) (result i32) i32.const 8 ) - (func $assembly/internal/Expectation/__cleanup (; 109 ;) + (func $assembly/internal/Expectation/__cleanup (; 101 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 110 ;) + (func $~start (; 102 ;) global.get $~started if return @@ -4728,140 +2842,130 @@ end call $start:assembly/__tests__/lessThan.spec ) - (func $~lib/array/Array#__visit_impl (; 111 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 103 ;) + return ) - (func $~lib/rt/pure/__visit (; 112 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 104 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 105 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 106 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 107 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 113 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 108 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.ts b/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.ts index 9082bcb6..b5a5cca6 100644 --- a/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.ts +++ b/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.ts @@ -1,8 +1,7 @@ import { Vec3 } from "./setup/Vec3"; var vec1 = new Vec3(1, 2, 3); -var vec2 = new Vec3(1, 2, 3); -var vec3 = new Vec3(4, 5, 6); +var vec2 = new Vec3(4, 5, 6); /** * This test suite is designed to test the AssemblyScript semantics of the lessThanOrEqualTo @@ -14,56 +13,56 @@ describe("LessThanOrEqualTo (<=)", () => { * This test is the idiomatic lessThanOrEqualTo test. */ it("should validate that the actual value is less than or equal to the expected value", () => { - expect(0).toBeLessThanOrEqual(42, "Assertions with smaller actual values should not throw."); + expect(0).toBeLessThanOrEqual(42, "Assertions with smaller actual values should not throw."); }); /** * This test verifies the negated version of the previous test actually throws an error. */ throws("should throw when the expected value is less than the actual value", () => { - expect(0).not.toBeLessThanOrEqual(42); + expect(0).not.toBeLessThanOrEqual(42); }, "Negated toBeLessThanOrEqualTo assertions should throw when the actual value is not less than the expected value."); /** * This test is the contrapositive of the first test, and should be valid as well. */ it("should validate that the actual value is not less than or equal to the expected value", () => { - expect(42).not.toBeLessThanOrEqual(0); + expect(42).not.toBeLessThanOrEqual(0); }); /** * This test verifies that the negated version of the previous test actualy throws an error. */ throws("should throw when the expected value is not less than or equal to the actual value", () => { - expect(42).toBeLessThanOrEqual(0); + expect(42).toBeLessThanOrEqual(0); }, "It should throw when the actual value is less than the expected value."); /** * This test verifies that when values are equal, the expectation is successful. */ it("should validate that equal values are less than or equal to each other", () => { - expect(42).toBeLessThanOrEqual(42); + expect(42).toBeLessThanOrEqual(42); }); /** * This test verifies that when values are equal, the expectation throws. */ throws("should throw when the values are equal", () => { - expect(42).not.toBeLessThanOrEqual(42); + expect(42).not.toBeLessThanOrEqual(42); }, "It should throw when the actual value equals the expected value."); /** * This test verifies that when the actual value is NaN, the expectation throws. */ throws("should throw when the actual value is NaN", () => { - expect(NaN).toBeLessThanOrEqual(0); + expect(NaN).toBeLessThanOrEqual(0); }, "It should throw when the actual value is NaN."); /** * This test verifies that when the expected value is NaN, the expectation throws. */ throws("should throw when the expected value is NaN", () => { - expect(0).toBeLessThanOrEqual(NaN); + expect(0.0).toBeLessThanOrEqual(NaN); }, "It should throw when the expected value is NaN."); /** @@ -72,20 +71,20 @@ describe("LessThanOrEqualTo (<=)", () => { */ it("should verify one reference is less than another", () => { expect(vec1) - .toBeLessThanOrEqual(vec3, "Operator overloading should allow references to verify that one reference is less than another value"); + .toBeLessThanOrEqual(vec2, "Operator overloading should allow references to verify that one reference is less than another value"); }); /** * This test verifies that toBeLessThanOrEqualTo throws when the actual value is null. */ throws("should throw if the actual value is null", () => { - expect(null).toBeLessThanOrEqual(vec3); + expect(null).toBeLessThanOrEqual(vec2); }, "The toBeLessThanOrEqualTo function should throw if the actual value is null."); /** * This test verifies that toBeLessThanOrEqualTo throws when the expected value is null. */ throws("should throw if the expected value is null", () => { - expect(vec3).toBeLessThanOrEqual(null); + expect(vec2).toBeLessThanOrEqual(null); }, "The toBeLessThanOrEqualTo function should throw if the expected value is null."); }); diff --git a/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.wat b/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.wat index 52ae49a2..3a170f15 100644 --- a/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.wat +++ b/packages/assembly/assembly/__tests__/lessThanOrEqualTo.spec.wat @@ -3,25 +3,57 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_i32_=>_none (func (param i32 f64 i32))) (type $f64_=>_none (func (param f64))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_f64_i32_i32_=>_none (func (param f64 f64 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_=>_f64 (func (param i32) (result f64))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00(\00<\00=\00)\00") + (data (i32.const 240) "\a2\00\00\00\01\00\00\00\01\00\00\00\a2\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 432) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00s\00m\00a\00l\00l\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 560) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 656) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 816) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 832) "\e0\00\00\00\01\00\00\00\01\00\00\00\e0\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1072) "\aa\00\00\00\01\00\00\00\01\00\00\00\aa\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1264) "\a4\00\00\00\01\00\00\00\01\00\00\00\a4\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1456) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 1616) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 1776) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1872) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 2016) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2128) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2240) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2352) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2464) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 2576) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") + (data (i32.const 2688) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") + (data (i32.const 2800) "\c8\00\00\00\01\00\00\00\01\00\00\00\c8\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 3024) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 3104) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3200) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3328) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3440) "\98\00\00\00\01\00\00\00\01\00\00\00\98\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3616) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 3728) "\9c\00\00\00\01\00\00\00\01\00\00\00\9c\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3904) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -50,53 +82,15 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00(\00<\00=\00)\00") - (data (i32.const 352) "\a2\00\00\00\01\00\00\00\01\00\00\00\a2\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 544) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00s\00m\00a\00l\00l\00e\00r\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 672) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 768) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 928) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 944) "\e0\00\00\00\01\00\00\00\01\00\00\00\e0\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1184) "\aa\00\00\00\01\00\00\00\01\00\00\00\aa\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1376) "\a4\00\00\00\01\00\00\00\01\00\00\00\a4\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1568) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 1728) "\8c\00\00\00\01\00\00\00\01\00\00\00\8c\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00o\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 1888) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 1984) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00e\00q\00u\00a\00l\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 2128) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2240) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2352) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00V\00a\00l\00u\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2464) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2576) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 2688) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00I\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00.\00") - (data (i32.const 2800) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00") - (data (i32.const 2912) "\c8\00\00\00\01\00\00\00\01\00\00\00\c8\00\00\00O\00p\00e\00r\00a\00t\00o\00r\00 \00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00l\00o\00w\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00a\00t\00 \00o\00n\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00l\00e\00s\00s\00 \00t\00h\00a\00n\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 3136) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") - (data (i32.const 3216) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3312) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3440) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00N\00u\00l\00l\00a\00b\00l\00e\00 \00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00 \00f\00a\00i\00l\00s\00,\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3552) "\98\00\00\00\01\00\00\00\01\00\00\00\98\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3728) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 3840) "\9c\00\00\00\01\00\00\00\01\00\00\00\9c\00\00\00T\00h\00e\00 \00t\00o\00B\00e\00L\00e\00s\00s\00T\00h\00a\00n\00O\00r\00E\00q\00u\00a\00l\00T\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 4016) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 14 funcref) (elem (i32.const 1) $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/lessThanOrEqualTo.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/__tests__/lessThanOrEqualTo.spec/vec2 (mut i32) (i32.const 0)) - (global $assembly/__tests__/lessThanOrEqualTo.spec/vec3 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.float (mut f64) (f64.const 0)) @@ -121,8 +115,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 4016)) - (global $~lib/heap/__heap_base i32 (i32.const 4092)) + (global $~lib/rt/__rtti_base i32 (i32.const 3904)) + (global $~lib/heap/__heap_base i32 (i32.const 3980)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1211,296 +1205,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1584,7 +1289,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1679,9 +1384,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1695,12 +1400,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1711,20 +1416,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1737,13 +1442,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1755,11 +1460,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1770,37 +1475,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1818,7 +1521,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1839,1503 +1542,25 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3346,7 +1571,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 59 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 46 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3367,7 +1592,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 47 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3388,12 +1613,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 48 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 49 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3419,7 +1644,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 50 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3453,7 +1678,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 64 ;) + (func $assembly/internal/comparison/assert/assert (; 51 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 576 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $0 + local.get $1 + i32.le_s + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3473,7 +1736,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3491,74 +1754,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 - i32.le_s - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|0 (; 67 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|0 (; 56 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 560 + i32.const 448 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 68 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 57 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3568,14 +1791,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 69 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|1 (; 70 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|1 (; 59 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3584,14 +1807,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3607,7 +1830,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|2 (; 72 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|2 (; 61 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3616,36 +1839,36 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|3 (; 73 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|3 (; 62 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|4 (; 74 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|4 (; 63 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|5 (; 75 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|5 (; 64 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -3654,14 +1877,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 76 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 65 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -3682,12 +1905,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 77 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 66 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 78 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 67 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3695,7 +1918,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Expected/Expected.report (; 79 ;) (param $0 f64) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 68 ;) (param $0 f64) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3711,127 +1934,76 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.float ) - (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 80 ;) (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison (; 69 ;) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - f64.load offset=8 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $5 - local.get $5 + local.get $1 + local.get $1 f64.ne i32.eqz - local.set $8 - i32.const 2256 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 - local.get $6 + i32.const 2144 + call $assembly/internal/comparison/assert/assert + local.get $0 + local.get $0 f64.ne i32.eqz - local.set $8 - i32.const 2368 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 2256 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 f64.le i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 70 ;) (param $0 i32) (param $1 f64) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.load offset=8 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|6 (; 81 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|6 (; 71 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const 0 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|7 (; 82 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|7 (; 72 ;) (local $0 i32) f64.const 0 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 83 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 73 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3874,7 +2046,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 84 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 74 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3887,7 +2059,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 85 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 75 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3915,7 +2087,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 86 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 76 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3953,7 +2125,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 87 ;) (param $0 i32) (result f64) + (func $assembly/__tests__/setup/Vec3/Vec3#magnitude (; 77 ;) (param $0 i32) (result f64) local.get $0 f64.load local.get $0 @@ -3973,7 +2145,7 @@ f64.add f64.sqrt ) - (func $assembly/__tests__/setup/Vec3/Vec3#__lessThanOrEqualTo (; 88 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__lessThanOrEqualTo (; 78 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 f64) (local $3 i32) (local $4 f64) @@ -3984,7 +2156,7 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 3040 i32.const 43 i32.const 4 call $~lib/builtins/abort @@ -3994,7 +2166,7 @@ i32.eqz if i32.const 0 - i32.const 3152 + i32.const 3040 i32.const 44 i32.const 4 call $~lib/builtins/abort @@ -4008,6 +2180,11 @@ if (result i32) local.get $3 else + i32.const 0 + i32.const 3040 + i32.const 46 + i32.const 23 + call $~lib/builtins/abort unreachable end call $assembly/__tests__/setup/Vec3/Vec3#magnitude @@ -4020,66 +2197,49 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $6 - local.get $5 + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__lessThanOrEqualTo i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4087,18 +2247,18 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|8 (; 90 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|8 (; 81 ;) (local $0 i32) global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 - global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec3 - i32.const 2928 + global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec2 + i32.const 2816 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 91 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4141,7 +2301,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 92 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4154,7 +2314,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 93 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 84 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4192,7 +2352,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 94 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 85 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4238,108 +2398,61 @@ i32.const 24 global.set $assembly/internal/report/Expected/Expected.offset local.get $0 - call $~lib/rt/pure/__release - ) - (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.load offset=4 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $0 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $5 + local.get $1 i32.const 0 i32.ne - local.set $8 - i32.const 3328 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $6 + i32.const 3216 + call $assembly/internal/comparison/assert/assert + local.get $0 i32.const 0 i32.ne - local.set $8 - i32.const 3456 - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - local.get $6 - local.get $5 + i32.const 3344 + call $assembly/internal/comparison/assert/assert + local.get $2 + local.get $0 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__lessThanOrEqualTo i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 688 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lessThanOrEqualToComparison/lessThanOrEqualToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4347,74 +2460,74 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|9 (; 96 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|9 (; 88 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec3 - i32.const 944 + global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec2 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|10 (; 97 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0~anonymous|10 (; 89 ;) (local $0 i32) - global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec3 + global.get $assembly/__tests__/lessThanOrEqualTo.spec/vec2 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeLessThanOrEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0 (; 98 ;) - i32.const 368 + (func $start:assembly/__tests__/lessThanOrEqualTo.spec~anonymous|0 (; 90 ;) + i32.const 256 i32.const 1 call $assembly/internal/Test/it - i32.const 784 + i32.const 672 i32.const 2 - i32.const 960 + i32.const 848 call $assembly/internal/Test/throws - i32.const 1200 + i32.const 1088 i32.const 3 call $assembly/internal/Test/it - i32.const 1392 + i32.const 1280 i32.const 4 - i32.const 1584 + i32.const 1472 call $assembly/internal/Test/throws - i32.const 1744 + i32.const 1632 i32.const 5 call $assembly/internal/Test/it - i32.const 1904 + i32.const 1792 i32.const 6 - i32.const 2000 + i32.const 1888 call $assembly/internal/Test/throws - i32.const 2144 + i32.const 2032 i32.const 7 - i32.const 2480 + i32.const 2368 call $assembly/internal/Test/throws - i32.const 2592 + i32.const 2480 i32.const 8 - i32.const 2704 + i32.const 2592 call $assembly/internal/Test/throws - i32.const 2816 + i32.const 2704 i32.const 9 call $assembly/internal/Test/it - i32.const 3232 + i32.const 3120 i32.const 10 - i32.const 3568 + i32.const 3456 call $assembly/internal/Test/throws - i32.const 3744 + i32.const 3632 i32.const 11 - i32.const 3856 + i32.const 3744 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 99 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 91 ;) nop ) - (func $assembly/internal/Describe/describe (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 92 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4428,7 +2541,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/lessThanOrEqualTo.spec (; 101 ;) + (func $start:assembly/__tests__/lessThanOrEqualTo.spec (; 93 ;) i32.const 0 f64.const 1 f64.const 2 @@ -4436,32 +2549,26 @@ call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/lessThanOrEqualTo.spec/vec1 i32.const 0 - f64.const 1 - f64.const 2 - f64.const 3 - call $assembly/__tests__/setup/Vec3/Vec3#constructor - global.set $assembly/__tests__/lessThanOrEqualTo.spec/vec2 - i32.const 0 f64.const 4 f64.const 5 f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor - global.set $assembly/__tests__/lessThanOrEqualTo.spec/vec3 - i32.const 304 + global.set $assembly/__tests__/lessThanOrEqualTo.spec/vec2 + i32.const 192 i32.const 12 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 102 ;) + (func $assembly/index/__ready (; 94 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 103 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 95 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 104 ;) + (func $assembly/internal/report/Actual/__sendActual (; 96 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4569,7 +2676,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 105 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 97 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4708,24 +2815,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 106 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 98 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 107 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 99 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 108 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 100 ;) (result i32) i32.const 8 ) - (func $assembly/internal/Expectation/__cleanup (; 109 ;) + (func $assembly/internal/Expectation/__cleanup (; 101 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 110 ;) + (func $~start (; 102 ;) global.get $~started if return @@ -4735,140 +2842,130 @@ end call $start:assembly/__tests__/lessThanOrEqualTo.spec ) - (func $~lib/array/Array#__visit_impl (; 111 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 103 ;) + return ) - (func $~lib/rt/pure/__visit (; 112 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 104 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 105 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 106 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 107 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 113 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 108 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/logs.spec.ts b/packages/assembly/assembly/__tests__/logs.spec.ts index 5f1a03b5..0b3ac541 100644 --- a/packages/assembly/assembly/__tests__/logs.spec.ts +++ b/packages/assembly/assembly/__tests__/logs.spec.ts @@ -7,11 +7,11 @@ const anonIDFunc = (i: i32): i32 => i; * that a string exits. */ beforeAll(() => { - log("before all outside describe"); + log("before all outside describe"); }); afterAll(() => { - log("after all outside describe"); + log("after all outside describe"); }); /** @@ -20,33 +20,33 @@ afterAll(() => { describe("logs", () => { beforeAll(() => { - log("Before All"); + log("Before All"); }); afterAll(() => { - log("After All"); + log("After All"); }); beforeEach(() => { - log("Before Each"); + log("Before Each"); }); afterEach(() => { - log("After Each"); + log("After Each"); }); /** * This test logs a string. It should be nice output when the test suite runs. */ test("log a string", () => { - log("Some string value"); + log("Some string value"); }); /** * This test should log a number. */ test("log a number", () => { - log(42); + log(42); }); /** @@ -58,14 +58,14 @@ describe("logs", () => { for (let i = 0; i < 8; i++) { unchecked(array[i] = i); } - log(array.buffer); + log(array.buffer); }); /** * This test logs a simple class reference. */ test("log a reference", () => { - log(new Vec3(1, 2, 3)); + log(new Vec3(1, 2, 3)); }); /** @@ -79,14 +79,14 @@ describe("logs", () => { * This test logs a anonymous function pointer */ test("log an anonymous function", () => { - log<(i: i32) => i32>(anonIDFunc); + log(anonIDFunc); }); /** * This test logs a named function pointer */ test("log a named function", () => { - log<(i: i32) => i32>(IDFunc); + log(IDFunc); }); /** diff --git a/packages/assembly/assembly/__tests__/logs.spec.wat b/packages/assembly/assembly/__tests__/logs.spec.wat index bc529190..8d9b4dba 100644 --- a/packages/assembly/assembly/__tests__/logs.spec.wat +++ b/packages/assembly/assembly/__tests__/logs.spec.wat @@ -1,21 +1,42 @@ (module - (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00b\00e\00f\00o\00r\00e\00 \00a\00l\00l\00 \00o\00u\00t\00s\00i\00d\00e\00 \00d\00e\00s\00c\00r\00i\00b\00e\00") + (data (i32.const 256) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00a\00f\00t\00e\00r\00 \00a\00l\00l\00 \00o\00u\00t\00s\00i\00d\00e\00 \00d\00e\00s\00c\00r\00i\00b\00e\00") + (data (i32.const 336) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00l\00o\00g\00s\00") + (data (i32.const 368) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00B\00e\00f\00o\00r\00e\00 \00A\00l\00l\00") + (data (i32.const 416) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00A\00f\00t\00e\00r\00 \00A\00l\00l\00") + (data (i32.const 464) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00B\00e\00f\00o\00r\00e\00 \00E\00a\00c\00h\00") + (data (i32.const 512) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00A\00f\00t\00e\00r\00 \00E\00a\00c\00h\00") + (data (i32.const 560) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00g\00 \00a\00 \00s\00t\00r\00i\00n\00g\00") + (data (i32.const 608) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00S\00o\00m\00e\00 \00s\00t\00r\00i\00n\00g\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 672) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00g\00 \00a\00 \00n\00u\00m\00b\00e\00r\00") + (data (i32.const 720) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00l\00o\00g\00 \00a\00n\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00") + (data (i32.const 784) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 832) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 896) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00l\00o\00g\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 944) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00l\00o\00g\00 \00a\00 \00n\00u\00l\00l\00") + (data (i32.const 992) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00l\00o\00g\00 \00a\00n\00 \00a\00n\00o\00n\00y\00m\00o\00u\00s\00 \00f\00u\00n\00c\00t\00i\00o\00n\00") + (data (i32.const 1072) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00l\00o\00g\00 \00a\00 \00n\00a\00m\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00") + (data (i32.const 1136) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00T\00h\00i\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00 \00v\00a\00l\00i\00d\00 \00t\00o\00d\00o\00.\00") + (data (i32.const 1216) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "logString" (func $assembly/internal/log/logString (param i32))) (import "__aspect" "reportBeforeAll" (func $assembly/internal/Test/reportBeforeAll (param i32))) (import "__aspect" "reportAfterAll" (func $assembly/internal/Test/reportAfterAll (param i32))) @@ -50,42 +71,16 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00b\00e\00f\00o\00r\00e\00 \00a\00l\00l\00 \00o\00u\00t\00s\00i\00d\00e\00 \00d\00e\00s\00c\00r\00i\00b\00e\00") - (data (i32.const 368) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00a\00f\00t\00e\00r\00 \00a\00l\00l\00 \00o\00u\00t\00s\00i\00d\00e\00 \00d\00e\00s\00c\00r\00i\00b\00e\00") - (data (i32.const 448) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00l\00o\00g\00s\00") - (data (i32.const 480) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00B\00e\00f\00o\00r\00e\00 \00A\00l\00l\00") - (data (i32.const 528) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00A\00f\00t\00e\00r\00 \00A\00l\00l\00") - (data (i32.const 576) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00B\00e\00f\00o\00r\00e\00 \00E\00a\00c\00h\00") - (data (i32.const 624) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00A\00f\00t\00e\00r\00 \00E\00a\00c\00h\00") - (data (i32.const 672) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00g\00 \00a\00 \00s\00t\00r\00i\00n\00g\00") - (data (i32.const 720) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00S\00o\00m\00e\00 \00s\00t\00r\00i\00n\00g\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 784) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00g\00 \00a\00 \00n\00u\00m\00b\00e\00r\00") - (data (i32.const 832) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00l\00o\00g\00 \00a\00n\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00") - (data (i32.const 896) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 944) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 1008) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00l\00o\00g\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 1056) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00l\00o\00g\00 \00a\00 \00n\00u\00l\00l\00") - (data (i32.const 1104) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00l\00o\00g\00 \00a\00n\00 \00a\00n\00o\00n\00y\00m\00o\00u\00s\00 \00f\00u\00n\00c\00t\00i\00o\00n\00") - (data (i32.const 1184) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00l\00o\00g\00 \00a\00 \00n\00a\00m\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00") - (data (i32.const 1248) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00T\00h\00i\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00a\00 \00v\00a\00l\00i\00d\00 \00t\00o\00d\00o\00.\00") - (data (i32.const 1328) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 18 funcref) (elem (i32.const 1) $start:assembly/__tests__/logs.spec~anonymous|0 $start:assembly/__tests__/logs.spec~anonymous|1 $start:assembly/__tests__/logs.spec~anonymous|2 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|0 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|1 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|2 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|3 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|4 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|5 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|6 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|7 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|8 $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|9 $assembly/__tests__/logs.spec/IDFunc $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|10 $start:assembly/__tests__/logs.spec~anonymous|3 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/logs.spec/anonIDFunc i32 (i32.const 1)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/noOp/noOp i32 (i32.const 17)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) @@ -109,8 +104,8 @@ (global $assembly/internal/report/Expected/Expected.isManaged (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1328)) - (global $~lib/heap/__heap_base i32 (i32.const 1380)) + (global $~lib/rt/__rtti_base i32 (i32.const 1216)) + (global $~lib/heap/__heap_base i32 (i32.const 1268)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1199,296 +1194,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 45 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 46 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 47 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 48 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 49 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 50 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 51 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1572,7 +1278,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1667,9 +1373,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 53 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1683,12 +1389,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1699,21 +1405,21 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 - i32.eqz + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz if i32.const 0 i32.const 32 @@ -1725,13 +1431,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1743,11 +1449,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1758,1479 +1464,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 54 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 55 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 56 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 57 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 58 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 60 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 61 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 local.get $4 - i32.add - global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 62 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 63 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3240,90 +1531,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 64 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 51 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3334,10 +1560,10 @@ call $~lib/rt/pure/decrement end ) - (func $start:assembly/__tests__/logs.spec~anonymous|0 (; 65 ;) (param $0 i32) (result i32) + (func $start:assembly/__tests__/logs.spec~anonymous|0 (; 52 ;) (param $0 i32) (result i32) local.get $0 ) - (func $assembly/internal/log/log<~lib/string/String> (; 66 ;) (param $0 i32) + (func $assembly/internal/log/log<~lib/string/String> (; 53 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3352,51 +1578,51 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/logs.spec~anonymous|1 (; 67 ;) - i32.const 304 + (func $start:assembly/__tests__/logs.spec~anonymous|1 (; 54 ;) + i32.const 192 call $assembly/internal/log/log<~lib/string/String> ) - (func $assembly/internal/Test/beforeAll (; 68 ;) (param $0 i32) + (func $assembly/internal/Test/beforeAll (; 55 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeAll ) - (func $start:assembly/__tests__/logs.spec~anonymous|2 (; 69 ;) - i32.const 384 + (func $start:assembly/__tests__/logs.spec~anonymous|2 (; 56 ;) + i32.const 272 call $assembly/internal/log/log<~lib/string/String> ) - (func $assembly/internal/Test/afterAll (; 70 ;) (param $0 i32) + (func $assembly/internal/Test/afterAll (; 57 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterAll ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|0 (; 71 ;) - i32.const 496 + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|0 (; 58 ;) + i32.const 384 call $assembly/internal/log/log<~lib/string/String> ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|1 (; 72 ;) - i32.const 544 + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|1 (; 59 ;) + i32.const 432 call $assembly/internal/log/log<~lib/string/String> ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|2 (; 73 ;) - i32.const 592 + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|2 (; 60 ;) + i32.const 480 call $assembly/internal/log/log<~lib/string/String> ) - (func $assembly/internal/Test/beforeEach (; 74 ;) (param $0 i32) + (func $assembly/internal/Test/beforeEach (; 61 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeEach ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|3 (; 75 ;) - i32.const 640 + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|3 (; 62 ;) + i32.const 528 call $assembly/internal/log/log<~lib/string/String> ) - (func $assembly/internal/Test/afterEach (; 76 ;) (param $0 i32) + (func $assembly/internal/Test/afterEach (; 63 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterEach ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|4 (; 77 ;) - i32.const 736 + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|4 (; 64 ;) + i32.const 624 call $assembly/internal/log/log<~lib/string/String> ) - (func $assembly/internal/Test/test (; 78 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/test (; 65 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3406,7 +1632,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/log/log (; 79 ;) (param $0 i32) + (func $assembly/internal/log/log (; 66 ;) (param $0 i32) global.get $assembly/internal/log/ignoreLogs if return @@ -3431,11 +1657,11 @@ end call $assembly/internal/log/logInteger ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|5 (; 80 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|5 (; 67 ;) i32.const 42 call $assembly/internal/log/log ) - (func $~lib/memory/memory.fill (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3699,7 +1925,7 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3710,8 +1936,8 @@ i32.shr_u i32.gt_u if - i32.const 912 - i32.const 960 + i32.const 800 + i32.const 848 i32.const 23 i32.const 56 call $~lib/builtins/abort @@ -3771,7 +1997,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Uint8Array#constructor (; 83 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 70 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -3787,7 +2013,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint8Array#__uset (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#__uset (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -3795,13 +2021,13 @@ local.get $2 i32.store8 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 85 ;) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 72 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $assembly/internal/log/log<~lib/arraybuffer/ArrayBuffer> (; 86 ;) (param $0 i32) + (func $assembly/internal/log/log<~lib/arraybuffer/ArrayBuffer> (; 73 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3824,7 +2050,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|6 (; 87 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|6 (; 74 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3860,7 +2086,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 88 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 75 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3881,7 +2107,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/log/log (; 89 ;) (param $0 i32) + (func $assembly/internal/log/log (; 76 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3897,7 +2123,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|7 (; 90 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|7 (; 77 ;) (local $0 i32) i32.const 0 f64.const 1 @@ -3909,7 +2135,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/log/log (; 91 ;) (param $0 i32) + (func $assembly/internal/log/log (; 78 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3934,11 +2160,11 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|8 (; 92 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|8 (; 79 ;) i32.const 0 call $assembly/internal/log/log ) - (func "$assembly/internal/log/log<(i: i32) => i32>" (; 93 ;) (param $0 i32) + (func "$assembly/internal/log/log<(i: i32) => i32>" (; 80 ;) (param $0 i32) global.get $assembly/internal/log/ignoreLogs if return @@ -3946,18 +2172,18 @@ local.get $0 call $assembly/internal/log/logFunction ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|9 (; 94 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|9 (; 81 ;) global.get $assembly/__tests__/logs.spec/anonIDFunc call "$assembly/internal/log/log<(i: i32) => i32>" ) - (func $assembly/__tests__/logs.spec/IDFunc (; 95 ;) (param $0 i32) (result i32) + (func $assembly/__tests__/logs.spec/IDFunc (; 82 ;) (param $0 i32) (result i32) local.get $0 ) - (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|10 (; 96 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3~anonymous|10 (; 83 ;) i32.const 14 call "$assembly/internal/log/log<(i: i32) => i32>" ) - (func $assembly/internal/Test/todo (; 97 ;) (param $0 i32) + (func $assembly/internal/Test/todo (; 84 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3966,7 +2192,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/logs.spec~anonymous|3 (; 98 ;) + (func $start:assembly/__tests__/logs.spec~anonymous|3 (; 85 ;) i32.const 4 call $assembly/internal/Test/beforeAll i32.const 5 @@ -3975,34 +2201,34 @@ call $assembly/internal/Test/beforeEach i32.const 7 call $assembly/internal/Test/afterEach - i32.const 688 + i32.const 576 i32.const 8 call $assembly/internal/Test/test - i32.const 800 + i32.const 688 i32.const 9 call $assembly/internal/Test/test - i32.const 848 + i32.const 736 i32.const 10 call $assembly/internal/Test/test - i32.const 1024 + i32.const 912 i32.const 11 call $assembly/internal/Test/test - i32.const 1072 + i32.const 960 i32.const 12 call $assembly/internal/Test/test - i32.const 1120 + i32.const 1008 i32.const 13 call $assembly/internal/Test/test - i32.const 1200 + i32.const 1088 i32.const 15 call $assembly/internal/Test/test - i32.const 1264 + i32.const 1152 call $assembly/internal/Test/todo ) - (func $start:assembly/internal/noOp~anonymous|0 (; 99 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 86 ;) nop ) - (func $assembly/internal/Describe/describe (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 87 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4016,26 +2242,26 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/logs.spec (; 101 ;) + (func $start:assembly/__tests__/logs.spec (; 88 ;) i32.const 2 call $assembly/internal/Test/beforeAll i32.const 3 call $assembly/internal/Test/afterAll - i32.const 464 + i32.const 352 i32.const 16 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 102 ;) + (func $assembly/index/__ready (; 89 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 103 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 90 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 104 ;) + (func $assembly/internal/report/Actual/__sendActual (; 91 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4143,7 +2369,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 105 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 92 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4282,20 +2508,20 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 106 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 93 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 107 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 94 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 108 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 95 ;) (result i32) i32.const 5 ) - (func $assembly/internal/report/Expected/Expected.clear (; 109 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 96 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -4313,7 +2539,7 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/report/Actual/Actual.clear (; 110 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 97 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -4333,11 +2559,11 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/Expectation/__cleanup (; 111 ;) + (func $assembly/internal/Expectation/__cleanup (; 98 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 112 ;) + (func $~start (; 99 ;) global.get $~started if return @@ -4347,140 +2573,130 @@ end call $start:assembly/__tests__/logs.spec ) - (func $~lib/array/Array#__visit_impl (; 113 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 100 ;) + return ) - (func $~lib/rt/pure/__visit (; 114 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 101 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 102 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 103 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 104 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 115 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 105 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/nested-describe.spec.ts b/packages/assembly/assembly/__tests__/nested-describe.spec.ts index 801c2920..7e3c532f 100644 --- a/packages/assembly/assembly/__tests__/nested-describe.spec.ts +++ b/packages/assembly/assembly/__tests__/nested-describe.spec.ts @@ -6,7 +6,7 @@ let outer = true; describe("nested describes", () => { describe("inner describe", () => { it("should run the inner test", () => { - expect(outer).toBeTruthy(); + expect(outer).toBeTruthy(); }); }); }); @@ -35,19 +35,19 @@ describe("nested control flow", () => { describe("runs first", () => { test("firstTest", () => { - expect(beforeEachFlag).toBe(1, "beforeEach should be 1"); - expect(beforeAllFlag).toBe(1, "beforeAll should be 1"); - expect(afterEachFlag).toBe(0, "the afterEach callback should not have run yet"); - expect(afterAllFlag).toBe(0, "the afterAll callback should not have run yet"); + expect(beforeEachFlag).toBe(1, "beforeEach should be 1"); + expect(beforeAllFlag).toBe(1, "beforeAll should be 1"); + expect(afterEachFlag).toBe(0, "the afterEach callback should not have run yet"); + expect(afterAllFlag).toBe(0, "the afterAll callback should not have run yet"); }); }); describe("runs second", () => { test("secondTest", () => { - expect(beforeEachFlag).toBe(2, "beforeEach should be 2"); - expect(beforeAllFlag).toBe(1, "beforeAll should be 1"); - expect(afterEachFlag).toBe(1, "afterEach should be 1"); - expect(afterAllFlag).toBe(0, "the afterAll callback should not have run yet"); + expect(beforeEachFlag).toBe(2, "beforeEach should be 2"); + expect(beforeAllFlag).toBe(1, "beforeAll should be 1"); + expect(afterEachFlag).toBe(1, "afterEach should be 1"); + expect(afterAllFlag).toBe(0, "the afterAll callback should not have run yet"); }); }); }); diff --git a/packages/assembly/assembly/__tests__/nested-describe.spec.wat b/packages/assembly/assembly/__tests__/nested-describe.spec.wat index 6195c467..0d20a7f0 100644 --- a/packages/assembly/assembly/__tests__/nested-describe.spec.wat +++ b/packages/assembly/assembly/__tests__/nested-describe.spec.wat @@ -1,20 +1,39 @@ (module (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00n\00e\00s\00t\00e\00d\00 \00d\00e\00s\00c\00r\00i\00b\00e\00s\00") + (data (i32.const 224) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00i\00n\00n\00e\00r\00 \00d\00e\00s\00c\00r\00i\00b\00e\00") + (data (i32.const 272) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00 \00t\00h\00e\00 \00i\00n\00n\00e\00r\00 \00t\00e\00s\00t\00") + (data (i32.const 352) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 448) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 464) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00n\00e\00s\00t\00e\00d\00 \00c\00o\00n\00t\00r\00o\00l\00 \00f\00l\00o\00w\00") + (data (i32.const 528) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00r\00u\00n\00s\00 \00f\00i\00r\00s\00t\00") + (data (i32.const 576) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00f\00i\00r\00s\00t\00T\00e\00s\00t\00") + (data (i32.const 624) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") + (data (i32.const 688) "*\00\00\00\01\00\00\00\01\00\00\00*\00\00\00b\00e\00f\00o\00r\00e\00A\00l\00l\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") + (data (i32.const 752) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00t\00h\00e\00 \00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00h\00a\00v\00e\00 \00r\00u\00n\00 \00y\00e\00t\00") + (data (i32.const 864) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00t\00h\00e\00 \00a\00f\00t\00e\00r\00A\00l\00l\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00h\00a\00v\00e\00 \00r\00u\00n\00 \00y\00e\00t\00") + (data (i32.const 976) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00u\00n\00s\00 \00s\00e\00c\00o\00n\00d\00") + (data (i32.const 1024) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00e\00c\00o\00n\00d\00T\00e\00s\00t\00") + (data (i32.const 1072) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \002\00") + (data (i32.const 1136) "*\00\00\00\01\00\00\00\01\00\00\00*\00\00\00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") + (data (i32.const 1200) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportTest" (func $assembly/internal/Test/reportTest (param i32 i32))) (import "__aspect" "reportDescribe" (func $assembly/internal/Describe/reportDescribe (param i32))) @@ -46,38 +65,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00n\00e\00s\00t\00e\00d\00 \00d\00e\00s\00c\00r\00i\00b\00e\00s\00") - (data (i32.const 336) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00i\00n\00n\00e\00r\00 \00d\00e\00s\00c\00r\00i\00b\00e\00") - (data (i32.const 384) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00 \00t\00h\00e\00 \00i\00n\00n\00e\00r\00 \00t\00e\00s\00t\00") - (data (i32.const 464) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 560) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 576) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00n\00e\00s\00t\00e\00d\00 \00c\00o\00n\00t\00r\00o\00l\00 \00f\00l\00o\00w\00") - (data (i32.const 640) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00r\00u\00n\00s\00 \00f\00i\00r\00s\00t\00") - (data (i32.const 688) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00f\00i\00r\00s\00t\00T\00e\00s\00t\00") - (data (i32.const 736) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") - (data (i32.const 800) "*\00\00\00\01\00\00\00\01\00\00\00*\00\00\00b\00e\00f\00o\00r\00e\00A\00l\00l\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") - (data (i32.const 864) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00t\00h\00e\00 \00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00h\00a\00v\00e\00 \00r\00u\00n\00 \00y\00e\00t\00") - (data (i32.const 976) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00t\00h\00e\00 \00a\00f\00t\00e\00r\00A\00l\00l\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00h\00a\00v\00e\00 \00r\00u\00n\00 \00y\00e\00t\00") - (data (i32.const 1088) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00u\00n\00s\00 \00s\00e\00c\00o\00n\00d\00") - (data (i32.const 1136) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00e\00c\00o\00n\00d\00T\00e\00s\00t\00") - (data (i32.const 1184) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00b\00e\00f\00o\00r\00e\00E\00a\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \002\00") - (data (i32.const 1248) "*\00\00\00\01\00\00\00\01\00\00\00*\00\00\00a\00f\00t\00e\00r\00E\00a\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \001\00") - (data (i32.const 1312) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 14 funcref) (elem (i32.const 1) $start:assembly/__tests__/nested-describe.spec~anonymous|0~anonymous|0~anonymous|0 $start:assembly/__tests__/nested-describe.spec~anonymous|0~anonymous|0 $start:assembly/internal/noOp~anonymous|0 $start:assembly/__tests__/nested-describe.spec~anonymous|0 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|0 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|1 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|2 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|3 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|4~anonymous|0 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|4 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|5~anonymous|0 $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|5 $start:assembly/__tests__/nested-describe.spec~anonymous|1) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/nested-describe.spec/outer (mut i32) (i32.const 1)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -107,8 +101,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1312)) - (global $~lib/heap/__heap_base i32 (i32.const 1364)) + (global $~lib/rt/__rtti_base i32 (i32.const 1200)) + (global $~lib/heap/__heap_base i32 (i32.const 1252)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1197,296 +1191,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 43 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 44 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 45 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 46 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 47 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 48 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 42 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1570,7 +1275,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 43 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1665,9 +1370,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 50 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1681,12 +1386,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1697,21 +1402,21 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 - i32.eqz + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz if i32.const 0 i32.const 32 @@ -1723,13 +1428,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1741,11 +1446,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1756,37 +1461,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 51 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 45 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 52 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 46 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1804,7 +1507,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1825,13 +1528,13 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 53 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 47 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1843,1532 +1546,101 @@ end local.get $0 ) - (func $~lib/rt/__typeinfo (; 54 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + (func $~lib/rt/pure/__release (; 48 ;) (param $0 i32) local.get $0 - local.get $1 - i32.load + global.get $~lib/heap/__heap_base i32.gt_u if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + end + ) + (func $assembly/internal/Expectation/Expectation#constructor (; 49 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 5 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store8 offset=4 + local.get $0 + local.get $1 + i32.store8 offset=4 + local.get $0 + ) + (func $assembly/internal/Expectation/expect (; 50 ;) (param $0 i32) (result i32) + i32.const 0 + local.get $0 + call $assembly/internal/Expectation/Expectation#constructor + ) + (func $assembly/internal/report/Actual/Actual.report (; 51 ;) (param $0 i32) + call $assembly/internal/report/Actual/getStackTrace + global.set $assembly/internal/report/Actual/Actual.stackTrace + i32.const 11 + global.set $assembly/internal/report/Actual/Actual.type + local.get $0 + i32.const 0 + i32.ne + global.set $assembly/internal/report/Actual/Actual.integer + ) + (func $assembly/internal/comparison/assert/assert (; 52 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 368 + i32.const 9 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + call $~lib/rt/pure/__release ) - (func $~lib/util/memory/memcpy (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/comparison/truthyComparison/truthyComparison (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + i32.const 8 + global.set $assembly/internal/report/Expected/Expected.type + local.get $1 + global.set $assembly/internal/report/Expected/Expected.negated + i32.const -1 + global.set $assembly/internal/report/Expected/Expected.stackTrace local.get $0 - i32.const 3 - i32.and + i32.const 0 + i32.ne i32.const 0 i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end + local.set $3 + local.get $1 + local.get $3 + i32.eqz + i32.xor local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 57 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 58 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 59 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 60 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end + call $assembly/internal/comparison/assert/assert local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - end - ) - (func $~lib/rt/pure/__release (; 61 ;) (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $assembly/internal/Expectation/Expectation#constructor (; 62 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 5 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store8 offset=4 - local.get $0 - local.get $1 - i32.store8 offset=4 - local.get $0 - ) - (func $assembly/internal/Expectation/expect (; 63 ;) (param $0 i32) (result i32) - i32.const 0 - local.get $0 - call $assembly/internal/Expectation/Expectation#constructor - ) - (func $assembly/internal/report/Actual/Actual.report (; 64 ;) (param $0 i32) - call $assembly/internal/report/Actual/getStackTrace - global.set $assembly/internal/report/Actual/Actual.stackTrace - i32.const 11 - global.set $assembly/internal/report/Actual/Actual.type - local.get $0 - i32.const 0 - i32.ne - global.set $assembly/internal/report/Actual/Actual.integer + call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.clear (; 65 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3388,7 +1660,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 66 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 55 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3406,79 +1678,32 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 67 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 56 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 i32.load8_u offset=4 - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report - i32.const 8 - global.set $assembly/internal/report/Expected/Expected.type - local.get $3 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const -1 - global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 - i32.const 0 - i32.ne - i32.const 0 - i32.eq - local.set $5 - local.get $3 - local.get $5 - i32.eqz - i32.xor - local.set $7 - local.get $2 - call $~lib/rt/pure/__retain - local.set $6 - local.get $7 - i32.eqz - if - local.get $6 - call $~lib/rt/pure/__release - local.get $6 - i32.const 480 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/truthyComparison/truthyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|0~anonymous|0~anonymous|0 (; 68 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|0~anonymous|0~anonymous|0 (; 57 ;) (local $0 i32) global.get $assembly/__tests__/nested-describe.spec/outer call $assembly/internal/Expectation/expect local.tee $0 - i32.const 576 + i32.const 464 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 69 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 58 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3488,15 +1713,15 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|0~anonymous|0 (; 70 ;) - i32.const 400 + (func $start:assembly/__tests__/nested-describe.spec~anonymous|0~anonymous|0 (; 59 ;) + i32.const 288 i32.const 1 call $assembly/internal/Test/it ) - (func $start:assembly/internal/noOp~anonymous|0 (; 71 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 60 ;) nop ) - (func $assembly/internal/Describe/describe (; 72 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 61 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3510,52 +1735,52 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|0 (; 73 ;) - i32.const 352 + (func $start:assembly/__tests__/nested-describe.spec~anonymous|0 (; 62 ;) + i32.const 240 i32.const 2 call $assembly/internal/Describe/describe ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|0 (; 74 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|0 (; 63 ;) global.get $assembly/__tests__/nested-describe.spec/beforeEachFlag i32.const 1 i32.add global.set $assembly/__tests__/nested-describe.spec/beforeEachFlag ) - (func $assembly/internal/Test/beforeEach (; 75 ;) (param $0 i32) + (func $assembly/internal/Test/beforeEach (; 64 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeEach ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|1 (; 76 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|1 (; 65 ;) global.get $assembly/__tests__/nested-describe.spec/beforeAllFlag i32.const 1 i32.add global.set $assembly/__tests__/nested-describe.spec/beforeAllFlag ) - (func $assembly/internal/Test/beforeAll (; 77 ;) (param $0 i32) + (func $assembly/internal/Test/beforeAll (; 66 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeAll ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|2 (; 78 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|2 (; 67 ;) global.get $assembly/__tests__/nested-describe.spec/afterEachFlag i32.const 1 i32.add global.set $assembly/__tests__/nested-describe.spec/afterEachFlag ) - (func $assembly/internal/Test/afterEach (; 79 ;) (param $0 i32) + (func $assembly/internal/Test/afterEach (; 68 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterEach ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|3 (; 80 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|3 (; 69 ;) global.get $assembly/__tests__/nested-describe.spec/afterAllFlag i32.const 1 i32.add global.set $assembly/__tests__/nested-describe.spec/afterAllFlag ) - (func $assembly/internal/Test/afterAll (; 81 ;) (param $0 i32) + (func $assembly/internal/Test/afterAll (; 70 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterAll ) - (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 71 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3576,12 +1801,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 72 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 84 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 73 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3607,7 +1832,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 85 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 74 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3641,63 +1866,42 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/Expectation/Expectation#toBe (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/exactComparison/exactComparison (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - i32.load offset=4 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 i32.eq i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 480 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBe (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|4~anonymous|0 (; 87 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|4~anonymous|0 (; 77 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3706,25 +1910,25 @@ call $assembly/internal/Expectation/expect local.tee $0 i32.const 1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toBe global.get $assembly/__tests__/nested-describe.spec/beforeAllFlag call $assembly/internal/Expectation/expect local.tee $1 i32.const 1 - i32.const 816 + i32.const 704 call $assembly/internal/Expectation/Expectation#toBe global.get $assembly/__tests__/nested-describe.spec/afterEachFlag call $assembly/internal/Expectation/expect local.tee $2 i32.const 0 - i32.const 880 + i32.const 768 call $assembly/internal/Expectation/Expectation#toBe global.get $assembly/__tests__/nested-describe.spec/afterAllFlag call $assembly/internal/Expectation/expect local.tee $3 i32.const 0 - i32.const 992 + i32.const 880 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release @@ -3735,7 +1939,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/test (; 88 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/test (; 78 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3745,12 +1949,12 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|4 (; 89 ;) - i32.const 704 + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|4 (; 79 ;) + i32.const 592 i32.const 9 call $assembly/internal/Test/test ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|5~anonymous|0 (; 90 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|5~anonymous|0 (; 80 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3759,25 +1963,25 @@ call $assembly/internal/Expectation/expect local.tee $0 i32.const 2 - i32.const 1200 + i32.const 1088 call $assembly/internal/Expectation/Expectation#toBe global.get $assembly/__tests__/nested-describe.spec/beforeAllFlag call $assembly/internal/Expectation/expect local.tee $1 i32.const 1 - i32.const 816 + i32.const 704 call $assembly/internal/Expectation/Expectation#toBe global.get $assembly/__tests__/nested-describe.spec/afterEachFlag call $assembly/internal/Expectation/expect local.tee $2 i32.const 1 - i32.const 1264 + i32.const 1152 call $assembly/internal/Expectation/Expectation#toBe global.get $assembly/__tests__/nested-describe.spec/afterAllFlag call $assembly/internal/Expectation/expect local.tee $3 i32.const 0 - i32.const 992 + i32.const 880 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release @@ -3788,12 +1992,12 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|5 (; 91 ;) - i32.const 1152 + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1~anonymous|5 (; 81 ;) + i32.const 1040 i32.const 11 call $assembly/internal/Test/test ) - (func $start:assembly/__tests__/nested-describe.spec~anonymous|1 (; 92 ;) + (func $start:assembly/__tests__/nested-describe.spec~anonymous|1 (; 82 ;) i32.const 5 call $assembly/internal/Test/beforeEach i32.const 6 @@ -3802,32 +2006,32 @@ call $assembly/internal/Test/afterEach i32.const 8 call $assembly/internal/Test/afterAll - i32.const 656 + i32.const 544 i32.const 10 call $assembly/internal/Describe/describe - i32.const 1104 + i32.const 992 i32.const 12 call $assembly/internal/Describe/describe ) - (func $start:assembly/__tests__/nested-describe.spec (; 93 ;) - i32.const 304 + (func $start:assembly/__tests__/nested-describe.spec (; 83 ;) + i32.const 192 i32.const 4 call $assembly/internal/Describe/describe - i32.const 592 + i32.const 480 i32.const 13 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 94 ;) + (func $assembly/index/__ready (; 84 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 95 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 85 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 96 ;) + (func $assembly/internal/report/Actual/__sendActual (; 86 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3935,7 +2139,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 97 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 87 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4074,24 +2278,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 98 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 88 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 99 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 89 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 100 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 90 ;) (result i32) i32.const 5 ) - (func $assembly/internal/Expectation/__cleanup (; 101 ;) + (func $assembly/internal/Expectation/__cleanup (; 91 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 102 ;) + (func $~start (; 92 ;) global.get $~started if return @@ -4101,140 +2305,130 @@ end call $start:assembly/__tests__/nested-describe.spec ) - (func $~lib/array/Array#__visit_impl (; 103 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 93 ;) + return ) - (func $~lib/rt/pure/__visit (; 104 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 94 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 95 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 96 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 97 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 105 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 98 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/performance.spec.ts b/packages/assembly/assembly/__tests__/performance.spec.ts index 179ef6e3..4788333a 100644 --- a/packages/assembly/assembly/__tests__/performance.spec.ts +++ b/packages/assembly/assembly/__tests__/performance.spec.ts @@ -10,10 +10,10 @@ describe("performance", () => { Performance.enabled(true); Performance.maxSamples(1001); test("This is a test with some performance values", () => { - var a: f64 = 1; + var a = 1.0; for (let i = 1; i < 10000; i++) { a = a * i / a + 1; - log(a); + log(a); } }); @@ -22,6 +22,6 @@ describe("performance", () => { */ Performance.enabled(false); test("This is a test without performance enabled", () => { - log("This should be visible."); + log("This should be visible."); }); }); diff --git a/packages/assembly/assembly/__tests__/performance.spec.wat b/packages/assembly/assembly/__tests__/performance.spec.wat index 885d1cde..cbf797d2 100644 --- a/packages/assembly/assembly/__tests__/performance.spec.wat +++ b/packages/assembly/assembly/__tests__/performance.spec.wat @@ -1,22 +1,29 @@ (module - (type $i32_=>_none (func (param i32))) - (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $f64_=>_none (func (param f64))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00p\00e\00r\00f\00o\00r\00m\00a\00n\00c\00e\00") + (data (i32.const 224) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00T\00h\00i\00s\00 \00i\00s\00 \00a\00 \00t\00e\00s\00t\00 \00w\00i\00t\00h\00 \00s\00o\00m\00e\00 \00p\00e\00r\00f\00o\00r\00m\00a\00n\00c\00e\00 \00v\00a\00l\00u\00e\00s\00") + (data (i32.const 336) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00T\00h\00i\00s\00 \00i\00s\00 \00a\00 \00t\00e\00s\00t\00 \00w\00i\00t\00h\00o\00u\00t\00 \00p\00e\00r\00f\00o\00r\00m\00a\00n\00c\00e\00 \00e\00n\00a\00b\00l\00e\00d\00") + (data (i32.const 448) ".\00\00\00\01\00\00\00\01\00\00\00.\00\00\00T\00h\00i\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00v\00i\00s\00i\00b\00l\00e\00.\00") + (data (i32.const 512) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "performanceEnabled" (func $assembly/internal/performance/performanceEnabled (param i32))) (import "__aspect" "maxSamples" (func $assembly/internal/performance/maxSamples (param f64))) (import "__aspect" "logValue" (func $assembly/internal/log/logFloat (param f64 i32))) @@ -45,26 +52,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00p\00e\00r\00f\00o\00r\00m\00a\00n\00c\00e\00") - (data (i32.const 336) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00T\00h\00i\00s\00 \00i\00s\00 \00a\00 \00t\00e\00s\00t\00 \00w\00i\00t\00h\00 \00s\00o\00m\00e\00 \00p\00e\00r\00f\00o\00r\00m\00a\00n\00c\00e\00 \00v\00a\00l\00u\00e\00s\00") - (data (i32.const 448) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00T\00h\00i\00s\00 \00i\00s\00 \00a\00 \00t\00e\00s\00t\00 \00w\00i\00t\00h\00o\00u\00t\00 \00p\00e\00r\00f\00o\00r\00m\00a\00n\00c\00e\00 \00e\00n\00a\00b\00l\00e\00d\00") - (data (i32.const 560) ".\00\00\00\01\00\00\00\01\00\00\00.\00\00\00T\00h\00i\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00v\00i\00s\00i\00b\00l\00e\00.\00") - (data (i32.const 624) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 5 funcref) (elem (i32.const 1) $start:assembly/__tests__/performance.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/performance.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/performance.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/noOp/noOp i32 (i32.const 4)) (global $~argumentsLength (mut i32) (i32.const 0)) @@ -89,8 +83,8 @@ (global $assembly/internal/report/Expected/Expected.isManaged (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 624)) - (global $~lib/heap/__heap_base i32 (i32.const 660)) + (global $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/heap/__heap_base i32 (i32.const 548)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1179,296 +1173,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1552,7 +1257,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1647,9 +1352,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1663,12 +1368,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1679,20 +1384,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1705,13 +1410,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1723,11 +1428,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1738,1479 +1443,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 local.get $4 - i32.add - global.set $~lib/rt/pure/END + call $~lib/rt/rtrace/onalloc + local.get $4 ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3220,90 +1510,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3314,15 +1539,15 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/performance/Performance.enabled (; 59 ;) (param $0 i32) + (func $assembly/internal/performance/Performance.enabled (; 46 ;) (param $0 i32) local.get $0 call $assembly/internal/performance/performanceEnabled ) - (func $assembly/internal/performance/Performance.maxSamples (; 60 ;) (param $0 f64) + (func $assembly/internal/performance/Performance.maxSamples (; 47 ;) (param $0 f64) local.get $0 call $assembly/internal/performance/maxSamples ) - (func $assembly/internal/log/log (; 61 ;) (param $0 f64) + (func $assembly/internal/log/log (; 48 ;) (param $0 f64) global.get $assembly/internal/log/ignoreLogs if return @@ -3331,7 +1556,7 @@ i32.const 1 call $assembly/internal/log/logFloat ) - (func $start:assembly/__tests__/performance.spec~anonymous|0~anonymous|0 (; 62 ;) + (func $start:assembly/__tests__/performance.spec~anonymous|0~anonymous|0 (; 49 ;) (local $0 f64) (local $1 i32) (local $2 i32) @@ -3365,7 +1590,7 @@ end end ) - (func $assembly/internal/Test/test (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/test (; 50 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3375,7 +1600,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/log/log<~lib/string/String> (; 64 ;) (param $0 i32) + (func $assembly/internal/log/log<~lib/string/String> (; 51 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3390,28 +1615,28 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/performance.spec~anonymous|0~anonymous|1 (; 65 ;) - i32.const 576 + (func $start:assembly/__tests__/performance.spec~anonymous|0~anonymous|1 (; 52 ;) + i32.const 464 call $assembly/internal/log/log<~lib/string/String> ) - (func $start:assembly/__tests__/performance.spec~anonymous|0 (; 66 ;) + (func $start:assembly/__tests__/performance.spec~anonymous|0 (; 53 ;) i32.const 1 call $assembly/internal/performance/Performance.enabled f64.const 1001 call $assembly/internal/performance/Performance.maxSamples - i32.const 352 + i32.const 240 i32.const 1 call $assembly/internal/Test/test i32.const 0 call $assembly/internal/performance/Performance.enabled - i32.const 464 + i32.const 352 i32.const 2 call $assembly/internal/Test/test ) - (func $start:assembly/internal/noOp~anonymous|0 (; 67 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 54 ;) nop ) - (func $assembly/internal/Describe/describe (; 68 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 55 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3425,22 +1650,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/performance.spec (; 69 ;) - i32.const 304 + (func $start:assembly/__tests__/performance.spec (; 56 ;) + i32.const 192 i32.const 3 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 70 ;) + (func $assembly/index/__ready (; 57 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 71 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 58 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 72 ;) + (func $assembly/internal/report/Actual/__sendActual (; 59 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3548,7 +1773,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 73 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 60 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3687,20 +1912,20 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 74 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 61 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 75 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 62 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 76 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 63 ;) (result i32) i32.const 3 ) - (func $assembly/internal/report/Expected/Expected.clear (; 77 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 64 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3718,7 +1943,7 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/report/Actual/Actual.clear (; 78 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 65 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3738,11 +1963,11 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/Expectation/__cleanup (; 79 ;) + (func $assembly/internal/Expectation/__cleanup (; 66 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 80 ;) + (func $~start (; 67 ;) global.get $~started if return @@ -3752,140 +1977,130 @@ end call $start:assembly/__tests__/performance.spec ) - (func $~lib/array/Array#__visit_impl (; 81 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 68 ;) + return ) - (func $~lib/rt/pure/__visit (; 82 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 69 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 70 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 71 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 72 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 83 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 73 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toBe.spec.ts b/packages/assembly/assembly/__tests__/toBe.spec.ts index b3ad2ed3..a157bff9 100644 --- a/packages/assembly/assembly/__tests__/toBe.spec.ts +++ b/packages/assembly/assembly/__tests__/toBe.spec.ts @@ -1,12 +1,10 @@ import { Vec3 } from "./setup/Vec3"; import { Listener, listener, anotherListener, initializeDispatcher } from "./setup/Event"; -var vec1: Vec3 = new Vec3(1, 2, 3); -var vec2: Vec3 = new Vec3(4, 5, 6); +var vec1 = new Vec3(1, 2, 3); +var vec2 = new Vec3(4, 5, 6); var eventDispatcher = initializeDispatcher(); - - /** * This test suite valides strict equality expectations. For value types, they should strictly * equal each other, and for reference types, they should be exactly equal pointers. @@ -16,56 +14,56 @@ describe("toBe", () => { * This test validates value type expectations of equality. */ it("should expect equal value type values to be equal", () => { - expect(42).toBe(42, "Two equal values should be equal."); + expect(42).toBe(42, "Two equal values should be equal."); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if value types are equal", () => { - expect(42).not.toBe(42); + expect(42).not.toBe(42); }, "Negated toBe assertions with equal values should throw."); /** * This test validates value type expectations of inequality. */ it("should expect unequal value type values to unequal.", () => { - expect(0).not.toBe(42, "Two unequal values should not be equal."); + expect(0).not.toBe(42, "Two unequal values should not be equal."); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if value types are unequal", () => { - expect(0).toBe(42); + expect(0).toBe(42); }, "toBe assertions with unequal values should throw."); /** * This test validates a reference equals itself. */ it("should validate if a reference is itself", () => { - expect(vec1).toBe(vec1, "The same reference should be itself"); + expect(vec1).toBe(vec1, "The same reference should be itself"); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if a reference is itself", () => { - expect(vec1).not.toBe(vec1); + expect(vec1).not.toBe(vec1); }, "Negated toBe assertions of equal pointers should throw"); /** * This test validates that a reference is not expected to be itself. */ it("should validate if a reference is not itself", () => { - expect(vec1).not.toBe(vec2, "Two difference references aren't the same."); + expect(vec1).not.toBe(vec2, "Two difference references aren't the same."); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if a reference is itself", () => { - expect(vec1).toBe(vec2); + expect(vec1).toBe(vec2); }, "toBe assertions of unequal pointers should throw"); /** @@ -100,51 +98,43 @@ describe("toBe", () => { * NaN comparisons should always throw for actual values. */ throws("should always throw if actual value is NaN", () => { - expect(NaN).toBe(0); + expect(NaN).toBe(0); }, "An actual value can never be NaN, and never equals anything."); /** * NaN comparisons should always throw for expected values. */ throws("should always throw if expected value is NaN", () => { - expect(0).toBe(NaN); + expect(0.0).toBe(NaN); }, "An expected value can never be NaN, and never equals anything."); /** * NaN values should alway throw. */ throws("should always throw if both values are NaN", () => { - expect(NaN).toBe(NaN); + expect(NaN).toBe(NaN); }, "NaN is not ever equal to NaN."); /** * Function pointers should be comparable */ it("should compare function pointers", () => { - expect( - eventDispatcher.events[0] - ).toBe(listener); + expect(eventDispatcher.events[0]).toBe(listener, "Function references should be comparable."); log(listener); }); it("should handle negative case for comparing function pointers", () =>{ - expect( - eventDispatcher.events[1] - ).not.toBe(listener); + expect(eventDispatcher.events[1]).not.toBe(listener, "Function references that don't match should not be equal."); }); /** Contrapositive of above */ throws("should always throw if function pointers are not the same", () => { - expect( - eventDispatcher.events[0] - ).toBe(anotherListener); - }); + expect(eventDispatcher.events[0]).toBe(anotherListener); + }, "Function references that do not match should throw when they are not equal."); /** Contrapositive of negative above */ throws("should always throw if function pointers are the same", () => { - expect( - eventDispatcher.events[0] - ).not.toBe(listener); - }); + expect(eventDispatcher.events[0]).not.toBe(listener); + }, "Function references that should not match, but do, should throw when they are equal."); }); diff --git a/packages/assembly/assembly/__tests__/toBe.spec.wat b/packages/assembly/assembly/__tests__/toBe.spec.wat index 60235842..a0697c64 100644 --- a/packages/assembly/assembly/__tests__/toBe.spec.wat +++ b/packages/assembly/assembly/__tests__/toBe.spec.wat @@ -1,26 +1,77 @@ (module (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_i32_=>_none (func (param i32 f64 i32))) (type $f64_=>_none (func (param f64))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) + (type $f64_f64_i32_i32_=>_none (func (param f64 f64 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 224) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 288) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 336) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00o\00B\00e\00") + (data (i32.const 368) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00 \00v\00a\00l\00u\00e\00s\00 \00t\00o\00 \00b\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 496) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00T\00w\00o\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00e\00q\00u\00a\00l\00.\00") + (data (i32.const 592) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 688) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 784) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 800) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 928) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00u\00n\00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00 \00v\00a\00l\00u\00e\00s\00 \00t\00o\00 \00u\00n\00e\00q\00u\00a\00l\00.\00") + (data (i32.const 1056) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00T\00w\00o\00 \00u\00n\00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00e\00q\00u\00a\00l\00.\00") + (data (i32.const 1152) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00a\00r\00e\00 \00u\00n\00e\00q\00u\00a\00l\00") + (data (i32.const 1248) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00u\00n\00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 1376) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00i\00f\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00i\00t\00s\00e\00l\00f\00") + (data (i32.const 1472) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00T\00h\00e\00 \00s\00a\00m\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00i\00t\00s\00e\00l\00f\00") + (data (i32.const 1568) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 1648) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00i\00t\00s\00e\00l\00f\00") + (data (i32.const 1744) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00f\00 \00e\00q\00u\00a\00l\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 1872) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00i\00f\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00n\00o\00t\00 \00i\00t\00s\00e\00l\00f\00") + (data (i32.const 1984) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00T\00w\00o\00 \00d\00i\00f\00f\00e\00r\00e\00n\00c\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00n\00\'\00t\00 \00t\00h\00e\00 \00s\00a\00m\00e\00.\00") + (data (i32.const 2096) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00f\00 \00u\00n\00e\00q\00u\00a\00l\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 2208) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00s\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 2288) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 2400) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00s\00 \00o\00f\00 \00n\00u\00l\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 2512) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 2608) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00A\00 \00v\00a\00l\00i\00d\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00y\00p\00e\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 2720) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00y\00p\00e\00 \00i\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00") + (data (i32.const 2832) "j\00\00\00\01\00\00\00\01\00\00\00j\00\00\00A\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00y\00p\00e\00 \00e\00x\00p\00e\00c\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00i\00t\00\'\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 2960) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 3072) "x\00\00\00\01\00\00\00\01\00\00\00x\00\00\00A\00n\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00c\00a\00n\00 \00n\00e\00v\00e\00r\00 \00b\00e\00 \00N\00a\00N\00,\00 \00a\00n\00d\00 \00n\00e\00v\00e\00r\00 \00e\00q\00u\00a\00l\00s\00 \00a\00n\00y\00t\00h\00i\00n\00g\00.\00") + (data (i32.const 3216) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 3328) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00A\00n\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00c\00a\00n\00 \00n\00e\00v\00e\00r\00 \00b\00e\00 \00N\00a\00N\00,\00 \00a\00n\00d\00 \00n\00e\00v\00e\00r\00 \00e\00q\00u\00a\00l\00s\00 \00a\00n\00y\00t\00h\00i\00n\00g\00.\00") + (data (i32.const 3472) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00b\00o\00t\00h\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00N\00a\00N\00") + (data (i32.const 3584) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00e\00v\00e\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00N\00a\00N\00.\00") + (data (i32.const 3664) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00m\00p\00a\00r\00e\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00") + (data (i32.const 3744) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") + (data (i32.const 3808) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") + (data (i32.const 3920) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00c\00o\00m\00p\00a\00r\00a\00b\00l\00e\00.\00") + (data (i32.const 4032) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00s\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00n\00e\00g\00a\00t\00i\00v\00e\00 \00c\00a\00s\00e\00 \00f\00o\00r\00 \00c\00o\00m\00p\00a\00r\00i\00n\00g\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00") + (data (i32.const 4176) "r\00\00\00\01\00\00\00\01\00\00\00r\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00d\00o\00n\00\'\00t\00 \00m\00a\00t\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00e\00q\00u\00a\00l\00.\00") + (data (i32.const 4320) "r\00\00\00\01\00\00\00\01\00\00\00r\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00t\00h\00e\00 \00s\00a\00m\00e\00") + (data (i32.const 4464) "\96\00\00\00\01\00\00\00\01\00\00\00\96\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00d\00o\00 \00n\00o\00t\00 \00m\00a\00t\00c\00h\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00.\00") + (data (i32.const 4640) "j\00\00\00\01\00\00\00\01\00\00\00j\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00a\00r\00e\00 \00t\00h\00e\00 \00s\00a\00m\00e\00") + (data (i32.const 4768) "\a8\00\00\00\01\00\00\00\01\00\00\00\a8\00\00\00F\00u\00n\00c\00t\00i\00o\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00h\00a\00t\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00m\00a\00t\00c\00h\00,\00 \00b\00u\00t\00 \00d\00o\00,\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00.\00") + (data (i32.const 4960) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -50,65 +101,17 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 336) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 400) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 448) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00o\00B\00e\00") - (data (i32.const 480) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00 \00v\00a\00l\00u\00e\00s\00 \00t\00o\00 \00b\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 608) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00T\00w\00o\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00e\00q\00u\00a\00l\00.\00") - (data (i32.const 704) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 800) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 896) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 912) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 1040) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00u\00n\00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00 \00v\00a\00l\00u\00e\00s\00 \00t\00o\00 \00u\00n\00e\00q\00u\00a\00l\00.\00") - (data (i32.const 1168) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00T\00w\00o\00 \00u\00n\00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00e\00q\00u\00a\00l\00.\00") - (data (i32.const 1264) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00a\00r\00e\00 \00u\00n\00e\00q\00u\00a\00l\00") - (data (i32.const 1360) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00w\00i\00t\00h\00 \00u\00n\00e\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 1488) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00i\00f\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00i\00t\00s\00e\00l\00f\00") - (data (i32.const 1584) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00T\00h\00e\00 \00s\00a\00m\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00i\00t\00s\00e\00l\00f\00") - (data (i32.const 1680) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00i\00t\00s\00e\00l\00f\00") - (data (i32.const 1776) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00f\00 \00e\00q\00u\00a\00l\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 1904) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00i\00f\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00i\00s\00 \00n\00o\00t\00 \00i\00t\00s\00e\00l\00f\00") - (data (i32.const 2016) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00T\00w\00o\00 \00d\00i\00f\00f\00e\00r\00e\00n\00c\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00n\00\'\00t\00 \00t\00h\00e\00 \00s\00a\00m\00e\00.\00") - (data (i32.const 2128) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00t\00o\00B\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00f\00 \00u\00n\00e\00q\00u\00a\00l\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 2240) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00s\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 2320) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 2432) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00N\00e\00g\00a\00t\00e\00d\00 \00t\00o\00B\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00s\00 \00o\00f\00 \00n\00u\00l\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 2544) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 2640) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00A\00 \00v\00a\00l\00i\00d\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00y\00p\00e\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 2752) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00y\00p\00e\00 \00i\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00") - (data (i32.const 2864) "j\00\00\00\01\00\00\00\01\00\00\00j\00\00\00A\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00y\00p\00e\00 \00e\00x\00p\00e\00c\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00i\00t\00\'\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 2992) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 3104) "x\00\00\00\01\00\00\00\01\00\00\00x\00\00\00A\00n\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00c\00a\00n\00 \00n\00e\00v\00e\00r\00 \00b\00e\00 \00N\00a\00N\00,\00 \00a\00n\00d\00 \00n\00e\00v\00e\00r\00 \00e\00q\00u\00a\00l\00s\00 \00a\00n\00y\00t\00h\00i\00n\00g\00.\00") - (data (i32.const 3248) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 3360) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00A\00n\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00c\00a\00n\00 \00n\00e\00v\00e\00r\00 \00b\00e\00 \00N\00a\00N\00,\00 \00a\00n\00d\00 \00n\00e\00v\00e\00r\00 \00e\00q\00u\00a\00l\00s\00 \00a\00n\00y\00t\00h\00i\00n\00g\00.\00") - (data (i32.const 3504) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00b\00o\00t\00h\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00N\00a\00N\00") - (data (i32.const 3616) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00e\00v\00e\00r\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00N\00a\00N\00.\00") - (data (i32.const 3696) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00m\00p\00a\00r\00e\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00") - (data (i32.const 3776) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 3888) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00s\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00n\00e\00g\00a\00t\00i\00v\00e\00 \00c\00a\00s\00e\00 \00f\00o\00r\00 \00c\00o\00m\00p\00a\00r\00i\00n\00g\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00") - (data (i32.const 4032) "r\00\00\00\01\00\00\00\01\00\00\00r\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00t\00h\00e\00 \00s\00a\00m\00e\00") - (data (i32.const 4176) "j\00\00\00\01\00\00\00\01\00\00\00j\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00a\00r\00e\00 \00t\00h\00e\00 \00s\00a\00m\00e\00") - (data (i32.const 4304) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (table $0 24 funcref) (elem (i32.const 1) $start:assembly/__tests__/setup/Event~anonymous|0 $start:assembly/__tests__/setup/Event~anonymous|1 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|11 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|12 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|13 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|14 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|15 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|16 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|17 $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|18 $start:assembly/__tests__/toBe.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/setup/Event/listener i32 (i32.const 1)) (global $assembly/__tests__/setup/Event/anotherListener i32 (i32.const 2)) (global $assembly/__tests__/toBe.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/__tests__/toBe.spec/vec2 (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toBe.spec/eventDispatcher (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -134,8 +137,8 @@ (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 4304)) - (global $~lib/heap/__heap_base i32 (i32.const 4412)) + (global $~lib/rt/__rtti_base i32 (i32.const 4960)) + (global $~lib/heap/__heap_base i32 (i32.const 5068)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -154,7 +157,7 @@ (export "__disableRTrace" (func $assembly/internal/RTrace/__disableRTrace)) (export "__getUsizeArrayId" (func $assembly/internal/RTrace/__getUsizeArrayId)) (export "__cleanup" (func $assembly/internal/Expectation/__cleanup)) - (func $~lib/rt/tlsf/removeBlock (; 34 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 35 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -364,7 +367,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 35 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 36 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -714,7 +717,7 @@ local.get $7 i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (; 37 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -862,7 +865,7 @@ call $~lib/rt/tlsf/insertBlock i32.const 1 ) - (func $~lib/rt/tlsf/maybeInitialize (; 37 ;) (result i32) + (func $~lib/rt/tlsf/maybeInitialize (; 38 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1012,7 +1015,7 @@ end local.get $0 ) - (func $~lib/rt/tlsf/prepareSize (; 38 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 39 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1041,7 +1044,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 39 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 40 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1224,296 +1227,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 41 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 42 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 44 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 45 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 46 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 41 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1597,7 +1311,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 47 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1692,9 +1406,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 43 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1708,12 +1422,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 + local.set $3 local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1724,20 +1438,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1750,13 +1464,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1768,11 +1482,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1783,37 +1497,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 49 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 44 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 50 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 45 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1831,7 +1543,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1852,13 +1564,13 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 51 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 46 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1870,1913 +1582,1741 @@ end local.get $0 ) - (func $~lib/rt/__typeinfo (; 52 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + (func $~lib/rt/pure/__release (; 47 ;) (param $0 i32) local.get $0 - local.get $1 - i32.load + global.get $~lib/heap/__heap_base i32.gt_u if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end + ) + (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 48 ;) (param $0 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 49 ;) (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + local.set $1 + local.get $1 local.get $1 - i32.const 4 i32.add + drop + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 50 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + f64.store + local.get $0 + local.get $2 + f64.store offset=8 + local.get $0 + local.get $3 + f64.store offset=16 local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load ) - (func $~lib/util/memory/memcpy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end + (local $7 i32) + (local $8 i64) + (local $9 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end + local.get $1 + local.set $4 local.get $2 - i32.const 8 - i32.and + local.set $3 + local.get $3 + i32.eqz if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 4 - i32.and + local.get $5 + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 i32.const 1 i32.add - local.set $1 - local.get $5 - i32.load8_u + local.get $4 i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 2 i32.add - local.set $1 - local.get $5 - i32.load8_u + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u + i32.const 2 + i32.sub + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u + i32.const 3 + i32.sub + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 3 i32.add - local.set $1 - local.get $5 - i32.load8_u + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u + i32.const 4 + i32.sub + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 + i32.sub + i32.const 3 + i32.and + local.set $6 local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + local.get $6 i32.add - local.set $0 + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $7 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $0 + i32.const 4 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 4 i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 + i32.const 8 i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 + i32.const 12 + i32.sub + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $0 + i32.const 8 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 12 i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + i32.const 16 i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 20 i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + i32.const 24 i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 + i32.const 28 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 i32.add - local.set $0 + i32.const 24 + i32.sub + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 + i32.const 20 + i32.sub + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $0 + i32.const 16 + i32.sub + local.get $7 + i32.store + i32.const 24 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 4 + i32.and i32.add - local.set $1 + local.set $6 local.get $5 - i32.load8_u - i32.store8 + local.get $6 + i32.add + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $7 + i64.extend_i32_u + local.get $7 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $8 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $9 + local.get $9 + if + local.get $5 + local.get $8 + i64.store + local.get $5 + i32.const 8 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 16 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 24 + i32.add + local.get $8 + i64.store + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end end + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 1073741808 local.get $2 - i32.const 1 - i32.and + i32.shr_u + i32.gt_u if - local.get $0 - local.tee $5 - i32.const 1 - i32.add + i32.const 192 + i32.const 240 + i32.const 23 + i32.const 56 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 53 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 16 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 54 ;) (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.const 0 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" + i32.store + local.get $0 + ) + (func $~lib/rt/tlsf/checkUsedBlock (; 55 ;) (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 16 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) local.get $1 - local.tee $5 + i32.load i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load offset=4 + i32.const -268435456 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 570 + i32.const 2 + call $~lib/builtins/abort + unreachable end + local.get $1 ) - (func $~lib/memory/memory.copy (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 local.get $5 - local.get $4 - i32.eq if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) + local.get $0 + local.tee $6 i32.const 1 - else + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 local.get $5 - local.get $3 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 i32.add - local.get $4 - i32.le_u + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 end + local.get $2 + i32.const 4 + i32.and if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 end - local.get $5 - local.get $4 - i32.lt_u + local.get $2 + i32.const 2 + i32.and if - local.get $4 - i32.const 7 - i32.and + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and local.set $5 - local.get $7 - local.get $4 - local.tee $7 + local.get $5 i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if + i32.eq + br_if $case0|2 local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 + i32.const 2 + i32.eq + br_if $case1|2 local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.tee $7 + local.get $1 + local.tee $5 i32.const 1 i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 i32.const 1 i32.add - local.set $4 - local.get $7 + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - local.get $3 + local.get $0 + local.tee $5 i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 if - br $~lib/util/memory/memmove|inlined.0 + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 loop $while-continue|4 - local.get $3 - i32.const 8 + local.get $2 + i32.const 18 i32.ge_u - local.set $6 - local.get $6 + local.set $5 + local.get $5 if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 i32.const 8 - i32.sub + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load local.set $3 - local.get $5 - local.get $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i64.load - i64.store + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|4 end end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 if - local.get $5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 i32.add local.get $4 + i32.const 8 + i32.shr_u local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 i32.add - i32.load8_u - i32.store8 + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|5 end end + br $break|2 end end - ) - (func $~lib/rt/tlsf/__free (; 55 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 56 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 + i32.and if local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 57 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 58 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.const 16 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 i32.const 1 - call $~lib/rt/__visit_members + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - end - ) - (func $~lib/rt/pure/__release (; 59 ;) (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 60 ;) (param $0 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - ) - (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 61 ;) (param $0 i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - local.set $1 - local.get $1 - local.get $1 - i32.add - drop - local.get $0 - call $~lib/rt/pure/__release - ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 62 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + local.tee $5 + i32.const 1 + i32.add local.set $0 - end - local.get $0 - local.get $1 - f64.store - local.get $0 - local.get $2 - f64.store offset=8 - local.get $0 - local.get $3 - f64.store offset=16 - local.get $0 - ) - (func $~lib/memory/memory.fill (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - block $~lib/util/memory/memset|inlined.0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - local.set $5 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.eqz - if - br $~lib/util/memory/memset|inlined.0 - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $4 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 i32.const 1 - i32.sub - local.get $4 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 2 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 + local.get $1 + local.tee $5 i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 2 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 2 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 3 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 6 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - i32.const 0 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.sub - i32.const 3 - i32.and - local.set $6 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $6 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.set $5 - local.get $3 - local.get $6 - i32.sub - local.set $3 - local.get $3 - i32.const -4 - i32.and - local.set $3 - i32.const -1 - i32.const 255 - i32.div_u - local.get $4 - i32.const 255 - i32.and - i32.mul - local.set $7 + local.set $0 local.get $5 - local.get $7 - i32.store + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $0 local.get $5 - i32.const 4 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 8 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 12 - i32.sub - local.get $7 - i32.store + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 8 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 24 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $1 local.get $5 - i32.const 12 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 16 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 20 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 24 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 28 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 24 - i32.sub - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 20 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 16 - i32.sub - local.get $7 - i32.store - i32.const 24 + local.set $1 local.get $5 - i32.const 4 - i32.and + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.set $6 + local.set $0 local.get $5 - local.get $6 + local.get $1 + local.tee $5 + i32.const 1 i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 local.set $5 - local.get $3 - local.get $6 - i32.sub + local.get $1 + local.set $4 + local.get $2 local.set $3 - local.get $7 - i64.extend_i32_u - local.get $7 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - local.set $8 - loop $while-continue|0 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $4 + local.get $3 + i32.add + local.get $5 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 local.get $3 - i32.const 32 - i32.ge_u - local.set $9 - local.get $9 + i32.add + local.get $4 + i32.le_u + end + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq if - local.get $5 - local.get $8 - i64.store - local.get $5 - i32.const 8 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 16 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 24 - i32.add - local.get $8 - i64.store + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 local.get $3 - i32.const 32 - i32.sub - local.set $3 - local.get $5 - i32.const 32 - i32.add - local.set $5 - br $while-continue|0 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 64 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/rt/tlsf/freeBlock (; 58 ;) (param $0 i32) (param $1 i32) + (local $2 i32) local.get $1 - i32.const 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 304 - i32.const 352 - i32.const 23 - i32.const 56 - call $~lib/builtins/abort - unreachable - end + i32.load + local.set $2 local.get $1 local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 + i32.const 1 + i32.or i32.store local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 65 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 + call $~lib/rt/tlsf/insertBlock local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 66 ;) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.const 0 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" - i32.store - local.get $0 + call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3789,28 +3329,6 @@ local.get $1 i32.load local.set $4 - local.get $4 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $1 - i32.load offset=4 - i32.const -268435456 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 525 - i32.const 4 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $4 i32.const -4 @@ -3888,12 +3406,14 @@ end local.get $0 local.get $2 + local.get $1 + i32.load offset=8 call $~lib/rt/tlsf/allocateBlock local.set $8 local.get $8 local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.load offset=4 + i32.store offset=4 local.get $8 i32.const 16 i32.add @@ -3907,49 +3427,24 @@ i32.ge_u if local.get $1 - local.get $4 - i32.const 1 - i32.or - i32.store + local.get $8 + call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree + call $~lib/rt/tlsf/freeBlock end local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 68 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 586 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + (func $~lib/rt/tlsf/__realloc (; 60 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.const 16 - i32.sub + call $~lib/rt/tlsf/checkUsedBlock local.get $1 call $~lib/rt/tlsf/reallocateBlock i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3969,8 +3464,8 @@ i32.shr_u i32.gt_u if + i32.const 192 i32.const 304 - i32.const 416 i32.const 14 i32.const 47 call $~lib/builtins/abort @@ -4001,7 +3496,6 @@ if local.get $0 local.get $6 - call $~lib/rt/pure/__retain i32.store local.get $0 local.get $6 @@ -4012,7 +3506,7 @@ i32.store offset=8 end ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 70 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 62 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4039,7 +3533,7 @@ i32.store offset=12 local.get $3 ) - (func $assembly/__tests__/setup/Event/initializeDispatcher (; 71 ;) (result i32) + (func $assembly/__tests__/setup/Event/initializeDispatcher (; 63 ;) (result i32) (local $0 i32) i32.const 0 call $assembly/__tests__/setup/Event/EventDispatcher#constructor @@ -4056,7 +3550,7 @@ drop local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 72 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 64 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -4077,12 +3571,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 73 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 65 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 74 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 66 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -4108,7 +3602,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 75 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 67 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -4142,7 +3636,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 76 ;) + (func $assembly/internal/comparison/assert/assert (; 68 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 608 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/exactComparison/exactComparison (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $1 + local.get $0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 70 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -4162,7 +3694,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 77 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 71 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -4180,74 +3712,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBe (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBe (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 - i32.eq - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 720 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|0 (; 79 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|0 (; 73 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 624 + i32.const 512 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 80 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 74 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4257,14 +3749,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 81 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 75 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|1 (; 82 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|1 (; 76 ;) (local $0 i32) (local $1 i32) i32.const 42 @@ -4273,14 +3765,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4296,7 +3788,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|2 (; 84 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|2 (; 78 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -4305,25 +3797,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 42 - i32.const 1184 + i32.const 1072 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|3 (; 85 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|3 (; 79 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 86 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 80 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4366,7 +3858,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 87 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 81 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4379,7 +3871,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 88 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 82 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4407,7 +3899,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 89 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 83 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4445,7 +3937,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#__equals (; 90 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__equals (; 84 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -4483,6 +3975,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1584 + i32.const 54 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load @@ -4495,6 +3992,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1584 + i32.const 55 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load offset=8 @@ -4510,6 +4012,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1584 + i32.const 56 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load offset=16 @@ -4522,66 +4029,49 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $assembly/internal/Expectation/Expectation#toBe (; 91 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/exactComparison/exactComparison (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 call $assembly/__tests__/setup/Vec3/Vec3#__equals i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 720 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBe (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4589,25 +4079,25 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|4 (; 92 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|4 (; 87 ;) (local $0 i32) global.get $assembly/__tests__/toBe.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/toBe.spec/vec1 - i32.const 1600 + i32.const 1488 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 93 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 88 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|5 (; 94 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|5 (; 89 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBe.spec/vec1 @@ -4616,14 +4106,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 global.get $assembly/__tests__/toBe.spec/vec1 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|6 (; 95 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|6 (; 90 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBe.spec/vec1 @@ -4632,25 +4122,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 global.get $assembly/__tests__/toBe.spec/vec2 - i32.const 2032 + i32.const 2000 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|7 (; 96 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|7 (; 91 ;) (local $0 i32) global.get $assembly/__tests__/toBe.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/toBe.spec/vec2 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 97 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 92 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4693,7 +4183,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 98 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 93 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4706,7 +4196,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 99 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 94 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4744,7 +4234,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 95 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4792,66 +4282,49 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBe (; 101 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + (func $assembly/internal/comparison/exactComparison/exactComparison (; 96 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $6 + local.get $0 call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 call $assembly/__tests__/setup/Vec3/Vec3#__equals i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 720 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBe (; 97 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4859,25 +4332,25 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|8 (; 102 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|8 (; 98 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 103 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 99 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|9 (; 104 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|9 (; 100 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -4886,14 +4359,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|10 (; 105 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|10 (; 101 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBe.spec/vec1 @@ -4902,25 +4375,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 2656 + i32.const 2624 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|11 (; 106 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|11 (; 102 ;) (local $0 i32) global.get $assembly/__tests__/toBe.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 107 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 103 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -4941,12 +4414,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 108 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 104 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 109 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 105 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -4954,7 +4427,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Expected/Expected.report (; 110 ;) (param $0 f64) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 106 ;) (param $0 f64) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -4964,102 +4437,81 @@ call $assembly/internal/report/Expected/getStackTrace global.set $assembly/internal/report/Expected/Expected.stackTrace local.get $1 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const 2 - global.set $assembly/internal/report/Expected/Expected.type + global.set $assembly/internal/report/Expected/Expected.negated + i32.const 2 + global.set $assembly/internal/report/Expected/Expected.type + local.get $0 + global.set $assembly/internal/report/Expected/Expected.float + ) + (func $assembly/internal/comparison/exactComparison/exactComparison (; 107 ;) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $1 local.get $0 - global.set $assembly/internal/report/Expected/Expected.float + f64.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBe (; 111 ;) (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBe (; 108 ;) (param $0 i32) (param $1 f64) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 f64.load offset=8 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 - f64.eq - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 720 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|12 (; 112 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|12 (; 109 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const 0 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|13 (; 113 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|13 (; 110 ;) (local $0 i32) f64.const 0 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|14 (; 114 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|14 (; 111 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 - i32.const 912 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 115 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 112 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5068,15 +4520,15 @@ i32.add i32.load ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 116 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 113 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 3760 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -5089,8 +4541,8 @@ local.get $2 i32.eqz if - i32.const 3792 - i32.const 416 + i32.const 3824 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -5098,7 +4550,7 @@ end local.get $2 ) - (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 117 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 114 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -5119,12 +4571,12 @@ i32.store offset=4 local.get $0 ) - (func "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" (; 118 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" (; 115 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" ) - (func "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 119 ;) (param $0 i32) + (func "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 116 ;) (param $0 i32) (local $1 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace @@ -5136,7 +4588,7 @@ global.set $assembly/internal/report/Actual/Actual.reference return ) - (func "$assembly/internal/report/Expected/Expected.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 120 ;) (param $0 i32) (param $1 i32) + (func "$assembly/internal/report/Expected/Expected.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 117 ;) (param $0 i32) (param $1 i32) (local $2 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz @@ -5156,63 +4608,42 @@ global.set $assembly/internal/report/Expected/Expected.reference return ) - (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toBe" (; 121 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + (func "$assembly/internal/comparison/exactComparison/exactComparison<(event: assembly/__tests__/setup/Event/Event) => void>" (; 118 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - i32.load offset=4 - local.set $6 + call "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" - local.get $5 - local.get $4 call "$assembly/internal/report/Expected/Expected.report<(event: assembly/__tests__/setup/Event/Event) => void>" - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 i32.eq i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 720 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toBe" (; 119 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call "$assembly/internal/comparison/exactComparison/exactComparison<(event: assembly/__tests__/setup/Event/Event) => void>" call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func "$assembly/internal/log/log<(event: assembly/__tests__/setup/Event/Event) => void>" (; 122 ;) (param $0 i32) + (func "$assembly/internal/log/log<(event: assembly/__tests__/setup/Event/Event) => void>" (; 120 ;) (param $0 i32) global.get $assembly/internal/log/ignoreLogs if return @@ -5220,7 +4651,7 @@ local.get $0 call $assembly/internal/log/logFunction ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|15 (; 123 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|15 (; 121 ;) (local $0 i32) global.get $assembly/__tests__/toBe.spec/eventDispatcher i32.load @@ -5229,21 +4660,21 @@ call "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" local.tee $0 global.get $assembly/__tests__/setup/Event/listener - i32.const 912 + i32.const 3936 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toBe" global.get $assembly/__tests__/setup/Event/listener call "$assembly/internal/log/log<(event: assembly/__tests__/setup/Event/Event) => void>" local.get $0 call $~lib/rt/pure/__release ) - (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" (; 124 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" (; 122 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|16 (; 125 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|16 (; 123 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBe.spec/eventDispatcher @@ -5255,14 +4686,14 @@ call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" local.tee $1 global.get $assembly/__tests__/setup/Event/listener - i32.const 912 + i32.const 4192 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toBe" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|17 (; 126 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|17 (; 124 ;) (local $0 i32) global.get $assembly/__tests__/toBe.spec/eventDispatcher i32.load @@ -5271,12 +4702,12 @@ call "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" local.tee $0 global.get $assembly/__tests__/setup/Event/anotherListener - i32.const 912 + i32.const 800 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toBe" local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|18 (; 127 ;) + (func $start:assembly/__tests__/toBe.spec~anonymous|0~anonymous|18 (; 125 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBe.spec/eventDispatcher @@ -5288,87 +4719,87 @@ call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" local.tee $1 global.get $assembly/__tests__/setup/Event/listener - i32.const 912 + i32.const 800 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toBe" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec~anonymous|0 (; 128 ;) - i32.const 496 + (func $start:assembly/__tests__/toBe.spec~anonymous|0 (; 126 ;) + i32.const 384 i32.const 3 call $assembly/internal/Test/it - i32.const 816 + i32.const 704 i32.const 4 - i32.const 928 + i32.const 816 call $assembly/internal/Test/throws - i32.const 1056 + i32.const 944 i32.const 5 call $assembly/internal/Test/it - i32.const 1280 + i32.const 1168 i32.const 6 - i32.const 1376 + i32.const 1264 call $assembly/internal/Test/throws - i32.const 1504 + i32.const 1392 i32.const 7 call $assembly/internal/Test/it - i32.const 1696 + i32.const 1664 i32.const 8 - i32.const 1792 + i32.const 1760 call $assembly/internal/Test/throws - i32.const 1920 + i32.const 1888 i32.const 9 call $assembly/internal/Test/it - i32.const 1696 + i32.const 1664 i32.const 10 - i32.const 2144 + i32.const 2112 call $assembly/internal/Test/throws - i32.const 2256 + i32.const 2224 i32.const 11 call $assembly/internal/Test/it - i32.const 2336 + i32.const 2304 i32.const 12 - i32.const 2448 + i32.const 2416 call $assembly/internal/Test/throws - i32.const 2560 + i32.const 2528 i32.const 13 call $assembly/internal/Test/it - i32.const 2768 + i32.const 2736 i32.const 14 - i32.const 2880 + i32.const 2848 call $assembly/internal/Test/throws - i32.const 3008 + i32.const 2976 i32.const 15 - i32.const 3120 + i32.const 3088 call $assembly/internal/Test/throws - i32.const 3264 + i32.const 3232 i32.const 16 - i32.const 3376 + i32.const 3344 call $assembly/internal/Test/throws - i32.const 3520 + i32.const 3488 i32.const 17 - i32.const 3632 + i32.const 3600 call $assembly/internal/Test/throws - i32.const 3712 + i32.const 3680 i32.const 18 call $assembly/internal/Test/it - i32.const 3904 + i32.const 4048 i32.const 19 call $assembly/internal/Test/it - i32.const 4048 + i32.const 4336 i32.const 20 - i32.const 912 + i32.const 4480 call $assembly/internal/Test/throws - i32.const 4192 + i32.const 4656 i32.const 21 - i32.const 912 + i32.const 4784 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 129 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 127 ;) nop ) - (func $assembly/internal/Describe/describe (; 130 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 128 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -5382,7 +4813,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBe.spec (; 131 ;) + (func $start:assembly/__tests__/toBe.spec (; 129 ;) i32.const 0 f64.const 1 f64.const 2 @@ -5397,21 +4828,21 @@ global.set $assembly/__tests__/toBe.spec/vec2 call $assembly/__tests__/setup/Event/initializeDispatcher global.set $assembly/__tests__/toBe.spec/eventDispatcher - i32.const 464 + i32.const 352 i32.const 22 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 132 ;) + (func $assembly/index/__ready (; 130 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 133 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 131 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 134 ;) + (func $assembly/internal/report/Actual/__sendActual (; 132 ;) (local $0 i32) block $break|0 block $case9|0 @@ -5519,7 +4950,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 135 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 133 ;) (local $0 i32) block $break|0 block $case11|0 @@ -5658,24 +5089,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 136 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 134 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 137 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 135 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 138 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 136 ;) (result i32) i32.const 12 ) - (func $assembly/internal/Expectation/__cleanup (; 139 ;) + (func $assembly/internal/Expectation/__cleanup (; 137 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 140 ;) + (func $~start (; 138 ;) global.get $~started if return @@ -5685,141 +5116,115 @@ end call $start:assembly/__tests__/toBe.spec ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 141 ;) (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/array/Array#__visit_impl (; 142 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 139 ;) + return ) - (func $~lib/rt/pure/__visit (; 143 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/decrement (; 140 ;) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz if - return + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 16 - i32.sub - local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 141 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 142 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 143 ;) (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (; 144 ;) (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/packages/assembly/assembly/__tests__/toBeCloseTo.spec.ts b/packages/assembly/assembly/__tests__/toBeCloseTo.spec.ts index 5d2f672d..474fdad4 100644 --- a/packages/assembly/assembly/__tests__/toBeCloseTo.spec.ts +++ b/packages/assembly/assembly/__tests__/toBeCloseTo.spec.ts @@ -1,7 +1,3 @@ -import { Vec3 } from "./setup/Vec3"; - -var vec1: Vec3 = new Vec3(1, 2, 3); - /** * This test suite is designed to test the toBeClose to expectation assertion. */ @@ -11,14 +7,14 @@ describe("toBeCloseTo", () => { * another float value. */ it("should expect values that are close", () => { - expect(1.0).toBeCloseTo(1.00001, 2, "1.000001 is close to 1.0"); + expect(1.0).toBeCloseTo(1.00001, 2, "1.000001 is close to 1.0"); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if the expected values are close", () => { - expect(1.0).not.toBeCloseTo(1.00001, 2); + expect(1.0).not.toBeCloseTo(1.00001, 2); }, "1.000001 is close to 1.0, and should throw"); /** @@ -26,55 +22,55 @@ describe("toBeCloseTo", () => { * much higher magnitude. */ it("should assert if the expected value is not close", () => { - expect(1.0).not.toBeCloseTo(100.0, 2, "100.0 is not close to 1.0"); + expect(1.0).not.toBeCloseTo(100.0, 2, "100.0 is not close to 1.0"); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if the expected value is not close", () => { - expect(1.0).toBeCloseTo(100.0, 2); + expect(1.0).toBeCloseTo(100.0, 2); }, "1.0 is not close to 100.0, and should throw"); /** * A NaN actual value should cause the expectation to throw. */ throws("should throw if the actual value is NaN", () => { - expect(NaN).toBeCloseTo(0.0); + expect(NaN).toBeCloseTo(0.0); }, "The actual value NaN should cause the expectation to throw."); /** * A NaN expected value should cause the expectation to throw. */ throws("should throw if the actual value is NaN", () => { - expect(0.0).toBeCloseTo(NaN); + expect(0.0).toBeCloseTo(NaN); }, "The expected value NaN should cause the expectation to throw."); /** * If both values are NaN, the expectation should throw. */ throws("should throw if both values are NaN", () => { - expect(NaN).toBeCloseTo(NaN); + expect(NaN).toBeCloseTo(NaN); }, "The expected and actual value should cause the expectation to throw."); /** * A NaN actual value should cause the negated expectation to throw. */ throws("should throw if the actual value is NaN", () => { - expect(NaN).not.toBeCloseTo(0.0); + expect(NaN).not.toBeCloseTo(0.0); }, "The actual value NaN should cause the expectation to throw."); /** * A NaN expected value should cause the negated expectation to throw. */ throws("should throw if the actual value is NaN", () => { - expect(0.0).not.toBeCloseTo(NaN); + expect(0.0).not.toBeCloseTo(NaN); }, "The expected value NaN should cause the negated expectation to throw."); /** * If both values are NaN, the expectation should throw. */ throws("should throw if both values are NaN", () => { - expect(NaN).not.toBeCloseTo(NaN); + expect(NaN).not.toBeCloseTo(NaN); }, "The expected and actual value should cause the negated expectation to throw."); }); diff --git a/packages/assembly/assembly/__tests__/toBeCloseTo.spec.wat b/packages/assembly/assembly/__tests__/toBeCloseTo.spec.wat index 9cf0917f..340ec7a2 100644 --- a/packages/assembly/assembly/__tests__/toBeCloseTo.spec.wat +++ b/packages/assembly/assembly/__tests__/toBeCloseTo.spec.wat @@ -7,21 +7,49 @@ (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_i32_i32_=>_none (func (param i32 f64 i32 i32))) (type $f64_=>_none (func (param f64))) (type $f64_i32_=>_none (func (param f64 i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_f64_i32_i32_i32_=>_none (func (param f64 f64 i32 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00") + (data (i32.const 224) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00v\00a\00l\00u\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00c\00l\00o\00s\00e\00") + (data (i32.const 320) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00.\000\000\000\000\000\001\00 \00i\00s\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\00.\000\00") + (data (i32.const 384) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00m\00u\00s\00t\00 \00b\00e\00 \00c\00a\00l\00l\00e\00d\00 \00o\00n\00 \00a\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 512) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 608) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00s\00 \00b\00e\00c\00a\00u\00s\00e\00 \00a\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 752) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00s\00 \00b\00e\00c\00a\00u\00s\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00.\00") + (data (i32.const 912) "\00\10\00\00\01\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\0dG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") + (data (i32.const 7120) "\10\00\00\00\01\00\00\00\05\00\00\00\10\00\00\00\d0\13\00\00\d0\13\00\00\00\08\00\00\00\01\00\00") + (data (i32.const 7152) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00c\00l\00o\00s\00e\00") + (data (i32.const 7264) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 7280) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\001\00.\000\000\000\000\000\001\00 \00i\00s\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\00.\000\00,\00 \00a\00n\00d\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 7392) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00") + (data (i32.const 7504) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\001\000\000\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\00.\000\00") + (data (i32.const 7584) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00") + (data (i32.const 7696) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\001\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\000\000\00.\000\00,\00 \00a\00n\00d\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 7808) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 7904) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00T\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00N\00a\00N\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 8048) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00N\00a\00N\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 8192) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00b\00o\00t\00h\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00N\00a\00N\00") + (data (i32.const 8288) "\88\00\00\00\01\00\00\00\01\00\00\00\88\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00a\00n\00d\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 8448) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00N\00a\00N\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 8608) "\98\00\00\00\01\00\00\00\01\00\00\00\98\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00a\00n\00d\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 8784) "\07\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\13\0d\00\00\02\00\00\00\13\01\00\00\02\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -50,48 +78,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00") - (data (i32.const 336) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00v\00a\00l\00u\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00c\00l\00o\00s\00e\00") - (data (i32.const 432) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00.\000\000\000\000\000\001\00 \00i\00s\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\00.\000\00") - (data (i32.const 496) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00m\00u\00s\00t\00 \00b\00e\00 \00c\00a\00l\00l\00e\00d\00 \00o\00n\00 \00a\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 624) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 720) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00s\00 \00b\00e\00c\00a\00u\00s\00e\00 \00a\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 864) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00t\00o\00B\00e\00C\00l\00o\00s\00e\00T\00o\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00s\00 \00b\00e\00c\00a\00u\00s\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00.\00") - (data (i32.const 1024) "\00\10\00\00\01\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8\9a\ec\ef?\d1f\87\10z^\90\bc\85\7fn\e8\15\e3\ef?\13\f6g5R\d2\8c\be\ef?m{\83]\a6\9a\97<\0f\89\f9lX\b5\ef?\fc\ef\fd\92\1a\b5\8e<\f7Gr+\92\ac\ef?\d1\9c/p=\be><\a2\d1\d32\ec\a3\ef?\0bn\90\894\03j\bc\1b\d3\fe\aff\9b\ef?\0e\bd/*RV\95\bcQ[\12\d0\01\93\ef?U\eaN\8c\ef\80P\bc\cc1l\c0\bd\8a\ef?\16\f4\d5\b9#\c9\91\bc\e0-\a9\ae\9a\82\ef?\afU\\\e9\e3\d3\80\f7\ec\9a<\aa\b9h1\87T\ef?\9d8\86\cb\82\e7\8f\bc\1d\d9\fc\"PM\ef?\8d\c3\a6DAo\8a<\d6\8cb\88;F\ef?}\04\e4\b0\05z\80<\96\dc}\91I?\ef?\94\a8\a8\e3\fd\8e\96<8bunz8\ef?}Ht\f2\18^\87\a9\af\0c\ef?\b6\ab\b0MuM\83<\15\b71\n\fe\06\ef?Lt\ac\e2\01B\86<1\d8L\fcp\01\ef?J\f8\d3]9\dd\8f<\ff\16d\b2\08\fc\ee?\04[\8e;\80\a3\86\bc\f1\9f\92_\c5\f6\ee?hPK\cc\edJ\92\bc\cb\a9:7\a7\f1\ee?\8e-Q\1b\f8\07\99\bcf\d8\05m\ae\ec\ee?\d26\94>\e8\d1q\bc\f7\9f\e54\db\e7\ee?\15\1b\ce\b3\19\19\99\bc\e5\a8\13\c3-\e3\ee?mL*\a7H\9f\85<\"4\12L\a6\de\ee?\8ai(z`\12\93\bc\1c\80\ac\04E\da\ee?[\89\17H\8f\a7X\bc*.\f7!\n\d6\ee?\1b\9aIg\9b,|\bc\97\a8P\d9\f5\d1\ee?\11\ac\c2`\edcC<-\89a`\08\ce\ee?\efd\06;\tf\96Z~d\1fx\bct_\ec\e8u\9f\ee?\b0}\8b\c0J\ee\86\bct\81\a5H\9a\9f\ee?\8a\e6U\1e2\19\86\bc\c9gBV\eb\9f\ee?\d3\d4\t^\cb\9c\90T\'\a4\ee?47;\f1\b6i\93\bc\13\ceL\99\89\a5\ee?\1e\ff\19:\84^\80\bc\ad\c7#F\1a\a7\ee?nWr\d8P\d4\94\bc\ed\92D\9b\d9\a8\ee?\00\8a\0e[g\ad\90<\99f\8a\d9\c7\aa\ee?\b4\ea\f0\c1/\b7\8d<\db\a0*B\e5\ac\ee?\ff\e7\c5\9c`\b6e\bc\8cD\b5\162\af\ee?D_\f3Y\83\f6{<6w\15\99\ae\b1\ee?\83=\1e\a7\1f\t\93\bc\c6\ff\91\0b[\b4\ee?)\1el\8b\b8\a9]\bc\e5\c5\cd\b07\b7\ee?Y\b9\90|\f9#l\bc\0fR\c8\cbD\ba\ee?\aa\f9\f4\"CC\92\bcPN\de\9f\82\bd\ee?K\8ef\d7l\ca\85\bc\ba\07\cap\f1\c0\ee?\'\ce\91+\fc\afq<\90\f0\a3\82\91\c4\ee?\bbs\n\e15\d2m<##\e3\19c\c8\ee?c\"b\"\04\c5\87\bce\e5]{f\cc\ee?\d51\e2\e3\86\1c\8b<3-J\ec\9b\d0\ee?\15\bb\bc\d3\d1\bb\91\bc]%>\b2\03\d5\ee?\d21\ee\9c1\cc\90\b4\07!\d5\82\bc_\9b{3\97|\ef?\c9\0dG;\b9*\89\bc)\a1\f5\14F\86\ef?\d3\88:`\04\b6t<\f6?\8b\e7.\90\ef?qr\9dQ\ec\c5\83<\83L\c7\fbQ\9a\ef?\f0\91\d3\8f\12\f7\8f\bc\da\90\a4\a2\af\a4\ef?}t#\e2\98\ae\8d\bc\f1g\8e-H\af\ef?\08 \aaA\bc\c3\8e<\'Za\ee\1b\ba\ef?2\eb\a9\c3\94+\84<\97\bak7+\c5\ef?\ee\85\d11\a9d\8a<@En[v\d0\ef?\ed\e3;\e4\ba7\8e\bc\14\be\9c\ad\fd\db\ef?\9d\cd\91M;\89w<\d8\90\9e\81\c1\e7\ef?\89\cc`A\c1\05S<\f1q\8f+\c2\f3\ef?") - (data (i32.const 7232) "\10\00\00\00\01\00\00\00\06\00\00\00\10\00\00\00@\14\00\00@\14\00\00\00\08\00\00\00\01\00\00") - (data (i32.const 7264) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00c\00l\00o\00s\00e\00") - (data (i32.const 7376) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 7392) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\001\00.\000\000\000\000\000\001\00 \00i\00s\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\00.\000\00,\00 \00a\00n\00d\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 7504) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00") - (data (i32.const 7616) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\001\000\000\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\00.\000\00") - (data (i32.const 7696) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00") - (data (i32.const 7808) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\001\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00c\00l\00o\00s\00e\00 \00t\00o\00 \001\000\000\00.\000\00,\00 \00a\00n\00d\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 7920) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 8016) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00T\00h\00e\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00N\00a\00N\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 8160) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00N\00a\00N\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 8304) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00b\00o\00t\00h\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00N\00a\00N\00") - (data (i32.const 8400) "\88\00\00\00\01\00\00\00\01\00\00\00\88\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00a\00n\00d\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 8560) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00 \00N\00a\00N\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 8720) "\98\00\00\00\01\00\00\00\01\00\00\00\98\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00a\00n\00d\00 \00a\00c\00t\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 8896) "\08\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\13\0d\00\00\02\00\00\00\13\01\00\00\02\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 13 funcref) (elem (i32.const 1) $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $assembly/__tests__/toBeCloseTo.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.float (mut f64) (f64.const 0)) @@ -110,20 +103,21 @@ (global $assembly/internal/report/Expected/Expected.negated (mut i32) (i32.const 0)) (global $assembly/internal/report/Expected/Expected.stackTrace (mut i32) (i32.const 0)) (global $assembly/internal/report/Expected/Expected.isManaged (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/util/math/EXP_TABLE_BITS i32 (i32.const 7)) (global $~lib/util/math/SIGN_BIAS i32 (i32.const 262144)) (global $~lib/util/math/POW_LOG_TABLE_BITS i32 (i32.const 7)) - (global $~lib/util/math/pow_log_data_tab i32 (i32.const 5152)) + (global $~lib/util/math/pow_log_data_tab i32 (i32.const 5040)) (global $~lib/util/math/log_tail (mut f64) (f64.const 0)) - (global $~lib/util/math/exp_data_tab i32 (i32.const 7248)) + (global $~lib/util/math/exp_data_tab i32 (i32.const 7136)) (global $assembly/internal/noOp/noOp i32 (i32.const 12)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 8896)) - (global $~lib/heap/__heap_base i32 (i32.const 8964)) + (global $~lib/rt/__rtti_base i32 (i32.const 8784)) + (global $~lib/heap/__heap_base i32 (i32.const 8844)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1212,296 +1206,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1585,7 +1290,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1680,9 +1385,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1696,12 +1401,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1712,20 +1417,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 - i32.eqz + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1738,13 +1443,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1756,11 +1461,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1771,1479 +1476,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 + local.get $4 local.get $2 - local.get $1 i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end + local.get $4 local.get $1 - i32.const 4 - i32.add + i32.store offset=12 local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 + ) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3253,90 +1543,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3347,33 +1572,12 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 59 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - local.get $1 - f64.store - local.get $0 - local.get $2 - f64.store offset=8 - local.get $0 - local.get $3 - f64.store offset=16 - local.get $0 - ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 46 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if i32.const 16 - i32.const 4 + i32.const 3 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.set $0 @@ -3389,12 +1593,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 47 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 48 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3402,7 +1606,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 f64) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 49 ;) (param $0 f64) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3418,7 +1622,26 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.float ) - (func $~lib/math/NativeMath.pow (; 64 ;) (param $0 f64) (param $1 f64) (result f64) + (func $assembly/internal/comparison/assert/assert (; 50 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 528 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/math/NativeMath.pow (; 51 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -3905,7 +2128,7 @@ local.get $13 f64.convert_i64_s local.set $15 - i32.const 5152 + i32.const 5040 i32.load offset=4 local.set $16 local.get $16 @@ -4225,7 +2448,7 @@ i64.sub i64.shl local.set $13 - i32.const 7248 + i32.const 7136 i32.load offset=4 local.set $42 local.get $42 @@ -4386,187 +2609,119 @@ end return ) - (func $assembly/internal/report/Actual/Actual.clear (; 65 ;) - i32.const 0 - global.set $assembly/internal/report/Actual/Actual.type - global.get $assembly/internal/report/Actual/Actual.reference - i32.const 0 - i32.gt_u - if - global.get $assembly/internal/report/Actual/Actual.isManaged - if - global.get $assembly/internal/report/Actual/Actual.reference - call $~lib/rt/pure/__release - end - i32.const 0 - global.set $assembly/internal/report/Actual/Actual.reference - i32.const 0 - global.set $assembly/internal/report/Actual/Actual.isManaged - end - i32.const -1 - global.set $assembly/internal/report/Actual/Actual.stackTrace - ) - (func $assembly/internal/report/Expected/Expected.clear (; 66 ;) - i32.const 0 - global.set $assembly/internal/report/Expected/Expected.type - global.get $assembly/internal/report/Expected/Expected.reference - i32.const 0 - i32.eq - if - global.get $assembly/internal/report/Expected/Expected.isManaged - if - global.get $assembly/internal/report/Expected/Expected.reference - call $~lib/rt/pure/__release - end - i32.const 0 - global.set $assembly/internal/report/Expected/Expected.reference - i32.const 0 - global.set $assembly/internal/report/Expected/Expected.isManaged - end - ) - (func $assembly/internal/Expectation/Expectation#toBeCloseTo (; 67 ;) (param $0 i32) (param $1 f64) (param $2 i32) (param $3 i32) - (local $4 i32) + (func $assembly/internal/comparison/closeToComparison/closeToComparison (; 52 ;) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $3 + local.get $4 call $~lib/rt/pure/__retain - local.set $3 + local.set $4 local.get $0 - f64.load offset=8 - local.set $8 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $7 - local.get $2 - local.set $6 - local.get $0 - i32.load - local.set $5 local.get $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $8 - call $assembly/internal/report/Actual/Actual.report - local.get $7 - local.get $5 call $assembly/internal/report/Expected/Expected.report i32.const 1 - local.set $10 - i32.const 512 - local.set $9 - local.get $10 - i32.eqz - if - local.get $9 - call $~lib/rt/pure/__release - local.get $9 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release - local.get $8 - local.get $8 - f64.sub - f64.const 0 - f64.eq - local.set $10 - i32.const 736 - local.set $9 - local.get $10 - i32.eqz - if - local.get $9 - call $~lib/rt/pure/__release - local.get $9 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release - local.get $7 - local.get $7 + i32.const 400 + call $assembly/internal/comparison/assert/assert + local.get $0 + local.get $0 f64.sub - f64.const 0 - f64.eq - local.set $10 - i32.const 880 - local.set $9 - local.get $10 - i32.eqz - if - local.get $9 - call $~lib/rt/pure/__release - local.get $9 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release - local.get $7 - local.get $8 + f64.const 0 + f64.eq + i32.const 624 + call $assembly/internal/comparison/assert/assert + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.eq + i32.const 768 + call $assembly/internal/comparison/assert/assert + local.get $1 + local.get $0 f64.sub f64.abs f64.const 0.1 - local.get $6 + local.get $2 f64.convert_i32_s call $~lib/math/NativeMath.pow f64.lt - local.set $10 + local.set $5 + local.get $3 local.get $5 - local.get $10 i32.xor - local.set $11 local.get $4 - call $~lib/rt/pure/__retain - local.set $9 - local.get $11 - i32.eqz - if - local.get $9 - call $~lib/rt/pure/__release - local.get $9 - i32.const 640 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $4 call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) + i32.const 0 + global.set $assembly/internal/report/Actual/Actual.type + global.get $assembly/internal/report/Actual/Actual.reference + i32.const 0 + i32.gt_u + if + global.get $assembly/internal/report/Actual/Actual.isManaged + if + global.get $assembly/internal/report/Actual/Actual.reference + call $~lib/rt/pure/__release + end + i32.const 0 + global.set $assembly/internal/report/Actual/Actual.reference + i32.const 0 + global.set $assembly/internal/report/Actual/Actual.isManaged + end + i32.const -1 + global.set $assembly/internal/report/Actual/Actual.stackTrace + ) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) + i32.const 0 + global.set $assembly/internal/report/Expected/Expected.type + global.get $assembly/internal/report/Expected/Expected.reference + i32.const 0 + i32.eq + if + global.get $assembly/internal/report/Expected/Expected.isManaged + if + global.get $assembly/internal/report/Expected/Expected.reference + call $~lib/rt/pure/__release + end + i32.const 0 + global.set $assembly/internal/report/Expected/Expected.reference + i32.const 0 + global.set $assembly/internal/report/Expected/Expected.isManaged + end + ) + (func $assembly/internal/Expectation/Expectation#toBeCloseTo (; 55 ;) (param $0 i32) (param $1 f64) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + f64.load offset=8 + local.get $1 + local.get $2 + local.get $0 + i32.load + local.get $3 + call $assembly/internal/comparison/closeToComparison/closeToComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $3 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|0 (; 68 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|0 (; 56 ;) (local $0 i32) f64.const 1 call $assembly/internal/Expectation/expect local.tee $0 f64.const 1.00001 i32.const 2 - i32.const 448 + i32.const 336 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 69 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 57 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4576,14 +2731,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 70 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|1 (; 71 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|1 (; 59 ;) (local $0 i32) (local $1 i32) f64.const 1 @@ -4593,14 +2748,14 @@ local.tee $1 f64.const 1.00001 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4616,7 +2771,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|2 (; 73 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|2 (; 61 ;) (local $0 i32) (local $1 i32) f64.const 1 @@ -4626,62 +2781,62 @@ local.tee $1 f64.const 100 i32.const 2 - i32.const 7632 + i32.const 7520 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|3 (; 74 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|3 (; 62 ;) (local $0 i32) f64.const 1 call $assembly/internal/Expectation/expect local.tee $0 f64.const 100 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|4 (; 75 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|4 (; 63 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const 0 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|5 (; 76 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|5 (; 64 ;) (local $0 i32) f64.const 0 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|6 (; 77 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|6 (; 65 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 f64.const nan:0x8000000000000 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|7 (; 78 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|7 (; 66 ;) (local $0 i32) (local $1 i32) f64.const nan:0x8000000000000 @@ -4691,14 +2846,14 @@ local.tee $1 f64.const 0 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|8 (; 79 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|8 (; 67 ;) (local $0 i32) (local $1 i32) f64.const 0 @@ -4708,14 +2863,14 @@ local.tee $1 f64.const nan:0x8000000000000 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|9 (; 80 ;) + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0~anonymous|9 (; 68 ;) (local $0 i32) (local $1 i32) f64.const nan:0x8000000000000 @@ -4725,57 +2880,57 @@ local.tee $1 f64.const nan:0x8000000000000 i32.const 2 - i32.const 7392 + i32.const 7280 call $assembly/internal/Expectation/Expectation#toBeCloseTo local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0 (; 81 ;) - i32.const 352 + (func $start:assembly/__tests__/toBeCloseTo.spec~anonymous|0 (; 69 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 7280 + i32.const 7168 i32.const 2 - i32.const 7408 + i32.const 7296 call $assembly/internal/Test/throws - i32.const 7520 + i32.const 7408 i32.const 3 call $assembly/internal/Test/it - i32.const 7712 + i32.const 7600 i32.const 4 - i32.const 7824 + i32.const 7712 call $assembly/internal/Test/throws - i32.const 7936 + i32.const 7824 i32.const 5 - i32.const 8032 + i32.const 7920 call $assembly/internal/Test/throws - i32.const 7936 + i32.const 7824 i32.const 6 - i32.const 8176 + i32.const 8064 call $assembly/internal/Test/throws - i32.const 8320 + i32.const 8208 i32.const 7 - i32.const 8416 + i32.const 8304 call $assembly/internal/Test/throws - i32.const 7936 + i32.const 7824 i32.const 8 - i32.const 8032 + i32.const 7920 call $assembly/internal/Test/throws - i32.const 7936 + i32.const 7824 i32.const 9 - i32.const 8576 + i32.const 8464 call $assembly/internal/Test/throws - i32.const 8320 + i32.const 8208 i32.const 10 - i32.const 8736 + i32.const 8624 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 82 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 70 ;) nop ) - (func $assembly/internal/Describe/describe (; 83 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 71 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4789,28 +2944,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeCloseTo.spec (; 84 ;) - i32.const 0 - f64.const 1 - f64.const 2 - f64.const 3 - call $assembly/__tests__/setup/Vec3/Vec3#constructor - global.set $assembly/__tests__/toBeCloseTo.spec/vec1 - i32.const 304 + (func $start:assembly/__tests__/toBeCloseTo.spec (; 72 ;) + i32.const 192 i32.const 11 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 85 ;) + (func $assembly/index/__ready (; 73 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 86 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 74 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 87 ;) + (func $assembly/internal/report/Actual/__sendActual (; 75 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4918,7 +3067,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 88 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 76 ;) (local $0 i32) block $break|0 block $case11|0 @@ -5057,24 +3206,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 89 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 77 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 90 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 78 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 91 ;) (result i32) - i32.const 7 + (func $assembly/internal/RTrace/__getUsizeArrayId (; 79 ;) (result i32) + i32.const 6 ) - (func $assembly/internal/Expectation/__cleanup (; 92 ;) + (func $assembly/internal/Expectation/__cleanup (; 80 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 93 ;) + (func $~start (; 81 ;) global.get $~started if return @@ -5084,159 +3233,149 @@ end call $start:assembly/__tests__/toBeCloseTo.spec ) - (func $~lib/array/Array#__visit_impl (; 94 ;) (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/array/Array#__visit_impl (; 95 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 82 ;) + return ) - (func $~lib/array/Array#__visit_impl (; 96 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/tlsf/freeBlock (; 83 ;) (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/pure/__visit (; 97 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/decrement (; 84 ;) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz if - return + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 16 - i32.sub - local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 85 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 86 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 87 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 88 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 98 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 89 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default - block $switch$1$case$9 - block $switch$1$case$8 - block $switch$1$case$7 + block $switch$1$case$8 + block $switch$1$case$7 + block $switch$1$case$6 block $switch$1$case$4 block $switch$1$case$2 local.get $0 i32.const 8 i32.sub i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$case$2 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$default + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$default end return end diff --git a/packages/assembly/assembly/__tests__/toBeFalsy.spec.ts b/packages/assembly/assembly/__tests__/toBeFalsy.spec.ts index 088e1e54..383b0724 100644 --- a/packages/assembly/assembly/__tests__/toBeFalsy.spec.ts +++ b/packages/assembly/assembly/__tests__/toBeFalsy.spec.ts @@ -10,70 +10,99 @@ describe("toBeFalsy", () => { * This performs javascript-like assertions, so 0 should be falsy. */ it("should expect 0 to be falsy", () => { - expect(0).toBeFalsy(); + expect(0).toBeFalsy("0 is falsy by definition."); }); + /** + * Additionally, we should assert that 0.0 is falsy, because 0.0 is + * parsed as a float value in assemblyscript. + */ + it("should expect 0 to be falsy", () => { + expect(0.0).toBeFalsy("0.0 is falsy by definition."); + }); + + /** + * This is the contrapositive of the previous test. + */ + throws("should error if 0 is fasly", () => { + expect(0).not.toBeFalsy(); + }, "0 is falsy"); + /** * This is the contrapositive of the previous test. */ throws("should error if 0 is fasly", () => { - expect(0).not.toBeFalsy(); + expect(0.0).not.toBeFalsy(); }, "0 is falsy"); /** * False should be falsy by definition. */ it("should expect false to be falsy", () => { - expect(false).toBeFalsy("False is falsy by definition"); + expect(false).toBeFalsy("False is falsy by definition"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if 0 is fasly", () => { - expect(false).not.toBeFalsy(); + expect(false).not.toBeFalsy(); }, "false is falsy"); /** * Any value that is numerically not 0 should be truthy, and thus, not falsy. */ it("should expect non-zero numbers not to be falsy", () => { - expect(1).not.toBeFalsy("1 is not falsy"); + expect(1).not.toBeFalsy("1 is not falsy"); + }); + + /** + * Any value that is numerically not 0 should be truthy, and thus, not falsy. + */ + it("should expect non-zero numbers not to be falsy", () => { + expect(1.0).not.toBeFalsy("1.0 is not falsy"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if 1 is not fasly", () => { - expect(1).toBeFalsy(); + expect(1).toBeFalsy(); }, "1 is not falsy"); + /** + * This is the contrapositive of the previous test with float values. + */ + throws("should throw if 1 is not fasly", () => { + expect(1.0).toBeFalsy(); + }, "1.0 is not falsy"); + /** * True should not be falsy by definition. */ it("should expect true not to be falsy", () => { - expect(true).not.toBeFalsy("True is not falsy by definition"); + expect(true).not.toBeFalsy("True is not falsy by definition"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if true is fasly", () => { - expect(true).toBeFalsy(); + expect(true).toBeFalsy(); }, "true is not falsy"); /** * NaN is always falsy. */ it("should expect NaN to be falsy", () => { - expect(NaN).toBeFalsy("NaN is always falsy"); + expect(NaN).toBeFalsy("NaN is always falsy"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if NaN is not fasly", () => { - expect(NaN).not.toBeFalsy(); + expect(NaN).not.toBeFalsy(); }, "NaN is falsy"); /** diff --git a/packages/assembly/assembly/__tests__/toBeFalsy.spec.wat b/packages/assembly/assembly/__tests__/toBeFalsy.spec.wat index 4cae903e..e70f747f 100644 --- a/packages/assembly/assembly/__tests__/toBeFalsy.spec.wat +++ b/packages/assembly/assembly/__tests__/toBeFalsy.spec.wat @@ -7,18 +7,51 @@ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $f64_=>_none (func (param f64))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) - (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_=>_none (func (param f64))) + (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00t\00o\00B\00e\00F\00a\00l\00s\00y\00") + (data (i32.const 224) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \000\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 304) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\000\00 \00i\00s\00 \00f\00a\00l\00s\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00.\00") + (data (i32.const 384) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 480) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\000\00.\000\00 \00i\00s\00 \00f\00a\00l\00s\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00.\00") + (data (i32.const 560) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00r\00r\00o\00r\00 \00i\00f\00 \000\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 640) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 656) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\000\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 704) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00f\00a\00l\00s\00e\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 784) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00F\00a\00l\00s\00e\00 \00i\00s\00 \00f\00a\00l\00s\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") + (data (i32.const 864) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \000\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 944) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00f\00a\00l\00s\00e\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 992) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00n\00-\00z\00e\00r\00o\00 \00n\00u\00m\00b\00e\00r\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1104) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\001\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1152) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\001\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1200) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \001\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 1280) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00t\00r\00u\00e\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1376) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00T\00r\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") + (data (i32.const 1456) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00r\00u\00e\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 1536) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00t\00r\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1600) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00N\00a\00N\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1680) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00N\00a\00N\00 \00i\00s\00 \00a\00l\00w\00a\00y\00s\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1744) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 1824) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00N\00a\00N\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1872) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 1952) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00N\00u\00l\00l\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 2000) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 2096) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 2224) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00N\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00.\00") + (data (i32.const 2320) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00f\00a\00l\00s\00y\00") + (data (i32.const 2432) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportTest" (func $assembly/internal/Test/reportTest (param i32 i32))) (import "__aspect" "reportNegatedTest" (func $assembly/internal/Test/reportNegatedTest (param i32 i32 i32))) @@ -45,49 +78,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00t\00o\00B\00e\00F\00a\00l\00s\00y\00") - (data (i32.const 336) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \000\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 416) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 512) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 528) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00r\00r\00o\00r\00 \00i\00f\00 \000\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 608) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\000\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 656) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00f\00a\00l\00s\00e\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 736) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00F\00a\00l\00s\00e\00 \00i\00s\00 \00f\00a\00l\00s\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") - (data (i32.const 816) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \000\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 896) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00f\00a\00l\00s\00e\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 944) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00n\00-\00z\00e\00r\00o\00 \00n\00u\00m\00b\00e\00r\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1056) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\001\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1104) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \001\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 1184) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00t\00r\00u\00e\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1280) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00T\00r\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") - (data (i32.const 1360) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00r\00u\00e\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 1440) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00t\00r\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1504) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00N\00a\00N\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1584) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00N\00a\00N\00 \00i\00s\00 \00a\00l\00w\00a\00y\00s\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1648) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 1728) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00N\00a\00N\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1776) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1856) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00N\00u\00l\00l\00 \00i\00s\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 1904) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 2000) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 2128) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00N\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00f\00a\00l\00s\00y\00.\00") - (data (i32.const 2224) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00f\00a\00l\00s\00y\00") - (data (i32.const 2336) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") - (table $0 17 funcref) - (elem (i32.const 1) $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|11 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|12 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|13 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) + (table $0 21 funcref) + (elem (i32.const 1) $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|11 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|12 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|13 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|14 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|15 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|16 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|17 $start:assembly/__tests__/toBeFalsy.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toBeFalsy.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -107,14 +104,14 @@ (global $assembly/internal/report/Expected/Expected.negated (mut i32) (i32.const 0)) (global $assembly/internal/report/Expected/Expected.stackTrace (mut i32) (i32.const 0)) (global $assembly/internal/report/Expected/Expected.isManaged (mut i32) (i32.const 0)) - (global $assembly/internal/noOp/noOp i32 (i32.const 16)) + (global $assembly/internal/noOp/noOp i32 (i32.const 20)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2336)) - (global $~lib/heap/__heap_base i32 (i32.const 2412)) + (global $~lib/rt/__rtti_base i32 (i32.const 2432)) + (global $~lib/heap/__heap_base i32 (i32.const 2508)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1203,296 +1200,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 37 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 38 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 39 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 41 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 42 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 43 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 37 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1576,7 +1284,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 38 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1671,9 +1379,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 45 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1687,12 +1395,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1703,20 +1411,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1729,13 +1437,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1743,1498 +1451,83 @@ i32.const 507 i32.const 17 call $~lib/builtins/abort - unreachable - end - end - end - local.get $3 - i32.load - i32.const -4 - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 510 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 46 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 47 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 48 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 49 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 52 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 53 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 + unreachable + end + end + end + local.get $4 + i32.load + i32.const -4 + i32.and local.get $3 - i32.gt_u - select - local.set $4 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 510 + i32.const 13 + call $~lib/builtins/abort + unreachable + end local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 - call $~lib/memory/memory.copy + i32.store offset=12 local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 local.get $4 - i32.add - global.set $~lib/rt/pure/END + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 ) - (func $~lib/rt/pure/appendRoot (; 54 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 40 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 55 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 41 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3244,90 +1537,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 42 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 56 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 43 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3338,7 +1566,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 57 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 44 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3359,7 +1587,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 58 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 45 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3380,12 +1608,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 59 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 46 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 60 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 47 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3411,7 +1639,47 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 61 ;) + (func $assembly/internal/comparison/assert/assert (; 48 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 400 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/falsyComparison/falsyComparison (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + i32.const 7 + global.set $assembly/internal/report/Expected/Expected.type + local.get $1 + global.set $assembly/internal/report/Expected/Expected.negated + i32.const -1 + global.set $assembly/internal/report/Expected/Expected.stackTrace + local.get $1 + local.get $0 + i32.eqz + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert + local.get $2 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 50 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3431,7 +1699,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 62 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 51 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3449,89 +1717,142 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 63 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 52 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 i32.load offset=4 - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 + call $assembly/internal/comparison/falsyComparison/falsyComparison + call $assembly/internal/report/Actual/Actual.clear + call $assembly/internal/report/Expected/Expected.clear + local.get $1 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|0 (; 53 ;) + (local $0 i32) + i32.const 0 + call $assembly/internal/Expectation/expect + local.tee $0 + i32.const 320 + call $assembly/internal/Expectation/Expectation#toBeFalsy + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Test/it (; 54 ;) (param $0 i32) (param $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $assembly/internal/Test/reportTest + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#constructor (; 55 ;) (param $0 i32) (param $1 f64) (result i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.store offset=8 + local.get $0 + local.get $1 + f64.store offset=8 + local.get $0 + ) + (func $assembly/internal/Expectation/expect (; 56 ;) (param $0 f64) (result i32) + i32.const 0 + local.get $0 + call $assembly/internal/Expectation/Expectation#constructor + ) + (func $assembly/internal/report/Actual/Actual.report (; 57 ;) (param $0 f64) + call $assembly/internal/report/Actual/getStackTrace + global.set $assembly/internal/report/Actual/Actual.stackTrace + i32.const 2 + global.set $assembly/internal/report/Actual/Actual.type + local.get $0 + global.set $assembly/internal/report/Actual/Actual.float + ) + (func $assembly/internal/comparison/falsyComparison/falsyComparison (; 58 ;) (param $0 f64) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report + local.get $0 + call $assembly/internal/report/Actual/Actual.report i32.const 7 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $3 + local.get $0 + local.get $0 + f64.ne + local.tee $3 + if (result i32) + local.get $3 + else + local.get $0 + f64.const 0 + f64.eq + end + local.set $4 + local.get $1 local.get $4 - i32.eqz i32.xor - local.set $6 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $2 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 59 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + f64.load offset=8 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/falsyComparison/falsyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|0 (; 64 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|1 (; 60 ;) (local $0 i32) - i32.const 0 - call $assembly/internal/Expectation/expect + f64.const 0 + call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 - call $assembly/internal/Expectation/Expectation#toBeFalsy - local.get $0 - call $~lib/rt/pure/__release - ) - (func $assembly/internal/Test/it (; 65 ;) (param $0 i32) (param $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $assembly/internal/Test/reportTest + i32.const 496 + call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 66 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 61 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|1 (; 67 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|2 (; 62 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3539,14 +1860,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3562,12 +1883,34 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 69 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 64 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1 + i32.store + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|3 (; 65 ;) + (local $0 i32) + (local $1 i32) + f64.const 0 + call $assembly/internal/Expectation/expect + local.tee $0 + call $assembly/internal/Expectation/Expectation#get:not + local.tee $1 + i32.const 656 + call $assembly/internal/Expectation/Expectation#toBeFalsy + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#constructor (; 66 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if i32.const 5 - i32.const 5 + i32.const 6 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.set $0 @@ -3583,12 +1926,12 @@ i32.store8 offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 70 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 67 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 71 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 68 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 11 @@ -3598,79 +1941,60 @@ i32.ne global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 72 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load8_u offset=4 - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 + (func $assembly/internal/comparison/falsyComparison/falsyComparison (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 + local.get $0 call $assembly/internal/report/Actual/Actual.report i32.const 7 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $3 - local.get $4 + local.get $1 + local.get $0 i32.eqz i32.xor - local.set $6 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $2 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 70 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load8_u offset=4 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/falsyComparison/falsyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|2 (; 73 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|4 (; 71 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 752 + i32.const 800 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 74 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 72 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|3 (; 75 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|5 (; 73 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3678,14 +2002,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|4 (; 76 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|6 (; 74 ;) (local $0 i32) (local $1 i32) i32.const 1 @@ -3693,169 +2017,84 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 1072 + i32.const 1120 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|5 (; 77 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|7 (; 75 ;) + (local $0 i32) + (local $1 i32) + f64.const 1 + call $assembly/internal/Expectation/expect + local.tee $0 + call $assembly/internal/Expectation/Expectation#get:not + local.tee $1 + i32.const 1168 + call $assembly/internal/Expectation/Expectation#toBeFalsy + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|8 (; 76 ;) (local $0 i32) i32.const 1 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|6 (; 78 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|9 (; 77 ;) (local $0 i32) - (local $1 i32) - i32.const 1 - call $assembly/internal/Expectation/expect + f64.const 1 + call $assembly/internal/Expectation/expect local.tee $0 - call $assembly/internal/Expectation/Expectation#get:not - local.tee $1 - i32.const 1296 - call $assembly/internal/Expectation/Expectation#toBeFalsy + i32.const 656 + call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|7 (; 79 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|10 (; 78 ;) (local $0 i32) + (local $1 i32) i32.const 1 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 + call $assembly/internal/Expectation/Expectation#get:not + local.tee $1 + i32.const 1392 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 - call $~lib/rt/pure/__release - ) - (func $assembly/internal/Expectation/Expectation#constructor (; 80 ;) (param $0 i32) (param $1 f64) (result i32) - local.get $0 - i32.eqz - if - i32.const 16 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - f64.const 0 - f64.store offset=8 - local.get $0 - local.get $1 - f64.store offset=8 - local.get $0 - ) - (func $assembly/internal/Expectation/expect (; 81 ;) (param $0 f64) (result i32) - i32.const 0 - local.get $0 - call $assembly/internal/Expectation/Expectation#constructor - ) - (func $assembly/internal/report/Actual/Actual.report (; 82 ;) (param $0 f64) - call $assembly/internal/report/Actual/getStackTrace - global.set $assembly/internal/report/Actual/Actual.stackTrace - i32.const 2 - global.set $assembly/internal/report/Actual/Actual.type - local.get $0 - global.set $assembly/internal/report/Actual/Actual.float - ) - (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 83 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - f64.load offset=8 - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report - i32.const 7 - global.set $assembly/internal/report/Expected/Expected.type - local.get $3 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const -1 - global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 - local.get $4 - f64.ne - local.tee $5 - if (result i32) - local.get $5 - else - local.get $4 - f64.const 0 - f64.eq - end - local.set $5 - local.get $3 - local.get $5 - i32.const 0 - i32.ne - i32.xor - local.set $7 - local.get $2 - call $~lib/rt/pure/__retain - local.set $6 - local.get $7 - i32.eqz - if - local.get $6 - call $~lib/rt/pure/__release - local.get $6 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - call $assembly/internal/report/Actual/Actual.clear - call $assembly/internal/report/Expected/Expected.clear + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|8 (; 84 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|11 (; 79 ;) + (local $0 i32) + i32.const 1 + call $assembly/internal/Expectation/expect + local.tee $0 + i32.const 656 + call $assembly/internal/Expectation/Expectation#toBeFalsy + local.get $0 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|12 (; 80 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 1600 + i32.const 1696 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 85 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 1 - i32.store - local.get $0 - call $~lib/rt/pure/__retain - ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|9 (; 86 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|13 (; 81 ;) (local $0 i32) (local $1 i32) f64.const nan:0x8000000000000 @@ -3863,14 +2102,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 87 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3913,7 +2152,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 88 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3926,7 +2165,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 89 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 84 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3964,105 +2203,72 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 90 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 + (func $assembly/internal/comparison/falsyComparison/falsyComparison (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 + local.set $0 + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 + local.get $0 call $assembly/internal/report/Actual/Actual.report i32.const 7 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 + local.get $0 i32.const 0 i32.eq if - local.get $3 + local.get $1 i32.eqz - local.set $6 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert else - local.get $3 - local.set $6 + local.get $1 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert end - local.get $2 + local.get $0 call $~lib/rt/pure/__release - local.get $4 + local.get $2 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeFalsy (; 86 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/falsyComparison/falsyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|10 (; 91 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|14 (; 87 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 1872 + i32.const 1968 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 92 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 88 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|11 (; 93 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|15 (; 89 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -4070,14 +2276,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|12 (; 94 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|16 (; 90 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBeFalsy.spec/vec1 @@ -4085,78 +2291,92 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 2144 + i32.const 2240 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|13 (; 95 ;) + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0~anonymous|17 (; 91 ;) (local $0 i32) global.get $assembly/__tests__/toBeFalsy.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeFalsy local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0 (; 96 ;) - i32.const 352 + (func $start:assembly/__tests__/toBeFalsy.spec~anonymous|0 (; 92 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 544 + i32.const 240 i32.const 2 - i32.const 624 - call $assembly/internal/Test/throws - i32.const 672 - i32.const 3 call $assembly/internal/Test/it - i32.const 832 + i32.const 576 + i32.const 3 + i32.const 672 + call $assembly/internal/Test/throws + i32.const 576 i32.const 4 - i32.const 912 + i32.const 672 call $assembly/internal/Test/throws - i32.const 960 + i32.const 720 i32.const 5 call $assembly/internal/Test/it - i32.const 1120 + i32.const 880 i32.const 6 - i32.const 1072 + i32.const 960 call $assembly/internal/Test/throws - i32.const 1200 + i32.const 1008 i32.const 7 call $assembly/internal/Test/it - i32.const 1376 + i32.const 1008 i32.const 8 - i32.const 1456 - call $assembly/internal/Test/throws - i32.const 1520 - i32.const 9 call $assembly/internal/Test/it - i32.const 1664 + i32.const 1216 + i32.const 9 + i32.const 1120 + call $assembly/internal/Test/throws + i32.const 1216 i32.const 10 - i32.const 1744 + i32.const 1168 call $assembly/internal/Test/throws - i32.const 1792 + i32.const 1296 i32.const 11 call $assembly/internal/Test/it - i32.const 1920 + i32.const 1472 i32.const 12 - i32.const 1872 + i32.const 1552 call $assembly/internal/Test/throws - i32.const 2016 + i32.const 1616 i32.const 13 call $assembly/internal/Test/it - i32.const 2240 + i32.const 1760 i32.const 14 - i32.const 2144 + i32.const 1840 + call $assembly/internal/Test/throws + i32.const 1888 + i32.const 15 + call $assembly/internal/Test/it + i32.const 2016 + i32.const 16 + i32.const 1968 + call $assembly/internal/Test/throws + i32.const 2112 + i32.const 17 + call $assembly/internal/Test/it + i32.const 2336 + i32.const 18 + i32.const 2240 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 97 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 93 ;) nop ) - (func $assembly/internal/Describe/describe (; 98 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 94 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4170,28 +2390,28 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFalsy.spec (; 99 ;) + (func $start:assembly/__tests__/toBeFalsy.spec (; 95 ;) i32.const 0 f64.const 1 f64.const 2 f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/toBeFalsy.spec/vec1 - i32.const 304 - i32.const 15 + i32.const 192 + i32.const 19 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 100 ;) + (func $assembly/index/__ready (; 96 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 101 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 97 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 102 ;) + (func $assembly/internal/report/Actual/__sendActual (; 98 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4299,7 +2519,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 103 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 99 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4438,24 +2658,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 104 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 100 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 105 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 101 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 106 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 102 ;) (result i32) i32.const 8 ) - (func $assembly/internal/Expectation/__cleanup (; 107 ;) + (func $assembly/internal/Expectation/__cleanup (; 103 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 108 ;) + (func $~start (; 104 ;) global.get $~started if return @@ -4465,140 +2685,130 @@ end call $start:assembly/__tests__/toBeFalsy.spec ) - (func $~lib/array/Array#__visit_impl (; 109 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 105 ;) + return ) - (func $~lib/rt/pure/__visit (; 110 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 106 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 107 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 108 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 109 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 111 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 110 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toBeFinite.spec.ts b/packages/assembly/assembly/__tests__/toBeFinite.spec.ts index cbefb9c8..ac702ce4 100644 --- a/packages/assembly/assembly/__tests__/toBeFinite.spec.ts +++ b/packages/assembly/assembly/__tests__/toBeFinite.spec.ts @@ -1,5 +1,3 @@ -import { Vec3 } from "./setup/Vec3"; - /** * This test suite verifies toBeFinite assertions. It is used only with float values, and * should throw an error otherwise. @@ -9,41 +7,41 @@ describe("toBeFinite", () => { * Normal float values should be finite. */ it("should expect normal float values to be finite", () => { - expect(10.0).toBeFinite("10.0 is finite"); + expect(10.0).toBeFinite("10.0 is finite"); }); /** * This is the contrapositive version of the previous test. */ throws("should throw if a normal float value is not finite", () => { - expect(10.0).not.toBeFinite(); + expect(10.0).not.toBeFinite(); }, "Normal float values should be finite."); /** * Infinity is never finite. */ it("should expect infinity not to be finite", () => { - expect(Infinity).not.toBeFinite("Infinity is not finite by definition"); + expect(Infinity).not.toBeFinite("Infinity is not finite by definition"); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if an actual infinity is expected to be finite", () => { - expect(Infinity).toBeFinite(); + expect(Infinity).toBeFinite(); }, "Infinity is never finite."); /** * NaN is never finite. */ it("should expect NaN not to be finite", () => { - expect(NaN).not.toBeFinite("Infinity is not finite by definition"); + expect(NaN).not.toBeFinite("Infinity is not finite by definition"); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if an actual NaN is expected to be finite", () => { - expect(NaN).toBeFinite(); + expect(NaN).toBeFinite(); }, "NaN is never finite."); }); diff --git a/packages/assembly/assembly/__tests__/toBeFinite.spec.wat b/packages/assembly/assembly/__tests__/toBeFinite.spec.wat index 572fd28a..db08df11 100644 --- a/packages/assembly/assembly/__tests__/toBeFinite.spec.wat +++ b/packages/assembly/assembly/__tests__/toBeFinite.spec.wat @@ -4,20 +4,37 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_=>_none (func (param f64))) - (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00o\00B\00e\00F\00i\00n\00i\00t\00e\00") + (data (i32.const 224) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 336) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\001\000\00.\000\00 \00i\00s\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 384) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 480) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 608) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 624) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00N\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00.\00") + (data (i32.const 720) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00i\00n\00f\00i\00n\00i\00t\00y\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 816) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") + (data (i32.const 912) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00n\00 \00a\00c\00t\00u\00a\00l\00 \00i\00n\00f\00i\00n\00i\00t\00y\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 1056) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00 \00i\00s\00 \00n\00e\00v\00e\00r\00 \00f\00i\00n\00i\00t\00e\00.\00") + (data (i32.const 1136) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00N\00a\00N\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 1232) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00n\00 \00a\00c\00t\00u\00a\00l\00 \00N\00a\00N\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") + (data (i32.const 1360) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00N\00a\00N\00 \00i\00s\00 \00n\00e\00v\00e\00r\00 \00f\00i\00n\00i\00t\00e\00.\00") + (data (i32.const 1424) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportTest" (func $assembly/internal/Test/reportTest (param i32 i32))) (import "__aspect" "reportNegatedTest" (func $assembly/internal/Test/reportNegatedTest (param i32 i32 i32))) @@ -44,36 +61,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00o\00B\00e\00F\00i\00n\00i\00t\00e\00") - (data (i32.const 336) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 448) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\001\000\00.\000\00 \00i\00s\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 496) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 592) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 720) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 736) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00N\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00.\00") - (data (i32.const 832) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00i\00n\00f\00i\00n\00i\00t\00y\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 928) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00 \00i\00s\00 \00n\00o\00t\00 \00f\00i\00n\00i\00t\00e\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") - (data (i32.const 1024) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00n\00 \00a\00c\00t\00u\00a\00l\00 \00i\00n\00f\00i\00n\00i\00t\00y\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 1168) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00 \00i\00s\00 \00n\00e\00v\00e\00r\00 \00f\00i\00n\00i\00t\00e\00.\00") - (data (i32.const 1248) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00N\00a\00N\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 1344) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00n\00 \00a\00c\00t\00u\00a\00l\00 \00N\00a\00N\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00f\00i\00n\00i\00t\00e\00") - (data (i32.const 1472) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00N\00a\00N\00 \00i\00s\00 \00n\00e\00v\00e\00r\00 \00f\00i\00n\00i\00t\00e\00.\00") - (data (i32.const 1536) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 9 funcref) (elem (i32.const 1) $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBeFinite.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.float (mut f64) (f64.const 0)) @@ -98,8 +92,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1536)) - (global $~lib/heap/__heap_base i32 (i32.const 1580)) + (global $~lib/rt/__rtti_base i32 (i32.const 1424)) + (global $~lib/heap/__heap_base i32 (i32.const 1468)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1188,296 +1182,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 37 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 38 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 39 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 41 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 42 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 43 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 37 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1561,7 +1266,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 38 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1656,9 +1361,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 45 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1672,12 +1377,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1688,20 +1393,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1714,13 +1419,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1732,11 +1437,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1747,37 +1452,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 46 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 40 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 47 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 41 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1795,1524 +1498,46 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable end local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 48 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 49 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 52 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 53 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 54 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 55 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 42 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 56 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 43 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3323,7 +1548,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/Expectation/Expectation#constructor (; 57 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 44 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -3344,12 +1569,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 58 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 45 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 59 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 46 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3357,7 +1582,50 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Actual/Actual.clear (; 60 ;) + (func $assembly/internal/comparison/assert/assert (; 47 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 400 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/finiteComparison/finiteComparison (; 48 ;) (param $0 f64) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + i32.const 9 + global.set $assembly/internal/report/Expected/Expected.type + local.get $1 + global.set $assembly/internal/report/Expected/Expected.negated + i32.const -1 + global.set $assembly/internal/report/Expected/Expected.stackTrace + local.get $1 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert + local.get $2 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 49 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3377,7 +1645,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 61 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 50 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3395,75 +1663,32 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeFinite (; 62 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) + (func $assembly/internal/Expectation/Expectation#toBeFinite (; 51 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 f64.load offset=8 - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report - i32.const 9 - global.set $assembly/internal/report/Expected/Expected.type - local.get $3 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const -1 - global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $3 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - i32.xor - local.set $6 - local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 512 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/finiteComparison/finiteComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|0 (; 63 ;) + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|0 (; 52 ;) (local $0 i32) f64.const 10 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation#toBeFinite local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 64 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 53 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3473,14 +1698,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 65 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 54 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|1 (; 66 ;) + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|1 (; 55 ;) (local $0 i32) (local $1 i32) f64.const 10 @@ -3488,14 +1713,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 736 + i32.const 624 call $assembly/internal/Expectation/Expectation#toBeFinite local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3511,7 +1736,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|2 (; 68 ;) + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|2 (; 57 ;) (local $0 i32) (local $1 i32) f64.const inf @@ -3519,24 +1744,24 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeFinite local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|3 (; 69 ;) + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|3 (; 58 ;) (local $0 i32) f64.const inf call $assembly/internal/Expectation/expect local.tee $0 - i32.const 736 + i32.const 624 call $assembly/internal/Expectation/Expectation#toBeFinite local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|4 (; 70 ;) + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|4 (; 59 ;) (local $0 i32) (local $1 i32) f64.const nan:0x8000000000000 @@ -3544,50 +1769,50 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeFinite local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|5 (; 71 ;) + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0~anonymous|5 (; 60 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 736 + i32.const 624 call $assembly/internal/Expectation/Expectation#toBeFinite local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0 (; 72 ;) - i32.const 352 + (func $start:assembly/__tests__/toBeFinite.spec~anonymous|0 (; 61 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 608 + i32.const 496 i32.const 2 - i32.const 752 + i32.const 640 call $assembly/internal/Test/throws - i32.const 848 + i32.const 736 i32.const 3 call $assembly/internal/Test/it - i32.const 1040 + i32.const 928 i32.const 4 - i32.const 1184 + i32.const 1072 call $assembly/internal/Test/throws - i32.const 1264 + i32.const 1152 i32.const 5 call $assembly/internal/Test/it - i32.const 1360 + i32.const 1248 i32.const 6 - i32.const 1488 + i32.const 1376 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 73 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 62 ;) nop ) - (func $assembly/internal/Describe/describe (; 74 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 63 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3601,22 +1826,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeFinite.spec (; 75 ;) - i32.const 304 + (func $start:assembly/__tests__/toBeFinite.spec (; 64 ;) + i32.const 192 i32.const 7 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 76 ;) + (func $assembly/index/__ready (; 65 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 77 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 66 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 78 ;) + (func $assembly/internal/report/Actual/__sendActual (; 67 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3724,7 +1949,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 79 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 68 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3863,24 +2088,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 80 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 69 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 81 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 70 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 82 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 71 ;) (result i32) i32.const 4 ) - (func $assembly/internal/Expectation/__cleanup (; 83 ;) + (func $assembly/internal/Expectation/__cleanup (; 72 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 84 ;) + (func $~start (; 73 ;) global.get $~started if return @@ -3890,140 +2115,130 @@ end call $start:assembly/__tests__/toBeFinite.spec ) - (func $~lib/array/Array#__visit_impl (; 85 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 74 ;) + return ) - (func $~lib/rt/pure/__visit (; 86 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 75 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 76 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 77 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 78 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 87 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 79 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toBeNaN.spec.ts b/packages/assembly/assembly/__tests__/toBeNaN.spec.ts index 3a3c3b49..2a37cd3a 100644 --- a/packages/assembly/assembly/__tests__/toBeNaN.spec.ts +++ b/packages/assembly/assembly/__tests__/toBeNaN.spec.ts @@ -1,5 +1,3 @@ -import { Vec3 } from "./setup/Vec3"; - /** * This test suite verifies toBeNaN assertions. It is used only with float values, and * should throw an error otherwise. @@ -9,27 +7,27 @@ describe("toBeNaN", () => { * The idiomatic NaN test. */ it("should assert a NaN value is NaN", () => { - expect(NaN).toBeNaN("NaN is NaN"); + expect(NaN).toBeNaN("NaN is NaN"); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if NaN is not NaN", () => { - expect(NaN).not.toBeNaN(); + expect(NaN).not.toBeNaN(); }, "NaN must be NaN"); /** * This test verifies that normal float values are not NaN values. */ it("should expect normal float values not to be NaN", () => { - expect(10.0).not.toBeNaN("10.0 is not NaN"); + expect(10.0).not.toBeNaN("10.0 is not NaN"); }); /** * This test verifies that normal values are not NaN values, and also throw. */ throws("should throw if a normal float value is expected to be NaN", () => { - expect(10.0).toBeNaN(); + expect(10.0).toBeNaN(); }, "Normal float values are not NaN values."); }); diff --git a/packages/assembly/assembly/__tests__/toBeNaN.spec.wat b/packages/assembly/assembly/__tests__/toBeNaN.spec.wat index cf506f29..a7bc1bbe 100644 --- a/packages/assembly/assembly/__tests__/toBeNaN.spec.wat +++ b/packages/assembly/assembly/__tests__/toBeNaN.spec.wat @@ -1,23 +1,38 @@ (module - (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_=>_none (func (param f64))) - (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00t\00o\00B\00e\00N\00a\00N\00") + (data (i32.const 208) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00a\00 \00N\00a\00N\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 288) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00N\00a\00N\00 \00i\00s\00 \00N\00a\00N\00") + (data (i32.const 336) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00t\00o\00B\00e\00N\00a\00N\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00m\00u\00s\00t\00 \00b\00e\00 \00c\00a\00l\00l\00e\00d\00 \00o\00n\00 \00a\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00.\00") + (data (i32.const 464) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 560) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00N\00a\00N\00") + (data (i32.const 640) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 656) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00N\00a\00N\00 \00m\00u\00s\00t\00 \00b\00e\00 \00N\00a\00N\00") + (data (i32.const 704) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00N\00a\00N\00") + (data (i32.const 816) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\001\000\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00N\00a\00N\00") + (data (i32.const 864) "t\00\00\00\01\00\00\00\01\00\00\00t\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00N\00a\00N\00") + (data (i32.const 1008) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00N\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00N\00a\00N\00 \00v\00a\00l\00u\00e\00s\00.\00") + (data (i32.const 1104) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportTest" (func $assembly/internal/Test/reportTest (param i32 i32))) (import "__aspect" "reportNegatedTest" (func $assembly/internal/Test/reportNegatedTest (param i32 i32 i32))) @@ -44,34 +59,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00t\00o\00B\00e\00N\00a\00N\00") - (data (i32.const 320) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00a\00 \00N\00a\00N\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 400) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00N\00a\00N\00 \00i\00s\00 \00N\00a\00N\00") - (data (i32.const 448) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00t\00o\00B\00e\00N\00a\00N\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00m\00u\00s\00t\00 \00b\00e\00 \00c\00a\00l\00l\00e\00d\00 \00o\00n\00 \00a\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00.\00") - (data (i32.const 576) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 672) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00N\00a\00N\00") - (data (i32.const 752) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 768) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00N\00a\00N\00 \00m\00u\00s\00t\00 \00b\00e\00 \00N\00a\00N\00") - (data (i32.const 816) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00N\00a\00N\00") - (data (i32.const 928) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\001\000\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00N\00a\00N\00") - (data (i32.const 976) "t\00\00\00\01\00\00\00\01\00\00\00t\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00a\00 \00n\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00N\00a\00N\00") - (data (i32.const 1120) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00N\00o\00r\00m\00a\00l\00 \00f\00l\00o\00a\00t\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00N\00a\00N\00 \00v\00a\00l\00u\00e\00s\00.\00") - (data (i32.const 1216) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 7 funcref) (elem (i32.const 1) $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeNaN.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.float (mut f64) (f64.const 0)) @@ -96,8 +90,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1216)) - (global $~lib/heap/__heap_base i32 (i32.const 1260)) + (global $~lib/rt/__rtti_base i32 (i32.const 1104)) + (global $~lib/heap/__heap_base i32 (i32.const 1148)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1186,296 +1180,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 37 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 38 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 39 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 41 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 42 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 43 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 37 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1559,7 +1264,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 38 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1654,9 +1359,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 45 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1670,12 +1375,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1686,20 +1391,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1712,13 +1417,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1730,11 +1435,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1745,37 +1450,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 46 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 40 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 47 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 41 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1793,7 +1496,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1814,1503 +1517,25 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 48 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 49 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 52 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 53 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 54 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 55 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + (func $~lib/rt/pure/__retain (; 42 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 56 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 43 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3321,7 +1546,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/Expectation/Expectation#constructor (; 57 ;) (param $0 i32) (param $1 f64) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 44 ;) (param $0 i32) (param $1 f64) (result i32) local.get $0 i32.eqz if @@ -3342,12 +1567,12 @@ f64.store offset=8 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 58 ;) (param $0 f64) (result i32) + (func $assembly/internal/Expectation/expect (; 45 ;) (param $0 f64) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 59 ;) (param $0 f64) + (func $assembly/internal/report/Actual/Actual.report (; 46 ;) (param $0 f64) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 2 @@ -3355,7 +1580,56 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.float ) - (func $assembly/internal/report/Actual/Actual.clear (; 60 ;) + (func $assembly/internal/comparison/assert/assert (; 47 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 480 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/isNaNComparison/isNaNComparison (; 48 ;) (param $0 f64) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + i32.const 2 + global.set $assembly/internal/report/Expected/Expected.type + f64.const nan:0x8000000000000 + global.set $assembly/internal/report/Expected/Expected.float + local.get $1 + global.set $assembly/internal/report/Expected/Expected.negated + i32.const -1 + global.set $assembly/internal/report/Expected/Expected.stackTrace + i32.const 1 + i32.const 352 + call $assembly/internal/comparison/assert/assert + local.get $0 + local.get $0 + f64.ne + local.set $3 + local.get $1 + local.get $3 + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert + local.get $2 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 49 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3375,7 +1649,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 61 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 50 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3393,96 +1667,32 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeNaN (; 62 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $assembly/internal/Expectation/Expectation#toBeNaN (; 51 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 f64.load offset=8 - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report - i32.const 2 - global.set $assembly/internal/report/Expected/Expected.type - f64.const nan:0x8000000000000 - global.set $assembly/internal/report/Expected/Expected.float - local.get $3 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const -1 - global.set $assembly/internal/report/Expected/Expected.stackTrace - i32.const 1 - local.set $6 - i32.const 464 - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 592 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - local.get $4 - f64.ne - local.set $6 - local.get $3 - local.get $6 - i32.xor - local.set $7 - local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $7 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 592 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/isNaNComparison/isNaNComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|0 (; 63 ;) + (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|0 (; 52 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 416 + i32.const 304 call $assembly/internal/Expectation/Expectation#toBeNaN local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 64 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 53 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3492,14 +1702,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 65 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 54 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|1 (; 66 ;) + (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|1 (; 55 ;) (local $0 i32) (local $1 i32) f64.const nan:0x8000000000000 @@ -3507,14 +1717,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 768 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeNaN local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3530,7 +1740,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|2 (; 68 ;) + (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|2 (; 57 ;) (local $0 i32) (local $1 i32) f64.const 10 @@ -3538,43 +1748,43 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 944 + i32.const 832 call $assembly/internal/Expectation/Expectation#toBeNaN local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|3 (; 69 ;) + (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0~anonymous|3 (; 58 ;) (local $0 i32) f64.const 10 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 768 + i32.const 656 call $assembly/internal/Expectation/Expectation#toBeNaN local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0 (; 70 ;) - i32.const 336 + (func $start:assembly/__tests__/toBeNaN.spec~anonymous|0 (; 59 ;) + i32.const 224 i32.const 1 call $assembly/internal/Test/it - i32.const 688 + i32.const 576 i32.const 2 - i32.const 784 + i32.const 672 call $assembly/internal/Test/throws - i32.const 832 + i32.const 720 i32.const 3 call $assembly/internal/Test/it - i32.const 992 + i32.const 880 i32.const 4 - i32.const 1136 + i32.const 1024 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 71 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 60 ;) nop ) - (func $assembly/internal/Describe/describe (; 72 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 61 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3588,22 +1798,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNaN.spec (; 73 ;) - i32.const 304 + (func $start:assembly/__tests__/toBeNaN.spec (; 62 ;) + i32.const 192 i32.const 5 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 74 ;) + (func $assembly/index/__ready (; 63 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 75 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 64 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 76 ;) + (func $assembly/internal/report/Actual/__sendActual (; 65 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3711,7 +1921,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 77 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 66 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3850,24 +2060,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 78 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 67 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 79 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 68 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 80 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 69 ;) (result i32) i32.const 4 ) - (func $assembly/internal/Expectation/__cleanup (; 81 ;) + (func $assembly/internal/Expectation/__cleanup (; 70 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 82 ;) + (func $~start (; 71 ;) global.get $~started if return @@ -3877,140 +2087,130 @@ end call $start:assembly/__tests__/toBeNaN.spec ) - (func $~lib/array/Array#__visit_impl (; 83 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 72 ;) + return ) - (func $~lib/rt/pure/__visit (; 84 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 73 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 74 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 75 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 76 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 85 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 77 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toBeNull.spec.ts b/packages/assembly/assembly/__tests__/toBeNull.spec.ts index 346b53b3..8514e2d1 100644 --- a/packages/assembly/assembly/__tests__/toBeNull.spec.ts +++ b/packages/assembly/assembly/__tests__/toBeNull.spec.ts @@ -1,6 +1,6 @@ import { Vec3 } from "./setup/Vec3"; -var vec1 = new Vec3(1, 2, 3); +var vec1: Vec3 | null = new Vec3(1, 2, 3); /** * This test suite verifies toBeNull assertions. It is used only with reference type values, @@ -25,10 +25,10 @@ describe("toBeNull", () => { * This test verifies that reference types are not null. */ it("should expect references to not be null", () => { - expect(vec1).not.toBeNull("Reference values should not be null"); + expect(vec1).not.toBeNull("Reference values should not be null"); }); throws("when a reference value is be not null", () => { - expect(vec1).toBeNull(); + expect(vec1).toBeNull(); }, "Reference values that aren't null shouldn't be expected to be null."); }); diff --git a/packages/assembly/assembly/__tests__/toBeNull.spec.wat b/packages/assembly/assembly/__tests__/toBeNull.spec.wat index d48d1a31..371b011f 100644 --- a/packages/assembly/assembly/__tests__/toBeNull.spec.wat +++ b/packages/assembly/assembly/__tests__/toBeNull.spec.wat @@ -1,21 +1,35 @@ (module - (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00t\00o\00B\00e\00N\00u\00l\00l\00") + (data (i32.const 208) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 288) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00n\00u\00l\00l\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 368) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 464) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00w\00h\00e\00n\00 \00n\00u\00l\00l\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 560) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 576) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00N\00u\00l\00l\00 \00c\00a\00n\00n\00o\00t\00 \00b\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 672) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00n\00o\00t\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 768) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00R\00e\00f\00e\00r\00e\00n\00c\00e\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 864) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00w\00h\00e\00n\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00b\00e\00 \00n\00o\00t\00 \00n\00u\00l\00l\00") + (data (i32.const 960) "\86\00\00\00\01\00\00\00\01\00\00\00\86\00\00\00R\00e\00f\00e\00r\00e\00n\00c\00e\00 \00v\00a\00l\00u\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00n\00\'\00t\00 \00n\00u\00l\00l\00 \00s\00h\00o\00u\00l\00d\00n\00\'\00t\00 \00b\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 1120) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -44,33 +58,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00t\00o\00B\00e\00N\00u\00l\00l\00") - (data (i32.const 320) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 400) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00n\00u\00l\00l\00 \00s\00h\00o\00u\00l\00d\00 \00a\00l\00w\00a\00y\00s\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 480) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 576) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00w\00h\00e\00n\00 \00n\00u\00l\00l\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 672) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 688) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00N\00u\00l\00l\00 \00c\00a\00n\00n\00o\00t\00 \00b\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 784) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00n\00o\00t\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 880) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00R\00e\00f\00e\00r\00e\00n\00c\00e\00 \00v\00a\00l\00u\00e\00s\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00b\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 976) "J\00\00\00\01\00\00\00\01\00\00\00J\00\00\00w\00h\00e\00n\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00b\00e\00 \00n\00o\00t\00 \00n\00u\00l\00l\00") - (data (i32.const 1072) "\86\00\00\00\01\00\00\00\01\00\00\00\86\00\00\00R\00e\00f\00e\00r\00e\00n\00c\00e\00 \00v\00a\00l\00u\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00n\00\'\00t\00 \00n\00u\00l\00l\00 \00s\00h\00o\00u\00l\00d\00n\00\'\00t\00 \00b\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00b\00e\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 1232) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 7 funcref) (elem (i32.const 1) $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeNull.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toBeNull.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -96,8 +90,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1232)) - (global $~lib/heap/__heap_base i32 (i32.const 1284)) + (global $~lib/rt/__rtti_base i32 (i32.const 1120)) + (global $~lib/heap/__heap_base i32 (i32.const 1172)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1186,296 +1180,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1559,7 +1264,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1654,9 +1359,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1670,12 +1375,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1686,20 +1391,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1712,13 +1417,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1730,11 +1435,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1745,37 +1450,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1793,7 +1496,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1801,1516 +1504,38 @@ local.get $0 local.get $1 i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable end ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment + end + local.get $0 + ) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3321,7 +1546,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 59 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 46 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3342,7 +1567,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 60 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 47 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3385,7 +1610,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 61 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 48 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3398,7 +1623,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 62 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 49 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3436,7 +1661,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 63 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 50 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3484,7 +1709,50 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.clear (; 64 ;) + (func $assembly/internal/comparison/assert/assert (; 51 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 384 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/nullComparison/nullComparison (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + i32.const 0 + local.get $1 + call $assembly/internal/report/Expected/Expected.report + local.get $1 + local.get $0 + i32.const 0 + i32.eq + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 53 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3504,7 +1772,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 65 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 54 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3522,73 +1790,32 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeNull (; 66 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $assembly/internal/Expectation/Expectation#toBeNull (; 55 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report - i32.const 0 - local.get $3 - call $assembly/internal/report/Expected/Expected.report - local.get $3 - local.get $4 - i32.const 0 - i32.eq - i32.xor - local.set $6 - local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 496 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/nullComparison/nullComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|0 (; 67 ;) + (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|0 (; 56 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 416 + i32.const 304 call $assembly/internal/Expectation/Expectation#toBeNull local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 68 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 57 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3598,14 +1825,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 69 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|1 (; 70 ;) + (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|1 (; 59 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3613,14 +1840,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 688 + i32.const 576 call $assembly/internal/Expectation/Expectation#toBeNull local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3636,7 +1863,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|2 (; 72 ;) + (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|2 (; 61 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBeNull.spec/vec1 @@ -3644,43 +1871,43 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 896 + i32.const 784 call $assembly/internal/Expectation/Expectation#toBeNull local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|3 (; 73 ;) + (func $start:assembly/__tests__/toBeNull.spec~anonymous|0~anonymous|3 (; 62 ;) (local $0 i32) global.get $assembly/__tests__/toBeNull.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 688 + i32.const 576 call $assembly/internal/Expectation/Expectation#toBeNull local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNull.spec~anonymous|0 (; 74 ;) - i32.const 336 + (func $start:assembly/__tests__/toBeNull.spec~anonymous|0 (; 63 ;) + i32.const 224 i32.const 1 call $assembly/internal/Test/it - i32.const 592 + i32.const 480 i32.const 2 - i32.const 704 + i32.const 592 call $assembly/internal/Test/throws - i32.const 800 + i32.const 688 i32.const 3 call $assembly/internal/Test/it - i32.const 992 + i32.const 880 i32.const 4 - i32.const 1088 + i32.const 976 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 75 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 64 ;) nop ) - (func $assembly/internal/Describe/describe (; 76 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 65 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3694,28 +1921,28 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeNull.spec (; 77 ;) + (func $start:assembly/__tests__/toBeNull.spec (; 66 ;) i32.const 0 f64.const 1 f64.const 2 f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/toBeNull.spec/vec1 - i32.const 304 + i32.const 192 i32.const 5 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 78 ;) + (func $assembly/index/__ready (; 67 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 79 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 68 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 80 ;) + (func $assembly/internal/report/Actual/__sendActual (; 69 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3823,7 +2050,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 81 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 70 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3962,24 +2189,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 82 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 71 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 83 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 72 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 84 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 73 ;) (result i32) i32.const 5 ) - (func $assembly/internal/Expectation/__cleanup (; 85 ;) + (func $assembly/internal/Expectation/__cleanup (; 74 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 86 ;) + (func $~start (; 75 ;) global.get $~started if return @@ -3989,140 +2216,130 @@ end call $start:assembly/__tests__/toBeNull.spec ) - (func $~lib/array/Array#__visit_impl (; 87 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 76 ;) + return ) - (func $~lib/rt/pure/__visit (; 88 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 77 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 78 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 79 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 80 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 89 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 81 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toBeTruthy.spec.ts b/packages/assembly/assembly/__tests__/toBeTruthy.spec.ts index e405e470..64c68def 100644 --- a/packages/assembly/assembly/__tests__/toBeTruthy.spec.ts +++ b/packages/assembly/assembly/__tests__/toBeTruthy.spec.ts @@ -10,70 +10,99 @@ describe("toBeTruthy", () => { * This performs javascript-like assertions, so 1 should be truthy. */ it("should expect 1 to be truthy", () => { - expect(1).toBeTruthy(); + expect(1).toBeTruthy(); + }); + + /** + * This performs javascript-like assertions, so a 1.0 float should be truthy. + */ + it("should expect 1.0 to be truthy", () => { + expect(1.0).toBeTruthy(); }); /** * This is the contrapositive of the previous test. */ throws("should error if 1 is fasly", () => { - expect(1).not.toBeTruthy(); + expect(1).not.toBeTruthy(); }, "1 is truthy"); + + /** + * This is the contrapositive of the previous float version test. + */ + throws("should error if 1.0 is fasly", () => { + expect(1.0).not.toBeTruthy(); + }, "1.0 is truthy"); + /** * True should be truthy by definition. */ it("should expect true to be truthy", () => { - expect(true).toBeTruthy("True is truthy by definition"); + expect(true).toBeTruthy("True is truthy by definition"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if true is not truthy", () => { - expect(true).not.toBeTruthy(); + expect(true).not.toBeTruthy(); }, "true is truthy"); /** * Any value that is numerically 0 should be falsy, and thus, not truthy. */ - it("should expect zero numbers not to be truthy", () => { - expect(0).not.toBeTruthy("0 is not truthy"); + it("should expect numbers that equal zero not to be truthy", () => { + expect(0).not.toBeTruthy("0 is not truthy"); + }); + + /** + * Any value that is numerically 0.0 should be falsy, and thus, not truthy. + */ + it("should expect numbers that equal zero not to be truthy", () => { + expect(0.0).not.toBeTruthy("0.0 is not truthy"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if 0 is not truthy", () => { - expect(0).toBeTruthy(); + expect(0).toBeTruthy(); }, "0 is not truthy"); + /** + * This is the contrapositive of the previous test. + */ + throws("should throw if 0.0 is not truthy", () => { + expect(0.0).toBeTruthy(); + }, "0.0 is not truthy"); + /** * False should not be truthy by definition. */ it("should expect false not to be truthy", () => { - expect(false).not.toBeTruthy("False is not truthy by definition"); + expect(false).not.toBeTruthy("False is not truthy by definition"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if false is not truthy", () => { - expect(false).toBeTruthy(); + expect(false).toBeTruthy(); }, "false is not truthy"); /** * NaN is always falsy. */ it("should expect NaN not to be truthy", () => { - expect(NaN).not.toBeTruthy("NaN is always not truthy"); + expect(NaN).not.toBeTruthy("NaN is always not truthy"); }); /** * This is the contrapositive of the previous test. */ throws("should throw if NaN is not fasly", () => { - expect(NaN).toBeTruthy("NaN is always not truthy"); + expect(NaN).toBeTruthy("NaN is always not truthy"); }, "NaN is not truthy"); /** @@ -94,13 +123,13 @@ describe("toBeTruthy", () => { * This test verifies non-null references are truthy. */ it("should expect non-null references to be truthy", () => { - expect(vec1).toBeTruthy("Non-null references are truthy."); + expect(vec1).toBeTruthy("Non-null references are truthy."); }); /** * This test is the contrapositive of the previous test. */ throws("should throw if non-null references are expected not to be truthy", () => { - expect(vec1).not.toBeTruthy(); + expect(vec1).not.toBeTruthy(); }, "Non-null references are truthy."); }); diff --git a/packages/assembly/assembly/__tests__/toBeTruthy.spec.wat b/packages/assembly/assembly/__tests__/toBeTruthy.spec.wat index 05a0abfe..4935bb8c 100644 --- a/packages/assembly/assembly/__tests__/toBeTruthy.spec.wat +++ b/packages/assembly/assembly/__tests__/toBeTruthy.spec.wat @@ -7,18 +7,53 @@ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $f64_=>_none (func (param f64))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) - (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $f64_=>_none (func (param f64))) + (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00o\00B\00e\00T\00r\00u\00t\00h\00y\00") + (data (i32.const 224) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \001\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 304) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 400) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 416) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \001\00.\000\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 496) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00r\00r\00o\00r\00 \00i\00f\00 \001\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 576) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\001\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 624) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00r\00r\00o\00r\00 \00i\00f\00 \001\00.\000\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 704) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\001\00.\000\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 752) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00t\00r\00u\00e\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 832) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00T\00r\00u\00e\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") + (data (i32.const 912) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00r\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1008) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00t\00r\00u\00e\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1056) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00m\00b\00e\00r\00s\00 \00t\00h\00a\00t\00 \00e\00q\00u\00a\00l\00 \00z\00e\00r\00o\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1184) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\000\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1232) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\000\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1296) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \000\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1376) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \000\00.\000\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1472) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00f\00a\00l\00s\00e\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1568) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00F\00a\00l\00s\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") + (data (i32.const 1664) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00f\00a\00l\00s\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1760) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00f\00a\00l\00s\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1824) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00N\00a\00N\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1920) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00N\00a\00N\00 \00i\00s\00 \00a\00l\00w\00a\00y\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 1984) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") + (data (i32.const 2064) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 2128) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 2224) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00N\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 2288) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00n\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 2368) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 2480) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00N\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00t\00r\00u\00t\00h\00y\00.\00") + (data (i32.const 2560) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") + (data (i32.const 2720) "\n\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportTest" (func $assembly/internal/Test/reportTest (param i32 i32))) (import "__aspect" "reportNegatedTest" (func $assembly/internal/Test/reportNegatedTest (param i32 i32 i32))) @@ -45,49 +80,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00o\00B\00e\00T\00r\00u\00t\00h\00y\00") - (data (i32.const 336) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \001\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 416) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 512) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 528) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00r\00r\00o\00r\00 \00i\00f\00 \001\00 \00i\00s\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 608) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\001\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 656) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00t\00r\00u\00e\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 736) "8\00\00\00\01\00\00\00\01\00\00\008\00\00\00T\00r\00u\00e\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") - (data (i32.const 816) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00r\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 912) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00t\00r\00u\00e\00 \00i\00s\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 960) "V\00\00\00\01\00\00\00\01\00\00\00V\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00z\00e\00r\00o\00 \00n\00u\00m\00b\00e\00r\00s\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1072) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\000\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1120) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \000\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1200) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00f\00a\00l\00s\00e\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1296) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00F\00a\00l\00s\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00 \00b\00y\00 \00d\00e\00f\00i\00n\00i\00t\00i\00o\00n\00") - (data (i32.const 1392) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00f\00a\00l\00s\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1488) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00f\00a\00l\00s\00e\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1552) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00N\00a\00N\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1648) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00N\00a\00N\00 \00i\00s\00 \00a\00l\00w\00a\00y\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1712) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00f\00a\00s\00l\00y\00") - (data (i32.const 1792) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00N\00a\00N\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1856) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00u\00l\00l\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 1952) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00N\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 2016) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00n\00u\00l\00l\00 \00i\00s\00 \00n\00o\00t\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 2096) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00s\00h\00o\00u\00l\00d\00 \00e\00x\00p\00e\00c\00t\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 2208) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00N\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00t\00r\00u\00t\00h\00y\00.\00") - (data (i32.const 2288) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00n\00o\00n\00-\00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00b\00e\00 \00t\00r\00u\00t\00h\00y\00") - (data (i32.const 2448) "\n\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") - (table $0 17 funcref) - (elem (i32.const 1) $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|11 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|12 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|13 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) + (table $0 21 funcref) + (elem (i32.const 1) $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|11 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|12 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|13 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|14 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|15 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|16 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|17 $start:assembly/__tests__/toBeTruthy.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toBeTruthy.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -107,14 +106,14 @@ (global $assembly/internal/report/Expected/Expected.negated (mut i32) (i32.const 0)) (global $assembly/internal/report/Expected/Expected.stackTrace (mut i32) (i32.const 0)) (global $assembly/internal/report/Expected/Expected.isManaged (mut i32) (i32.const 0)) - (global $assembly/internal/noOp/noOp i32 (i32.const 16)) + (global $assembly/internal/noOp/noOp i32 (i32.const 20)) (global $~argumentsLength (mut i32) (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2448)) - (global $~lib/heap/__heap_base i32 (i32.const 2532)) + (global $~lib/rt/__rtti_base i32 (i32.const 2720)) + (global $~lib/heap/__heap_base i32 (i32.const 2804)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1203,296 +1202,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 37 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 38 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 39 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 40 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 41 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 42 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 43 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 37 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1576,7 +1286,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 38 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1671,9 +1381,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 45 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1687,12 +1397,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1703,20 +1413,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1729,13 +1439,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1747,11 +1457,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1762,1479 +1472,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 46 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 47 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 48 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 49 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 52 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 53 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 + i32.store offset=12 + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc local.get $4 - i32.add - global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 54 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 40 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 55 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 41 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3244,90 +1539,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 42 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 56 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 43 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3338,7 +1568,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 57 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 44 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -3359,7 +1589,7 @@ f64.store offset=16 local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 58 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 45 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3380,12 +1610,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 59 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 46 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 60 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 47 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3411,7 +1641,52 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 61 ;) + (func $assembly/internal/comparison/assert/assert (; 48 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 320 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/truthyComparison/truthyComparison (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + i32.const 8 + global.set $assembly/internal/report/Expected/Expected.type + local.get $1 + global.set $assembly/internal/report/Expected/Expected.negated + i32.const -1 + global.set $assembly/internal/report/Expected/Expected.stackTrace + local.get $0 + i32.const 0 + i32.eq + local.set $3 + local.get $1 + local.get $3 + i32.eqz + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert + local.get $2 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 50 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3431,7 +1706,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 62 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 51 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3449,94 +1724,141 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 63 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 52 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 i32.load offset=4 - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 + call $assembly/internal/comparison/truthyComparison/truthyComparison + call $assembly/internal/report/Actual/Actual.clear + call $assembly/internal/report/Expected/Expected.clear + local.get $1 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|0 (; 53 ;) + (local $0 i32) + i32.const 1 + call $assembly/internal/Expectation/expect + local.tee $0 + i32.const 416 + call $assembly/internal/Expectation/Expectation#toBeTruthy + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Test/it (; 54 ;) (param $0 i32) (param $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $assembly/internal/Test/reportTest + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#constructor (; 55 ;) (param $0 i32) (param $1 f64) (result i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + f64.const 0 + f64.store offset=8 + local.get $0 + local.get $1 + f64.store offset=8 + local.get $0 + ) + (func $assembly/internal/Expectation/expect (; 56 ;) (param $0 f64) (result i32) + i32.const 0 + local.get $0 + call $assembly/internal/Expectation/Expectation#constructor + ) + (func $assembly/internal/report/Actual/Actual.report (; 57 ;) (param $0 f64) + call $assembly/internal/report/Actual/getStackTrace + global.set $assembly/internal/report/Actual/Actual.stackTrace + i32.const 2 + global.set $assembly/internal/report/Actual/Actual.type + local.get $0 + global.set $assembly/internal/report/Actual/Actual.float + ) + (func $assembly/internal/comparison/truthyComparison/truthyComparison (; 58 ;) (param $0 f64) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report + local.get $0 + call $assembly/internal/report/Actual/Actual.report i32.const 8 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 - i32.const 0 - i32.eq - local.set $5 - local.get $3 - local.get $5 - i32.eqz - i32.xor - local.set $7 - local.get $2 - call $~lib/rt/pure/__retain - local.set $6 - local.get $7 - i32.eqz - if - local.get $6 - call $~lib/rt/pure/__release - local.get $6 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + f64.ne + if (result i32) + i32.const 1 + else + local.get $0 + f64.const 0 + f64.eq end - local.get $6 - call $~lib/rt/pure/__release + local.set $3 + local.get $1 + local.get $3 + i32.eqz + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert local.get $2 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 59 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + f64.load offset=8 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/truthyComparison/truthyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|0 (; 64 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|1 (; 60 ;) (local $0 i32) - i32.const 1 - call $assembly/internal/Expectation/expect + f64.const 1 + call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 - call $assembly/internal/Expectation/Expectation#toBeTruthy - local.get $0 - call $~lib/rt/pure/__release - ) - (func $assembly/internal/Test/it (; 65 ;) (param $0 i32) (param $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $assembly/internal/Test/reportTest + i32.const 416 + call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 66 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 61 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|1 (; 67 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|2 (; 62 ;) (local $0 i32) (local $1 i32) i32.const 1 @@ -3544,14 +1866,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3567,12 +1889,34 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 69 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 64 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1 + i32.store + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|3 (; 65 ;) + (local $0 i32) + (local $1 i32) + f64.const 1 + call $assembly/internal/Expectation/expect + local.tee $0 + call $assembly/internal/Expectation/Expectation#get:not + local.tee $1 + i32.const 416 + call $assembly/internal/Expectation/Expectation#toBeTruthy + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#constructor (; 66 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if i32.const 5 - i32.const 5 + i32.const 6 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.set $0 @@ -3588,12 +1932,12 @@ i32.store8 offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 70 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 67 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 71 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 68 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 11 @@ -3603,86 +1947,67 @@ i32.ne global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 72 ;) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $assembly/internal/comparison/truthyComparison/truthyComparison (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load8_u offset=4 - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 + local.get $0 call $assembly/internal/report/Actual/Actual.report i32.const 8 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 + local.get $0 i32.const 0 i32.ne i32.const 0 i32.eq - local.set $5 + local.set $3 + local.get $1 local.get $3 - local.get $5 i32.eqz i32.xor - local.set $7 local.get $2 - call $~lib/rt/pure/__retain - local.set $6 - local.get $7 - i32.eqz - if - local.get $6 - call $~lib/rt/pure/__release - local.get $6 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $2 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 70 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load8_u offset=4 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/truthyComparison/truthyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|2 (; 73 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|4 (; 71 ;) (local $0 i32) i32.const 1 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 752 + i32.const 848 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 74 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 72 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|3 (; 75 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|5 (; 73 ;) (local $0 i32) (local $1 i32) i32.const 1 @@ -3690,14 +2015,14 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|4 (; 76 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|6 (; 74 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3705,24 +2030,49 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 1088 + i32.const 1200 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|5 (; 77 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|7 (; 75 ;) + (local $0 i32) + (local $1 i32) + f64.const 0 + call $assembly/internal/Expectation/expect + local.tee $0 + call $assembly/internal/Expectation/Expectation#get:not + local.tee $1 + i32.const 1248 + call $assembly/internal/Expectation/Expectation#toBeTruthy + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|8 (; 76 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|6 (; 78 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|9 (; 77 ;) + (local $0 i32) + f64.const 0 + call $assembly/internal/Expectation/expect + local.tee $0 + i32.const 416 + call $assembly/internal/Expectation/Expectation#toBeTruthy + local.get $0 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|10 (; 78 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -3730,132 +2080,24 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 1312 + i32.const 1584 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|7 (; 79 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|11 (; 79 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 80 ;) (param $0 i32) (param $1 f64) (result i32) - local.get $0 - i32.eqz - if - i32.const 16 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - f64.const 0 - f64.store offset=8 - local.get $0 - local.get $1 - f64.store offset=8 - local.get $0 - ) - (func $assembly/internal/Expectation/expect (; 81 ;) (param $0 f64) (result i32) - i32.const 0 - local.get $0 - call $assembly/internal/Expectation/Expectation#constructor - ) - (func $assembly/internal/Expectation/Expectation#get:not (; 82 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 1 - i32.store - local.get $0 - call $~lib/rt/pure/__retain - ) - (func $assembly/internal/report/Actual/Actual.report (; 83 ;) (param $0 f64) - call $assembly/internal/report/Actual/getStackTrace - global.set $assembly/internal/report/Actual/Actual.stackTrace - i32.const 2 - global.set $assembly/internal/report/Actual/Actual.type - local.get $0 - global.set $assembly/internal/report/Actual/Actual.float - ) - (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 84 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - f64.load offset=8 - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $assembly/internal/report/Actual/Actual.report - i32.const 8 - global.set $assembly/internal/report/Expected/Expected.type - local.get $3 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const -1 - global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 - local.get $4 - f64.ne - if (result i32) - i32.const 1 - else - local.get $4 - f64.const 0 - f64.eq - end - local.set $5 - local.get $3 - local.get $5 - i32.eqz - i32.xor - local.set $7 - local.get $2 - call $~lib/rt/pure/__retain - local.set $6 - local.get $7 - i32.eqz - if - local.get $6 - call $~lib/rt/pure/__release - local.get $6 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - call $assembly/internal/report/Actual/Actual.clear - call $assembly/internal/report/Expected/Expected.clear - local.get $1 - call $~lib/rt/pure/__release - ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|8 (; 85 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|12 (; 80 ;) (local $0 i32) (local $1 i32) f64.const nan:0x8000000000000 @@ -3863,24 +2105,24 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 1664 + i32.const 1936 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|9 (; 86 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|13 (; 81 ;) (local $0 i32) f64.const nan:0x8000000000000 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 1664 + i32.const 1936 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 87 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 82 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3923,7 +2165,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 88 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 83 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3936,14 +2178,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/Expectation/Expectation#get:not (; 89 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 84 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/internal/report/Actual/Actual.report (; 90 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 85 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3981,88 +2223,55 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 91 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 + (func $assembly/internal/comparison/truthyComparison/truthyComparison (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 + local.set $0 + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 + local.get $0 call $assembly/internal/report/Actual/Actual.report i32.const 8 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $4 + local.get $0 i32.const 0 i32.eq - if - local.get $3 - local.set $6 + if + local.get $1 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert else - local.get $3 + local.get $1 i32.eqz - local.set $6 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert end - local.get $2 + local.get $0 call $~lib/rt/pure/__release - local.get $4 + local.get $2 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 87 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/truthyComparison/truthyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|10 (; 92 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|14 (; 88 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -4070,24 +2279,24 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 1968 + i32.const 2240 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|11 (; 93 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|15 (; 89 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 94 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 90 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4130,7 +2339,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 95 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 91 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4143,7 +2352,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 96 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 92 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4171,80 +2380,63 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 97 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 + (func $assembly/internal/comparison/truthyComparison/truthyComparison (; 93 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $4 - local.get $0 - i32.load - local.set $3 - local.get $1 + local.set $0 + local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 + local.get $0 call $assembly/internal/report/Actual/Actual.report i32.const 8 global.set $assembly/internal/report/Expected/Expected.type - local.get $3 + local.get $1 global.set $assembly/internal/report/Expected/Expected.negated i32.const -1 global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $3 + local.get $1 i32.eqz - local.set $6 local.get $2 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - i32.eqz - if - local.get $5 - call $~lib/rt/pure/__release - local.get $5 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $5 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBeTruthy (; 94 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + local.get $1 + call $assembly/internal/comparison/truthyComparison/truthyComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|12 (; 98 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|16 (; 95 ;) (local $0 i32) global.get $assembly/__tests__/toBeTruthy.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 - i32.const 2224 + i32.const 2496 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 99 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 96 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|13 (; 100 ;) + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0~anonymous|17 (; 97 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toBeTruthy.spec/vec1 @@ -4252,68 +2444,82 @@ local.tee $0 call $assembly/internal/Expectation/Expectation#get:not local.tee $1 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBeTruthy local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0 (; 101 ;) - i32.const 352 + (func $start:assembly/__tests__/toBeTruthy.spec~anonymous|0 (; 98 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 544 + i32.const 432 i32.const 2 - i32.const 624 - call $assembly/internal/Test/throws - i32.const 672 - i32.const 3 call $assembly/internal/Test/it - i32.const 832 + i32.const 512 + i32.const 3 + i32.const 592 + call $assembly/internal/Test/throws + i32.const 640 i32.const 4 - i32.const 928 + i32.const 720 call $assembly/internal/Test/throws - i32.const 976 + i32.const 768 i32.const 5 call $assembly/internal/Test/it - i32.const 1136 + i32.const 928 i32.const 6 - i32.const 1088 + i32.const 1024 call $assembly/internal/Test/throws - i32.const 1216 + i32.const 1072 i32.const 7 call $assembly/internal/Test/it - i32.const 1408 + i32.const 1072 i32.const 8 - i32.const 1504 - call $assembly/internal/Test/throws - i32.const 1568 - i32.const 9 call $assembly/internal/Test/it - i32.const 1728 + i32.const 1312 + i32.const 9 + i32.const 1200 + call $assembly/internal/Test/throws + i32.const 1392 i32.const 10 - i32.const 1808 + i32.const 1248 call $assembly/internal/Test/throws - i32.const 1872 + i32.const 1488 i32.const 11 call $assembly/internal/Test/it - i32.const 2032 + i32.const 1680 i32.const 12 - i32.const 1968 + i32.const 1776 call $assembly/internal/Test/throws - i32.const 2112 + i32.const 1840 i32.const 13 call $assembly/internal/Test/it - i32.const 2304 + i32.const 2000 i32.const 14 - i32.const 2224 + i32.const 2080 + call $assembly/internal/Test/throws + i32.const 2144 + i32.const 15 + call $assembly/internal/Test/it + i32.const 2304 + i32.const 16 + i32.const 2240 + call $assembly/internal/Test/throws + i32.const 2384 + i32.const 17 + call $assembly/internal/Test/it + i32.const 2576 + i32.const 18 + i32.const 2496 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 102 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 99 ;) nop ) - (func $assembly/internal/Describe/describe (; 103 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 100 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4327,28 +2533,28 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toBeTruthy.spec (; 104 ;) + (func $start:assembly/__tests__/toBeTruthy.spec (; 101 ;) i32.const 0 f64.const 1 f64.const 2 f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/toBeTruthy.spec/vec1 - i32.const 304 - i32.const 15 + i32.const 192 + i32.const 19 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 105 ;) + (func $assembly/index/__ready (; 102 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 106 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 103 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 107 ;) + (func $assembly/internal/report/Actual/__sendActual (; 104 ;) (local $0 i32) block $break|0 block $case9|0 @@ -4456,7 +2662,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 108 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 105 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4595,24 +2801,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 109 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 106 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 110 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 107 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 111 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 108 ;) (result i32) i32.const 9 ) - (func $assembly/internal/Expectation/__cleanup (; 112 ;) + (func $assembly/internal/Expectation/__cleanup (; 109 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 113 ;) + (func $~start (; 110 ;) global.get $~started if return @@ -4622,138 +2828,128 @@ end call $start:assembly/__tests__/toBeTruthy.spec ) - (func $~lib/array/Array#__visit_impl (; 114 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 111 ;) + return ) - (func $~lib/rt/pure/__visit (; 115 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 112 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 113 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 114 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 115 ;) (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (; 116 ;) (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/packages/assembly/assembly/__tests__/toHaveLength.spec.ts b/packages/assembly/assembly/__tests__/toHaveLength.spec.ts index 6cae96ef..4bfebf68 100644 --- a/packages/assembly/assembly/__tests__/toHaveLength.spec.ts +++ b/packages/assembly/assembly/__tests__/toHaveLength.spec.ts @@ -1,14 +1,14 @@ -runTypedArrayTest("Uint8Array"); -runTypedArrayTest("Uint8ClampedArray"); -runTypedArrayTest("Int8Array"); -runTypedArrayTest("Uint16Array"); -runTypedArrayTest("Int16Array"); -runTypedArrayTest("Uint32Array"); -runTypedArrayTest("Int32Array"); -runTypedArrayTest("Uint64Array"); -runTypedArrayTest("Int64Array"); -runTypedArrayTest("Float32Array"); -runTypedArrayTest("Float64Array"); +runTypedArrayTest("Uint8Array"); +runTypedArrayTest("Uint8ClampedArray"); +runTypedArrayTest("Int8Array"); +runTypedArrayTest("Uint16Array"); +runTypedArrayTest("Int16Array"); +runTypedArrayTest("Uint32Array"); +runTypedArrayTest("Int32Array"); +runTypedArrayTest("Uint64Array"); +runTypedArrayTest("Int64Array"); +runTypedArrayTest("Float32Array"); +runTypedArrayTest("Float64Array"); /** * This method creates a default TypedArray reference like Uint8Array. @@ -16,31 +16,32 @@ runTypedArrayTest("Float64Array"); * @example * let value = create(); */ -// @ts-ignore: decorators are valid here -@inline -function create, U extends number>(): T { +function create(): T { var value: T = instantiate(3); - value[0] = 0; - value[1] = 1; - value[2] = 2; + // @ts-ignore: this is safe + unchecked(value[0] = >0); + // @ts-ignore: this is safe + unchecked(value[1] = >1); + // @ts-ignore: this is safe + unchecked(value[2] = >2); return value; } /** * This method creates a describe block that tests the given TypedArray. * - * @param {T extends TypedArray} - The TypedArray type. + * @param {T extends ArrayBufferView} - The TypedArray type. * @param {U} - The number type. * @param {string} typedArrayType - The name of the TypedArray */ -function runTypedArrayTest, U extends number>(typedArrayType: string): void { +function runTypedArrayTest(typedArrayType: string): void { describe("toHaveLength TypedArray type: " + typedArrayType, () => { /** * This test verifies the length is 3 using toHaveLength(3). */ it("should assert expected length", () => { - var created: T = create(); + var created = create(); expect(created).toHaveLength(3); }); @@ -48,7 +49,7 @@ function runTypedArrayTest, U extends number>(typedArray * This test throws because the length *is* 3. This is the contrapositive of the previous test. */ throws("when expected length should not equal the same value", () => { - var created: T = create(); + var created = create(); expect(created).not.toHaveLength(3); }, "When length is equal, negated assertions should throw."); @@ -56,7 +57,7 @@ function runTypedArrayTest, U extends number>(typedArray * This test verifies that when the expectation is negated, it validates the expected reference. */ it("should verify the length is not another value", () => { - var created: T = create(); + var created = create(); expect(created).not.toHaveLength(10, "The length of created is 3, not 10."); }); @@ -65,7 +66,7 @@ function runTypedArrayTest, U extends number>(typedArray * test. */ throws("when the length is another expected value", () => { - var created: T = create(); + var created = create(); expect(created).toHaveLength(10); }, "The length of created is 3, and not 10"); }); diff --git a/packages/assembly/assembly/__tests__/toHaveLength.spec.wat b/packages/assembly/assembly/__tests__/toHaveLength.spec.wat index 4e66909b..e6088572 100644 --- a/packages/assembly/assembly/__tests__/toHaveLength.spec.wat +++ b/packages/assembly/assembly/__tests__/toHaveLength.spec.wat @@ -7,17 +7,56 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y\00") + (data (i32.const 224) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00t\00o\00H\00a\00v\00e\00L\00e\00n\00g\00t\00h\00 \00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00t\00y\00p\00e\00:\00 \00") + (data (i32.const 304) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") + (data (i32.const 336) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 352) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 432) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 480) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 544) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 640) "h\00\00\00\01\00\00\00\01\00\00\00h\00\00\00w\00h\00e\00n\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00l\00e\00n\00g\00t\00h\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 768) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00W\00h\00e\00n\00 \00l\00e\00n\00g\00t\00h\00 \00i\00s\00 \00e\00q\00u\00a\00l\00,\00 \00n\00e\00g\00a\00t\00e\00d\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 896) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00i\00s\00 \00n\00o\00t\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1008) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00r\00e\00a\00t\00e\00d\00 \00i\00s\00 \003\00,\00 \00n\00o\00t\00 \001\000\00.\00") + (data (i32.const 1104) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00w\00h\00e\00n\00 \00t\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00i\00s\00 \00a\00n\00o\00t\00h\00e\00r\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 1216) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00r\00e\00a\00t\00e\00d\00 \00i\00s\00 \003\00,\00 \00a\00n\00d\00 \00n\00o\00t\00 \001\000\00") + (data (i32.const 1312) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y\00") + (data (i32.const 1376) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y\00") + (data (i32.const 1424) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y\00") + (data (i32.const 1472) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y\00") + (data (i32.const 1520) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y\00") + (data (i32.const 1568) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y\00") + (data (i32.const 1616) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y\00") + (data (i32.const 1664) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y\00") + (data (i32.const 1712) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y\00") + (data (i32.const 1760) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y\00") + (data (i32.const 1808) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 1840) "\10\00\00\00\01\00\00\00\19\00\00\00\10\00\00\00 \07\00\00 \07\00\00\0c\00\00\00\03\00\00\00") + (data (i32.const 1872) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00t\00o\00H\00a\00v\00e\00L\00e\00n\00g\00t\00h\00 \00A\00r\00r\00a\00y\00s\00") + (data (i32.const 1936) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00l\00e\00n\00g\00t\00h\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 2096) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00v\00a\00l\00u\00e\00A\00r\00r\00a\00y\00 \00i\00s\00 \003\00,\00 \00n\00o\00t\00 \001\000\00.\00") + (data (i32.const 2192) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00v\00a\00l\00u\00e\00A\00r\00r\00a\00y\00 \00i\00s\00 \003\00,\00 \00a\00n\00d\00 \00n\00o\00t\00 \001\000\00") + (data (i32.const 2304) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00t\00o\00H\00a\00v\00e\00L\00e\00n\00g\00t\00h\00 \00c\00u\00s\00t\00o\00m\00 \00c\00l\00a\00s\00s\00e\00s\00") + (data (i32.const 2384) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00u\00s\00t\00o\00m\00E\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \003\00,\00 \00n\00o\00t\00 \001\000\00.\00") + (data (i32.const 2496) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00u\00s\00t\00o\00m\00E\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \003\00,\00 \00a\00n\00d\00 \00n\00o\00t\00 \001\000\00") + (data (i32.const 2608) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00") + (data (i32.const 2656) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00m\00p\00a\00r\00e\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00 \00l\00e\00n\00g\00t\00h\00s\00") + (data (i32.const 2752) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00A\00n\00 \00a\00r\00r\00a\00y\00 \00b\00u\00f\00f\00e\00r\00 \00w\00i\00t\00h\00 \00l\00e\00n\00g\00t\00h\00 \001\000\000\00 \00s\00h\00o\00u\00l\00d\00 \00h\00a\00v\00e\00 \00l\00e\00n\00g\00t\00h\00 \001\000\000\00.\00") + (data (i32.const 2880) "\1f\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00Q\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00Q\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\11\01\00\00\02\00\00\00\10\00\00\00\00\00\00\00\11\05\00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\0c\00\00\02\00\00\00\10\00\00\00\00\00\00\00\11\0d\00\00\02\00\00\00\10\00\00\00\00\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -46,58 +85,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00U\00i\00n\00t\008\00A\00r\00r\00a\00y\00") - (data (i32.const 336) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00t\00o\00H\00a\00v\00e\00L\00e\00n\00g\00t\00h\00 \00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00t\00y\00p\00e\00:\00 \00") - (data (i32.const 416) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") - (data (i32.const 448) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 464) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 544) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 592) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 656) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 720) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 816) "h\00\00\00\01\00\00\00\01\00\00\00h\00\00\00w\00h\00e\00n\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00l\00e\00n\00g\00t\00h\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 944) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00W\00h\00e\00n\00 \00l\00e\00n\00g\00t\00h\00 \00i\00s\00 \00e\00q\00u\00a\00l\00,\00 \00n\00e\00g\00a\00t\00e\00d\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 1072) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00e\00r\00i\00f\00y\00 \00t\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00i\00s\00 \00n\00o\00t\00 \00a\00n\00o\00t\00h\00e\00r\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1184) "F\00\00\00\01\00\00\00\01\00\00\00F\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00r\00e\00a\00t\00e\00d\00 \00i\00s\00 \003\00,\00 \00n\00o\00t\00 \001\000\00.\00") - (data (i32.const 1280) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00w\00h\00e\00n\00 \00t\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00i\00s\00 \00a\00n\00o\00t\00h\00e\00r\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 1392) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00r\00e\00a\00t\00e\00d\00 \00i\00s\00 \003\00,\00 \00a\00n\00d\00 \00n\00o\00t\00 \001\000\00") - (data (i32.const 1488) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00U\00i\00n\00t\008\00C\00l\00a\00m\00p\00e\00d\00A\00r\00r\00a\00y\00") - (data (i32.const 1552) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00I\00n\00t\008\00A\00r\00r\00a\00y\00") - (data (i32.const 1600) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\001\006\00A\00r\00r\00a\00y\00") - (data (i32.const 1648) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\001\006\00A\00r\00r\00a\00y\00") - (data (i32.const 1696) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\003\002\00A\00r\00r\00a\00y\00") - (data (i32.const 1744) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\003\002\00A\00r\00r\00a\00y\00") - (data (i32.const 1792) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00U\00i\00n\00t\006\004\00A\00r\00r\00a\00y\00") - (data (i32.const 1840) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00I\00n\00t\006\004\00A\00r\00r\00a\00y\00") - (data (i32.const 1888) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\003\002\00A\00r\00r\00a\00y\00") - (data (i32.const 1936) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00F\00l\00o\00a\00t\006\004\00A\00r\00r\00a\00y\00") - (data (i32.const 1984) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 2016) "\10\00\00\00\01\00\00\00\19\00\00\00\10\00\00\00\d0\07\00\00\d0\07\00\00\0c\00\00\00\03\00\00\00") - (data (i32.const 2048) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00t\00o\00H\00a\00v\00e\00L\00e\00n\00g\00t\00h\00 \00A\00r\00r\00a\00y\00s\00") - (data (i32.const 2112) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00l\00e\00n\00g\00t\00h\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 2272) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00v\00a\00l\00u\00e\00A\00r\00r\00a\00y\00 \00i\00s\00 \003\00,\00 \00n\00o\00t\00 \001\000\00.\00") - (data (i32.const 2368) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00v\00a\00l\00u\00e\00A\00r\00r\00a\00y\00 \00i\00s\00 \003\00,\00 \00a\00n\00d\00 \00n\00o\00t\00 \001\000\00") - (data (i32.const 2480) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00t\00o\00H\00a\00v\00e\00L\00e\00n\00g\00t\00h\00 \00c\00u\00s\00t\00o\00m\00 \00c\00l\00a\00s\00s\00e\00s\00") - (data (i32.const 2560) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00u\00s\00t\00o\00m\00E\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \003\00,\00 \00n\00o\00t\00 \001\000\00.\00") - (data (i32.const 2672) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00T\00h\00e\00 \00l\00e\00n\00g\00t\00h\00 \00o\00f\00 \00c\00u\00s\00t\00o\00m\00E\00x\00a\00m\00p\00l\00e\00 \00i\00s\00 \003\00,\00 \00a\00n\00d\00 \00n\00o\00t\00 \001\000\00") - (data (i32.const 2784) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00") - (data (i32.const 2832) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00m\00p\00a\00r\00e\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00 \00l\00e\00n\00g\00t\00h\00s\00") - (data (i32.const 2928) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00A\00n\00 \00a\00r\00r\00a\00y\00 \00b\00u\00f\00f\00e\00r\00 \00w\00i\00t\00h\00 \00l\00e\00n\00g\00t\00h\00 \001\000\000\00 \00s\00h\00o\00u\00l\00d\00 \00h\00a\00v\00e\00 \00l\00e\00n\00g\00t\00h\00 \001\000\000\00.\00") - (data (i32.const 3056) "\1f\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00Q\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00Q\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\11\01\00\00\02\00\00\00\10\00\00\00\00\00\00\00\11\05\00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\0c\00\00\02\00\00\00\10\00\00\00\00\00\00\00\11\0d\00\00\02\00\00\00\10\00\00\00\00\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 69 funcref) - (elem (i32.const 1) $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0 $start:assembly/internal/noOp~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toHaveLength.spec~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|1 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|2 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|3 $start:assembly/__tests__/toHaveLength.spec~anonymous|1 $start:assembly/__tests__/toHaveLength.spec~anonymous|2~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|2) + (elem (i32.const 1) $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0 $start:assembly/internal/noOp~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|0 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|1 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|2 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|3 $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toHaveLength.spec~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|1 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|2 $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|3 $start:assembly/__tests__/toHaveLength.spec~anonymous|1 $start:assembly/__tests__/toHaveLength.spec~anonymous|2~anonymous|0 $start:assembly/__tests__/toHaveLength.spec~anonymous|2) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -119,14 +113,14 @@ (global $assembly/internal/report/Expected/Expected.isManaged (mut i32) (i32.const 0)) (global $assembly/internal/noOp/noOp i32 (i32.const 6)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $assembly/__tests__/toHaveLength.spec/valueArray (mut i32) (i32.const 2032)) + (global $assembly/__tests__/toHaveLength.spec/valueArray (mut i32) (i32.const 1856)) (global $assembly/__tests__/toHaveLength.spec/customExample (mut i32) (i32.const 0)) (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3056)) - (global $~lib/heap/__heap_base i32 (i32.const 3308)) + (global $~lib/rt/__rtti_base i32 (i32.const 2880)) + (global $~lib/heap/__heap_base i32 (i32.const 3132)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1215,296 +1209,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1588,7 +1293,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1683,9 +1388,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1699,12 +1404,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1715,20 +1420,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1741,13 +1446,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1759,11 +1464,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1774,37 +1479,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1822,7 +1525,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1843,13 +1546,13 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1861,32 +1564,26 @@ end local.get $0 ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 - local.get $1 - i32.load + global.get $~lib/heap/__heap_base i32.gt_u if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - local.get $1 - i32.const 4 - i32.add + ) + (func $~lib/string/String#get:length (; 46 ;) (param $0 i32) (result i32) local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 47 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2910,7 +2607,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 48 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3130,349 +2827,121 @@ end end ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) + (func $~lib/string/String#concat (; 49 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/rt/pure/__retain local.set $1 local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 + i32.const 0 + i32.eq + if + i32.const 320 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $2 + local.set $1 + end + local.get $0 + call $~lib/string/String#get:length + i32.const 1 i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select local.set $4 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $5 local.get $4 + local.get $5 + i32.add + local.set $6 + local.get $6 i32.const 0 + i32.eq + if + i32.const 352 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $6 + i32.const 1 call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 + call $~lib/rt/pure/__retain + local.set $7 + local.get $7 local.get $0 - local.get $1 + local.get $4 call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 + local.get $7 local.get $4 i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end local.get $1 - local.get $0 - i32.store + local.get $5 + call $~lib/memory/memory.copy + local.get $7 + local.set $2 local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR + call $~lib/rt/pure/__release + local.get $2 ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__concat (; 50 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.load offset=4 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain local.set $1 + local.get $0 + i32.const 320 + local.get $0 + i32.const 0 + i32.ne + select local.get $1 - i32.const 268435455 - i32.and + call $~lib/string/String#concat local.set $2 local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release local.get $2 - i32.const 1 - i32.eq - if + ) + (func $~lib/memory/memory.fill (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + block $~lib/util/memory/memset|inlined.0 local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members + local.set $5 local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - end - ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $~lib/string/String#get:length (; 59 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) - (func $~lib/string/String#concat (; 60 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 432 - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $3 - call $~lib/rt/pure/__release - end - local.get $2 - local.set $1 - end - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $4 - local.get $1 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $5 - local.get $4 - local.get $5 - i32.add - local.set $6 - local.get $6 - i32.const 0 - i32.eq - if - i32.const 464 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $6 - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $7 - local.get $7 - local.get $0 - local.get $4 - call $~lib/memory/memory.copy - local.get $7 - local.get $4 - i32.add - local.get $1 - local.get $5 - call $~lib/memory/memory.copy - local.get $7 - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/string/String.__concat (; 61 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.const 432 - local.get $0 - i32.const 0 - i32.ne - select - local.get $1 - call $~lib/string/String#concat - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/memory/memory.fill (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - block $~lib/util/memory/memset|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 + local.set $4 + local.get $2 + local.set $3 + local.get $3 i32.eqz if br $~lib/util/memory/memset|inlined.0 @@ -3721,7 +3190,7 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3732,8 +3201,8 @@ i32.shr_u i32.gt_u if - i32.const 560 - i32.const 608 + i32.const 448 + i32.const 496 i32.const 23 i32.const 56 call $~lib/builtins/abort @@ -3793,7 +3262,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Uint8Array#constructor (; 64 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 53 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -3809,19 +3278,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint8Array#__set (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 163 - i32.const 44 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Uint8Array#__uset (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -3829,7 +3286,35 @@ local.get $2 i32.store8 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#constructor (; 66 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8Array> (; 55 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#constructor (; 56 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3872,7 +3357,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> (; 67 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> (; 57 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3885,11 +3370,11 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8Array#get:length (; 68 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#get:length (; 58 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $assembly/internal/report/Actual/Actual.report (; 69 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 59 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3915,7 +3400,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 70 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 60 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3949,7 +3434,56 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 71 ;) + (func $assembly/internal/comparison/assert/assert (; 61 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 560 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint8Array> (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 + local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $4 + local.get $1 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 63 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3969,7 +3503,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 72 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 64 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3987,112 +3521,39 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toHaveLength (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toHaveLength (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $7 - local.get $6 - call $~lib/typedarray/Uint8Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $7 - local.get $5 - i32.eq - i32.xor - local.set $9 - local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint8Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|0 (; 74 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|0 (; 66 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 75 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 67 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4102,58 +3563,35 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not (; 76 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not (; 68 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|1 (; 77 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|1 (; 69 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 70 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4169,110 +3607,63 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|2 (; 79 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|2 (; 71 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0~anonymous|3 (; 80 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0~anonymous|3 (; 72 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 81 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array>~anonymous|0 (; 73 ;) + i32.const 368 i32.const 1 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 2 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 3 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 4 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 82 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 74 ;) nop ) - (func $assembly/internal/Describe/describe (; 83 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 75 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4286,12 +3677,12 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8> (; 84 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array> (; 76 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -4302,7 +3693,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#constructor (; 85 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#constructor (; 77 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -4318,19 +3709,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint8ClampedArray#__set (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 291 - i32.const 44 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Uint8ClampedArray#__uset (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -4350,7 +3729,35 @@ i32.and i32.store8 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#constructor (; 87 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8ClampedArray> (; 79 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#constructor (; 80 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4393,7 +3800,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint8ClampedArray> (; 88 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint8ClampedArray> (; 81 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4406,272 +3813,159 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8ClampedArray#get:length (; 89 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#get:length (; 82 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#toHaveLength (; 90 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint8ClampedArray> (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#toHaveLength (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint8ClampedArray> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|0 (; 91 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|0 (; 85 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8ClampedArray> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8ClampedArray> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#get:not (; 92 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#get:not (; 86 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|1 (; 93 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|1 (; 87 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8ClampedArray> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8ClampedArray> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|2 (; 94 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|2 (; 88 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8ClampedArray> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8ClampedArray> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0~anonymous|3 (; 95 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0~anonymous|3 (; 89 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint8ClampedArray> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8ClampedArray> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8ClampedArray>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 96 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray>~anonymous|0 (; 90 ;) + i32.const 368 i32.const 7 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 8 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 9 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 10 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8> (; 97 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray> (; 91 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -4682,7 +3976,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#constructor (; 98 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#constructor (; 92 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -4698,19 +3992,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int8Array#__set (; 99 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 35 - i32.const 44 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Int8Array#__uset (; 93 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -4718,7 +4000,35 @@ local.get $2 i32.store8 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#constructor (; 100 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int8Array> (; 94 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Int8Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Int8Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#constructor (; 95 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4761,7 +4071,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> (; 101 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> (; 96 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4774,272 +4084,159 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int8Array#get:length (; 102 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#get:length (; 97 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength (; 103 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int8Array> (; 98 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength (; 99 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int8Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|0 (; 104 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|0 (; 100 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#get:not (; 105 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#get:not (; 101 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|1 (; 106 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|1 (; 102 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int8Array> + local.set $0 + local.get $0 + call $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> + local.tee $1 + call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#get:not + local.tee $2 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int8Array#__set + i32.const 352 + call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $2 - local.get $0 call $~lib/rt/pure/__release local.get $2 - local.set $3 - local.get $3 - call $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> - local.tee $1 - call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#get:not - local.tee $0 - i32.const 3 - i32.const 464 - call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength - local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|2 (; 107 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|2 (; 103 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0~anonymous|3 (; 108 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0~anonymous|3 (; 104 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int8Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int8Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int8Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 109 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array>~anonymous|0 (; 105 ;) + i32.const 368 i32.const 12 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 13 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 14 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 15 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8> (; 110 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array> (; 106 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -5050,7 +4247,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#constructor (; 111 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#constructor (; 107 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -5066,21 +4263,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint16Array#__set (; 112 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 547 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Uint16Array#__uset (; 108 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -5090,7 +4273,35 @@ local.get $2 i32.store16 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#constructor (; 113 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint16Array> (; 109 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Uint16Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#constructor (; 110 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5133,7 +4344,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint16Array> (; 114 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint16Array> (; 111 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5146,274 +4357,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint16Array#get:length (; 115 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#get:length (; 112 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 1 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#toHaveLength (; 116 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint16Array> (; 113 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Uint16Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#toHaveLength (; 114 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint16Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|0 (; 117 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|0 (; 115 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint16Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#get:not (; 118 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#get:not (; 116 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|1 (; 119 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|1 (; 117 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint16Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|2 (; 120 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|2 (; 118 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint16Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0~anonymous|3 (; 121 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0~anonymous|3 (; 119 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint16Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 122 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array>~anonymous|0 (; 120 ;) + i32.const 368 i32.const 17 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 18 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 19 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 20 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16> (; 123 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array> (; 121 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -5424,7 +4522,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#constructor (; 124 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#constructor (; 122 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -5440,21 +4538,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int16Array#__set (; 125 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 419 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Int16Array#__uset (; 123 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -5464,7 +4548,35 @@ local.get $2 i32.store16 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#constructor (; 126 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int16Array> (; 124 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int16Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Int16Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Int16Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#constructor (; 125 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5507,7 +4619,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Int16Array> (; 127 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Int16Array> (; 126 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5520,115 +4632,72 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int16Array#get:length (; 128 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#get:length (; 127 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 1 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#toHaveLength (; 129 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int16Array> (; 128 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#toHaveLength (; 129 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int16Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|0 (; 130 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|0 (; 130 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int16Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#get:not (; 131 ;) (param $0 i32) (result i32) @@ -5638,156 +4707,86 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|1 (; 132 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|1 (; 132 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int16Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|2 (; 133 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|2 (; 133 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int16Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0~anonymous|3 (; 134 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0~anonymous|3 (; 134 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int16Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int16Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int16Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 135 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array>~anonymous|0 (; 135 ;) + i32.const 368 i32.const 22 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 23 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 24 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 25 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16> (; 136 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array> (; 136 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -5814,21 +4813,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint32Array#__set (; 138 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 803 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Uint32Array#__uset (; 138 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -5838,12 +4823,40 @@ local.get $2 i32.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#constructor (; 139 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint32Array> (; 139 ;) (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Uint32Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#constructor (; 140 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain local.set $1 local.get $0 i32.eqz @@ -5881,7 +4894,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint32Array> (; 140 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint32Array> (; 141 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5894,274 +4907,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint32Array#get:length (; 141 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#get:length (; 142 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 2 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#toHaveLength (; 142 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint32Array> (; 143 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Uint32Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#toHaveLength (; 144 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint32Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|0 (; 143 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|0 (; 145 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint32Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#get:not (; 144 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#get:not (; 146 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|1 (; 145 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|1 (; 147 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint32Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|2 (; 146 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|2 (; 148 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint32Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0~anonymous|3 (; 147 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0~anonymous|3 (; 149 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint32Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 148 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array>~anonymous|0 (; 150 ;) + i32.const 368 i32.const 27 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 28 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 29 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 30 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32> (; 149 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array> (; 151 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -6172,7 +5072,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#constructor (; 150 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#constructor (; 152 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -6188,21 +5088,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int32Array#__set (; 151 ;) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 675 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Int32Array#__uset (; 153 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -6212,7 +5098,35 @@ local.get $2 i32.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#constructor (; 152 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int32Array> (; 154 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#__uset + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Int32Array#__uset + local.get $1 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Int32Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#constructor (; 155 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6255,7 +5169,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Int32Array> (; 153 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Int32Array> (; 156 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6268,274 +5182,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int32Array#get:length (; 154 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#get:length (; 157 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 2 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#toHaveLength (; 155 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int32Array> (; 158 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#toHaveLength (; 159 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int32Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|0 (; 156 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|0 (; 160 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int32Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#get:not (; 157 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#get:not (; 161 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|1 (; 158 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|1 (; 162 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int32Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|2 (; 159 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|2 (; 163 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int32Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0~anonymous|3 (; 160 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0~anonymous|3 (; 164 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int32Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 161 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array>~anonymous|0 (; 165 ;) + i32.const 368 i32.const 32 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 33 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 34 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 35 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32> (; 162 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array> (; 166 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -6546,7 +5347,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#constructor (; 163 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#constructor (; 167 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -6562,21 +5363,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint64Array#__set (; 164 ;) (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 1059 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Uint64Array#__uset (; 168 ;) (param $0 i32) (param $1 i32) (param $2 i64) local.get $0 i32.load offset=4 local.get $1 @@ -6586,7 +5373,35 @@ local.get $2 i64.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#constructor (; 165 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint64Array> (; 169 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 0 + call $~lib/typedarray/Uint64Array#__uset + local.get $1 + i32.const 1 + i64.const 1 + call $~lib/typedarray/Uint64Array#__uset + local.get $1 + i32.const 2 + i64.const 2 + call $~lib/typedarray/Uint64Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#constructor (; 170 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6629,7 +5444,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint64Array> (; 166 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint64Array> (; 171 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6642,274 +5457,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint64Array#get:length (; 167 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#get:length (; 172 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#toHaveLength (; 168 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint64Array> (; 173 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Uint64Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#toHaveLength (; 174 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Uint64Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|0 (; 169 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|0 (; 175 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint64Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#get:not (; 170 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#get:not (; 176 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|1 (; 171 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|1 (; 177 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint64Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|2 (; 172 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|2 (; 178 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint64Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#toHaveLength - local.get $1 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0~anonymous|3 (; 173 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - local.set $2 - local.get $0 + local.get $1 call $~lib/rt/pure/__release local.get $2 - local.set $3 - local.get $3 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0~anonymous|3 (; 179 ;) + (local $0 i32) + (local $1 i32) + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Uint64Array> + local.set $0 + local.get $0 call $assembly/internal/Expectation/expect<~lib/typedarray/Uint64Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 174 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array>~anonymous|0 (; 180 ;) + i32.const 368 i32.const 37 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 38 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 39 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 40 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64> (; 175 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array> (; 181 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -6920,7 +5622,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#constructor (; 176 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#constructor (; 182 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -6936,21 +5638,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int64Array#__set (; 177 ;) (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 931 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Int64Array#__uset (; 183 ;) (param $0 i32) (param $1 i32) (param $2 i64) local.get $0 i32.load offset=4 local.get $1 @@ -6960,7 +5648,35 @@ local.get $2 i64.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#constructor (; 178 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int64Array> (; 184 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 0 + call $~lib/typedarray/Int64Array#__uset + local.get $1 + i32.const 1 + i64.const 1 + call $~lib/typedarray/Int64Array#__uset + local.get $1 + i32.const 2 + i64.const 2 + call $~lib/typedarray/Int64Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#constructor (; 185 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7003,7 +5719,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Int64Array> (; 179 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Int64Array> (; 186 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7016,274 +5732,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int64Array#get:length (; 180 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#get:length (; 187 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#toHaveLength (; 181 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int64Array> (; 188 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#toHaveLength (; 189 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Int64Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|0 (; 182 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|0 (; 190 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int64Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#get:not (; 183 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#get:not (; 191 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|1 (; 184 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|1 (; 192 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int64Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|2 (; 185 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|2 (; 193 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int64Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0~anonymous|3 (; 186 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0~anonymous|3 (; 194 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 0 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Int64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Int64Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Int64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 187 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array>~anonymous|0 (; 195 ;) + i32.const 368 i32.const 42 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 43 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 44 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 45 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64> (; 188 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array> (; 196 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -7294,7 +5897,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#constructor (; 189 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#constructor (; 197 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -7306,35 +5909,49 @@ end local.get $1 i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Float32Array#__set (; 190 ;) (param $0 i32) (param $1 i32) (param $2 f32) + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Float32Array#__uset (; 198 ;) (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + ) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float32Array> (; 199 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 0 + call $~lib/typedarray/Float32Array#__uset + local.get $1 + i32.const 1 + f32.const 1 + call $~lib/typedarray/Float32Array#__uset + local.get $1 + i32.const 2 + f32.const 2 + call $~lib/typedarray/Float32Array#__uset local.get $1 + local.set $2 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 1187 - i32.const 63 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add + call $~lib/rt/pure/__release local.get $2 - f32.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#constructor (; 191 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#constructor (; 200 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7377,7 +5994,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> (; 192 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> (; 201 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7390,274 +6007,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Float32Array#get:length (; 193 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#get:length (; 202 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 2 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toHaveLength (; 194 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Float32Array> (; 203 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toHaveLength (; 204 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Float32Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|0 (; 195 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|0 (; 205 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 0 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not (; 196 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not (; 206 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|1 (; 197 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|1 (; 207 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 0 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|2 (; 198 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|2 (; 208 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 0 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0~anonymous|3 (; 199 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0~anonymous|3 (; 209 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 0 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float32Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 200 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array>~anonymous|0 (; 210 ;) + i32.const 368 i32.const 47 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 48 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 49 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 50 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32> (; 201 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array> (; 211 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -7668,7 +6172,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#constructor (; 202 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#constructor (; 212 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -7684,21 +6188,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Float64Array#__set (; 203 ;) (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 672 - i32.const 1315 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Float64Array#__uset (; 213 ;) (param $0 i32) (param $1 i32) (param $2 f64) local.get $0 i32.load offset=4 local.get $1 @@ -7708,7 +6198,35 @@ local.get $2 f64.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#constructor (; 204 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float64Array> (; 214 ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 0 + call $~lib/typedarray/Float64Array#__uset + local.get $1 + i32.const 1 + f64.const 1 + call $~lib/typedarray/Float64Array#__uset + local.get $1 + i32.const 2 + f64.const 2 + call $~lib/typedarray/Float64Array#__uset + local.get $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#constructor (; 215 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7751,7 +6269,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Float64Array> (; 205 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Float64Array> (; 216 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7764,274 +6282,161 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Float64Array#get:length (; 206 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#get:length (; 217 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 i32.shr_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#toHaveLength (; 207 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Float64Array> (; 218 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#toHaveLength (; 219 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/typedarray/Float64Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|0 (; 208 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|0 (; 220 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 0 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float64Array> local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#get:not (; 209 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#get:not (; 221 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|1 (; 210 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|1 (; 222 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 0 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float64Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#get:not - local.tee $0 + local.tee $2 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|2 (; 211 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|2 (; 223 ;) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 0 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float64Array> local.tee $1 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#get:not - local.tee $0 + local.tee $2 i32.const 10 - i32.const 1200 + i32.const 1024 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0~anonymous|3 (; 212 ;) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0~anonymous|3 (; 224 ;) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 0 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - local.set $2 + call $assembly/__tests__/toHaveLength.spec/create<~lib/typedarray/Float64Array> + local.set $0 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 call $assembly/internal/Expectation/expect<~lib/typedarray/Float64Array> local.tee $1 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float64Array>#toHaveLength local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 213 ;) - i32.const 480 + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array>~anonymous|0 (; 225 ;) + i32.const 368 i32.const 52 call $assembly/internal/Test/it - i32.const 832 + i32.const 656 i32.const 53 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 54 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 55 - i32.const 1408 + i32.const 1232 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64> (; 214 ;) (param $0 i32) + (func $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array> (; 226 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 352 + i32.const 240 local.get $0 call $~lib/string/String.__concat local.tee $1 @@ -8042,7 +6447,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 215 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 227 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8085,7 +6490,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 216 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 228 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -8098,94 +6503,75 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#get:length (; 217 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 229 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toHaveLength (; 218 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/array/Array> (; 230 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/array/Array#get:length - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toHaveLength (; 231 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|0 (; 219 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|0 (; 232 ;) (local $0 i32) global.get $assembly/__tests__/toHaveLength.spec/valueArray call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toHaveLength local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 220 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 233 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|1 (; 221 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|1 (; 234 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toHaveLength.spec/valueArray @@ -8194,14 +6580,14 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toHaveLength local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|2 (; 222 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|2 (; 235 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toHaveLength.spec/valueArray @@ -8210,41 +6596,41 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 i32.const 10 - i32.const 2288 + i32.const 2112 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toHaveLength local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|3 (; 223 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0~anonymous|3 (; 236 ;) (local $0 i32) global.get $assembly/__tests__/toHaveLength.spec/valueArray call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toHaveLength local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0 (; 224 ;) - i32.const 480 + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|0 (; 237 ;) + i32.const 368 i32.const 57 call $assembly/internal/Test/it - i32.const 2128 + i32.const 1952 i32.const 58 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 59 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 60 - i32.const 2384 + i32.const 2208 call $assembly/internal/Test/throws ) - (func $assembly/__tests__/toHaveLength.spec/Example#constructor (; 225 ;) (param $0 i32) (result i32) + (func $assembly/__tests__/toHaveLength.spec/Example#constructor (; 238 ;) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -8259,7 +6645,7 @@ i32.store local.get $0 ) - (func $assembly/internal/Expectation/Expectation#constructor (; 226 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 239 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8302,7 +6688,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 227 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 240 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -8315,90 +6701,71 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/Expectation/Expectation#toHaveLength (; 228 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison (; 241 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 i32.load - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $7 - local.get $5 + local.get $2 + local.get $4 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toHaveLength (; 242 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|0 (; 229 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|0 (; 243 ;) (local $0 i32) global.get $assembly/__tests__/toHaveLength.spec/customExample call $assembly/internal/Expectation/expect local.tee $0 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation#toHaveLength local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 230 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 244 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|1 (; 231 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|1 (; 245 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toHaveLength.spec/customExample @@ -8407,14 +6774,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 3 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation#toHaveLength local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|2 (; 232 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|2 (; 246 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toHaveLength.spec/customExample @@ -8423,48 +6790,48 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 10 - i32.const 2576 + i32.const 2400 call $assembly/internal/Expectation/Expectation#toHaveLength local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|3 (; 233 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1~anonymous|3 (; 247 ;) (local $0 i32) global.get $assembly/__tests__/toHaveLength.spec/customExample call $assembly/internal/Expectation/expect local.tee $0 i32.const 10 - i32.const 464 + i32.const 352 call $assembly/internal/Expectation/Expectation#toHaveLength local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1 (; 234 ;) - i32.const 480 + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|1 (; 248 ;) + i32.const 368 i32.const 62 call $assembly/internal/Test/it - i32.const 2128 + i32.const 1952 i32.const 63 - i32.const 960 + i32.const 784 call $assembly/internal/Test/throws - i32.const 1088 + i32.const 912 i32.const 64 call $assembly/internal/Test/it - i32.const 1296 + i32.const 1120 i32.const 65 - i32.const 2688 + i32.const 2512 call $assembly/internal/Test/throws ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 235 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 249 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 1073741808 i32.gt_u if - i32.const 560 - i32.const 608 + i32.const 448 + i32.const 496 i32.const 54 i32.const 42 call $~lib/builtins/abort @@ -8481,7 +6848,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#constructor (; 236 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#constructor (; 250 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8524,7 +6891,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> (; 237 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> (; 251 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -8537,78 +6904,59 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 238 ;) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 252 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toHaveLength (; 239 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/arraybuffer/ArrayBuffer> (; 253 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $7 - local.get $6 + local.set $4 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $7 - call $assembly/internal/report/Actual/Actual.report - local.get $5 + local.set $4 local.get $4 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 call $assembly/internal/report/Expected/Expected.report + local.get $2 local.get $4 - local.get $7 - local.get $5 + local.get $1 i32.eq i32.xor - local.set $9 local.get $3 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - i32.eqz - if - local.get $8 - call $~lib/rt/pure/__release - local.get $8 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $8 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toHaveLength (; 254 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/lengthComparison/lengthComparison<~lib/arraybuffer/ArrayBuffer> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|2~anonymous|0 (; 240 ;) + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|2~anonymous|0 (; 255 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -8618,67 +6966,67 @@ call $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> local.tee $1 i32.const 100 - i32.const 2944 + i32.const 2768 call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toHaveLength local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toHaveLength.spec~anonymous|2 (; 241 ;) - i32.const 2848 + (func $start:assembly/__tests__/toHaveLength.spec~anonymous|2 (; 256 ;) + i32.const 2672 i32.const 67 call $assembly/internal/Test/it ) - (func $start:assembly/__tests__/toHaveLength.spec (; 242 ;) + (func $start:assembly/__tests__/toHaveLength.spec (; 257 ;) (local $0 i32) (local $1 i32) - i32.const 304 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array,u8> - i32.const 1504 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray,u8> - i32.const 1568 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array,i8> - i32.const 1616 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array,u16> - i32.const 1664 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array,i16> - i32.const 1712 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array,u32> - i32.const 1760 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array,i32> - i32.const 1808 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array,u64> - i32.const 1856 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array,i64> - i32.const 1904 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array,f32> - i32.const 1952 - call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array,f64> - i32.const 2064 + i32.const 192 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8Array> + i32.const 1328 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint8ClampedArray> + i32.const 1392 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int8Array> + i32.const 1440 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint16Array> + i32.const 1488 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int16Array> + i32.const 1536 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint32Array> + i32.const 1584 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int32Array> + i32.const 1632 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Uint64Array> + i32.const 1680 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Int64Array> + i32.const 1728 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float32Array> + i32.const 1776 + call $assembly/__tests__/toHaveLength.spec/runTypedArrayTest<~lib/typedarray/Float64Array> + i32.const 1888 i32.const 61 call $assembly/internal/Describe/describe i32.const 0 call $assembly/__tests__/toHaveLength.spec/Example#constructor global.set $assembly/__tests__/toHaveLength.spec/customExample - i32.const 2496 + i32.const 2320 i32.const 66 call $assembly/internal/Describe/describe - i32.const 2800 + i32.const 2624 i32.const 68 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 243 ;) + (func $assembly/index/__ready (; 258 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 244 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 259 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 245 ;) + (func $assembly/internal/report/Actual/__sendActual (; 260 ;) (local $0 i32) block $break|0 block $case9|0 @@ -8786,7 +7134,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 246 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 261 ;) (local $0 i32) block $break|0 block $case11|0 @@ -8925,24 +7273,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 247 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 262 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 248 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 263 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 249 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 264 ;) (result i32) i32.const 30 ) - (func $assembly/internal/Expectation/__cleanup (; 250 ;) + (func $assembly/internal/Expectation/__cleanup (; 265 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 251 ;) + (func $~start (; 266 ;) global.get $~started if return @@ -8952,143 +7300,133 @@ end call $start:assembly/__tests__/toHaveLength.spec ) - (func $~lib/array/Array#__visit_impl (; 252 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 267 ;) + return ) - (func $~lib/array/Array#__visit_impl (; 253 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/tlsf/freeBlock (; 268 ;) (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/pure/__visit (; 254 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/decrement (; 269 ;) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz if - return + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 16 - i32.sub - local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 270 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 271 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 272 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 255 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 273 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toInclude.spec.ts b/packages/assembly/assembly/__tests__/toInclude.spec.ts index e68d456d..fdbb4ac2 100644 --- a/packages/assembly/assembly/__tests__/toInclude.spec.ts +++ b/packages/assembly/assembly/__tests__/toInclude.spec.ts @@ -2,12 +2,9 @@ import { Vec3 } from "./setup/Vec3"; import { listener, Listener, Event, initializeDispatcher } from "./setup/Event"; var eventDispatcher = initializeDispatcher(); -const newListener: Listener = (event: Event) => { let x = "hello"; } +const newListener = (event: Event): void => { let x = "hello"; } -let numberTester: i32[] = new Array(); -numberTester.push(1); -numberTester.push(2); -numberTester.push(3); +let numberTester = [1, 2, 3]; /** * This test block validates that the `toInclude()` assertiong validates actual and expected @@ -18,28 +15,28 @@ describe("toInclude value arrays", () => { * This test verifies an array includes a value. */ it("should include numbers", () => { - expect(numberTester).toInclude(2, "numberTester should include 2"); + expect(numberTester).toInclude(2, "numberTester should include 2"); }); /** * This test throws because the numberTester reference does not include 4. */ throws("when numberTester doesn't include a number", () => { - expect(numberTester).toInclude(4); + expect(numberTester).toInclude(4); }, "numberTester should not include 4"); /** * This test verifies that the array reference does *not* include 4. */ it("should not include numbers", () => { - expect(numberTester).not.toInclude(4, "numberTester should not include 4"); + expect(numberTester).not.toInclude(4, "numberTester should not include 4"); }); /** * This test throws because the array reference does *not* include 4. */ throws("when numberTester includes a number but the expectation is negated", () => { - expect(numberTester).not.toInclude(2); + expect(numberTester).not.toInclude(2); }); }); @@ -47,7 +44,7 @@ describe("toInclude value arrays", () => { * These setup values are used for strict reference equality assertions inside the referenceTester * array. */ -let referenceTester: Vec3[] = new Array(); +let referenceTester = new Array(); /** * These values are included in the array. @@ -68,52 +65,52 @@ describe("toInclude reference arrays", () => { * This test verifies the second reference is included in the array. */ it("should include a reference", () => { - expect(referenceTester).toInclude(two, "referenceTester should include reference two"); + expect(referenceTester).toInclude(two, "referenceTester should include reference two"); }); /** * This test throws because the fourth reference is not included in the referenceTester. */ throws("when referenceTester doesn't include a reference", () => { - expect(referenceTester).toInclude(four); + expect(referenceTester).toInclude(four); }, "numberTester should not include four"); /** * This test verifies that the fourth reference is not included in the referenceTester array. */ it("should not include a reference", () => { - expect(referenceTester).not.toInclude(four, "referenceTester should not include reference four"); + expect(referenceTester).not.toInclude(four, "referenceTester should not include reference four"); }); /** * This test throws because the second reference is included in the referenceTester array. */ throws("when referenceTester includes a reference but the expectation is negated", () => { - expect(referenceTester).not.toInclude(two); + expect(referenceTester).not.toInclude(two); }); /** * Should find included function pointer. */ it("should include a function pointer", () => { - expect>(eventDispatcher.events).toInclude(listener); + expect(eventDispatcher.events).toInclude(listener); }); it("Should handle the negated included function pointer", () => { - expect>(eventDispatcher.events).not.toInclude(newListener); + expect(eventDispatcher.events).not.toInclude(newListener); }); /** * Throws if function pointer is not included. */ throws("should include a function pointer", () => { - expect>(eventDispatcher.events).toInclude(newListener); + expect(eventDispatcher.events).toInclude(newListener); }); /** * Throws if function pointer is included when it shouldn't be. */ throws("should include a function pointer", () => { - expect>(eventDispatcher.events).not.toInclude(listener); + expect(eventDispatcher.events).not.toInclude(listener); }); }); diff --git a/packages/assembly/assembly/__tests__/toInclude.spec.wat b/packages/assembly/assembly/__tests__/toInclude.spec.wat index d6f5c2cf..4e3a40bc 100644 --- a/packages/assembly/assembly/__tests__/toInclude.spec.wat +++ b/packages/assembly/assembly/__tests__/toInclude.spec.wat @@ -1,21 +1,55 @@ (module (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 224) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 288) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 336) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00h\00e\00l\00l\00o\00") + (data (i32.const 368) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 400) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00 \00v\00a\00l\00u\00e\00 \00a\00r\00r\00a\00y\00s\00") + (data (i32.const 464) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") + (data (i32.const 528) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \002\00") + (data (i32.const 608) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00c\00l\00u\00d\00e\00d\00") + (data (i32.const 640) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") + (data (i32.const 704) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00N\00o\00t\00 \00I\00n\00c\00l\00u\00d\00e\00d\00") + (data (i32.const 752) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 848) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00n\00u\00m\00b\00e\00r\00") + (data (i32.const 960) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 976) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \004\00") + (data (i32.const 1072) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") + (data (i32.const 1152) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00n\00u\00m\00b\00e\00r\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 1312) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00a\00r\00r\00a\00y\00s\00") + (data (i32.const 1392) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 1472) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00w\00o\00") + (data (i32.const 1584) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") + (data (i32.const 1696) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 1808) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00f\00o\00u\00r\00") + (data (i32.const 1904) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 1984) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00f\00o\00u\00r\00") + (data (i32.const 2112) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 2272) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00") + (data (i32.const 2368) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00S\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00i\00n\00c\00l\00u\00d\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00") + (data (i32.const 2496) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) @@ -44,50 +78,15 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 336) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 400) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 448) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00h\00e\00l\00l\00o\00") - (data (i32.const 480) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00 \00v\00a\00l\00u\00e\00 \00a\00r\00r\00a\00y\00s\00") - (data (i32.const 544) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") - (data (i32.const 608) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \002\00") - (data (i32.const 688) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00c\00l\00u\00d\00e\00d\00") - (data (i32.const 720) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00N\00o\00t\00 \00I\00n\00c\00l\00u\00d\00e\00d\00") - (data (i32.const 768) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 864) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00n\00u\00m\00b\00e\00r\00") - (data (i32.const 976) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 992) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \004\00") - (data (i32.const 1088) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") - (data (i32.const 1168) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00n\00u\00m\00b\00e\00r\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 1328) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00a\00r\00r\00a\00y\00s\00") - (data (i32.const 1408) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 1488) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00w\00o\00") - (data (i32.const 1600) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 1712) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 1824) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00f\00o\00u\00r\00") - (data (i32.const 1920) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 2000) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00f\00o\00u\00r\00") - (data (i32.const 2128) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 2288) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00") - (data (i32.const 2384) "f\00\00\00\01\00\00\00\01\00\00\00f\00\00\00S\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00i\00n\00c\00l\00u\00d\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00") - (data (i32.const 2512) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (table $0 19 funcref) (elem (i32.const 1) $start:assembly/__tests__/setup/Event~anonymous|0 $start:assembly/__tests__/setup/Event~anonymous|1 $start:assembly/__tests__/toInclude.spec~anonymous|0 $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|0 $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|1 $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|2 $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|3 $start:assembly/__tests__/toInclude.spec~anonymous|1 $start:assembly/internal/noOp~anonymous|0 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|0 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|1 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|2 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|3 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|4 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|5 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|6 $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|7 $start:assembly/__tests__/toInclude.spec~anonymous|2) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/setup/Event/listener i32 (i32.const 1)) (global $assembly/__tests__/setup/Event/anotherListener i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toInclude.spec/eventDispatcher (mut i32) (i32.const 0)) (global $assembly/__tests__/toInclude.spec/newListener i32 (i32.const 3)) (global $assembly/__tests__/toInclude.spec/numberTester (mut i32) (i32.const 0)) @@ -120,8 +119,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 2512)) - (global $~lib/heap/__heap_base i32 (i32.const 2620)) + (global $~lib/rt/__rtti_base i32 (i32.const 2496)) + (global $~lib/heap/__heap_base i32 (i32.const 2604)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -140,7 +139,7 @@ (export "__disableRTrace" (func $assembly/internal/RTrace/__disableRTrace)) (export "__getUsizeArrayId" (func $assembly/internal/RTrace/__getUsizeArrayId)) (export "__cleanup" (func $assembly/internal/Expectation/__cleanup)) - (func $~lib/rt/tlsf/removeBlock (; 33 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 34 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -350,7 +349,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 34 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 35 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -700,7 +699,7 @@ local.get $7 i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 35 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -848,7 +847,7 @@ call $~lib/rt/tlsf/insertBlock i32.const 1 ) - (func $~lib/rt/tlsf/maybeInitialize (; 36 ;) (result i32) + (func $~lib/rt/tlsf/maybeInitialize (; 37 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -998,7 +997,7 @@ end local.get $0 ) - (func $~lib/rt/tlsf/prepareSize (; 37 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 38 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1027,7 +1026,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 38 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 39 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1210,296 +1209,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 40 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1583,7 +1293,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1678,9 +1388,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1694,12 +1404,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 + local.set $3 local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1710,20 +1420,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1736,13 +1446,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1754,11 +1464,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1769,37 +1479,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 44 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1817,7 +1525,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1838,13 +1546,13 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 45 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1856,1892 +1564,1720 @@ end local.get $0 ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + (func $~lib/rt/pure/__release (; 46 ;) (param $0 i32) local.get $0 - local.get $1 - i32.load + global.get $~lib/heap/__heap_base i32.gt_u if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end + ) + (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 47 ;) (param $0 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 48 ;) (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + local.set $1 + local.get $1 local.get $1 - i32.const 4 i32.add + drop local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + call $~lib/rt/pure/__release ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end + (local $7 i32) + (local $8 i64) + (local $9 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end + local.get $1 + local.set $4 local.get $2 - i32.const 4 - i32.and + local.set $3 + local.get $3 + i32.eqz if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 + local.get $5 + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 i32.const 2 - i32.and + i32.le_u if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 + local.get $5 i32.const 1 i32.add - local.set $1 - local.get $5 - i32.load8_u + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 2 i32.add - local.set $1 - local.get $5 - i32.load8_u + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u + i32.const 2 + i32.sub + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u + i32.const 3 + i32.sub + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 3 i32.add - local.set $1 - local.get $5 - i32.load8_u + local.get $4 i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 - local.get $5 - i32.load8_u + i32.const 4 + i32.sub + local.get $4 i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 + i32.sub + i32.const 3 + i32.and + local.set $6 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $6 i32.add - local.set $1 + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $7 local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 + i32.const 4 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + i32.const 4 i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 8 i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 12 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 i32.add - local.set $1 + i32.const 8 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + i32.const 12 i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 16 i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + i32.const 20 i32.add - local.set $0 + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 24 i32.add - local.set $1 + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $0 + i32.const 28 + i32.sub + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 + i32.const 24 + i32.sub + local.get $7 + i32.store local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $0 + i32.const 20 + i32.sub + local.get $7 + i32.store local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $3 i32.add - local.set $1 + i32.const 16 + i32.sub + local.get $7 + i32.store + i32.const 24 local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 + i32.const 4 + i32.and i32.add - local.set $0 + local.set $6 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $6 i32.add - local.set $1 + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $7 + i64.extend_i32_u + local.get $7 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $8 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $9 + local.get $9 + if + local.get $5 + local.get $8 + i64.store + local.get $5 + i32.const 8 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 16 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 24 + i32.add + local.get $8 + i64.store + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 1073741808 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 192 + i32.const 240 + i32.const 23 + i32.const 56 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if local.get $5 - i32.load8_u - i32.store8 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 51 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) local.get $0 - local.tee $5 - i32.const 1 - i32.add + else + i32.const 16 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 52 ;) (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 end - local.get $2 - i32.const 2 - i32.and - if + local.get $0 + i32.const 0 + i32.const 0 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" + i32.store + local.get $0 + ) + (func $~lib/rt/tlsf/checkUsedBlock (; 53 ;) (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 16 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 + i32.load i32.const 1 - i32.add - local.set $0 - local.get $5 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.load offset=4 + i32.const -268435456 + i32.and + i32.eqz + else + i32.const 0 end - local.get $2 - i32.const 1 - i32.and + i32.eqz if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 0 + i32.const 32 + i32.const 570 + i32.const 2 + call $~lib/builtins/abort + unreachable end + local.get $1 ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 + loop $while-continue|0 local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 end - local.get $4 - local.get $3 - i32.add + local.set $5 local.get $5 - i32.le_u - if (result i32) + if + local.get $0 + local.tee $6 i32.const 1 - else + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 local.get $5 - local.get $3 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 i32.add - local.get $4 - i32.le_u + local.set $1 end + local.get $2 + i32.const 1 + i32.and if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 local.get $5 - local.tee $7 i32.const 1 - i32.add + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end end + br $break|2 end - loop $while-continue|1 - local.get $3 - i32.const 8 + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 i32.ge_u - local.set $6 - local.get $6 + local.set $5 + local.get $5 if - local.get $5 - local.get $4 - i64.load - i64.store + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 8 - i32.sub + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load local.set $3 - local.get $5 - i32.const 8 + local.get $0 + i32.const 4 i32.add - local.set $5 local.get $4 - i32.const 8 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 i32.add + i32.load local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 + local.get $0 + i32.const 8 i32.add - local.get $4 local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub + i32.load local.set $3 - local.get $5 - local.get $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i64.load - i64.store + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|4 end end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 if - local.get $5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - local.get $4 - local.get $3 + local.set $1 + local.get $0 + i32.const 16 i32.add - i32.load8_u - i32.store8 + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|5 end end + br $break|2 end end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 + i32.and if local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.const 16 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 i32.const 1 - call $~lib/rt/__visit_members + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - end - ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 59 ;) (param $0 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - ) - (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 60 ;) (param $0 i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - local.set $1 - local.get $1 - local.get $1 - i32.add - drop - local.get $0 - call $~lib/rt/pure/__release - ) - (func $~lib/memory/memory.fill (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - block $~lib/util/memory/memset|inlined.0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - local.set $5 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.eqz - if - br $~lib/util/memory/memset|inlined.0 - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $4 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 i32.const 1 - i32.sub - local.get $4 + i32.add + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 2 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 + local.get $1 + local.tee $5 i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 2 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 2 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 3 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 6 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - i32.const 0 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - i32.sub - i32.const 3 - i32.and - local.set $6 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $6 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.set $5 - local.get $3 - local.get $6 - i32.sub - local.set $3 - local.get $3 - i32.const -4 - i32.and - local.set $3 - i32.const -1 - i32.const 255 - i32.div_u - local.get $4 - i32.const 255 - i32.and - i32.mul - local.set $7 + local.set $1 local.get $5 - local.get $7 - i32.store + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $1 local.get $5 - i32.const 4 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 8 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 12 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 8 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 24 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $1 local.get $5 - i32.const 12 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 16 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 20 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 24 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 28 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 24 - i32.sub - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 20 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 16 - i32.sub - local.get $7 - i32.store - i32.const 24 + local.set $1 local.get $5 - i32.const 4 - i32.and + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.set $6 + local.set $0 local.get $5 - local.get $6 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.set $5 - local.get $3 - local.get $6 - i32.sub - local.set $3 - local.get $7 - i64.extend_i32_u - local.get $7 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - local.set $8 - loop $while-continue|0 - local.get $3 - i32.const 32 - i32.ge_u - local.set $9 - local.get $9 - if - local.get $5 - local.get $8 - i64.store - local.get $5 - i32.const 8 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 16 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 24 - i32.add - local.get $8 - i64.store - local.get $3 - i32.const 32 - i32.sub - local.set $3 - local.get $5 - i32.const 32 - i32.add - local.set $5 - br $while-continue|0 - end - end + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/memory/memory.copy (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $1 - i32.const 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 304 - i32.const 352 - i32.const 23 - i32.const 56 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 local.set $5 - local.get $6 - call $~lib/rt/pure/__release + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $4 + local.get $3 + i32.add + local.get $5 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 + local.get $3 + i32.add + local.get $4 + i32.le_u + end + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 63 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end + (func $~lib/rt/tlsf/freeBlock (; 56 ;) (param $0 i32) (param $1 i32) + (local $2 i32) local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 + i32.load + local.set $2 local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 64 ;) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.const 0 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" + local.get $2 + i32.const 1 + i32.or i32.store local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3754,28 +3290,6 @@ local.get $1 i32.load local.set $4 - local.get $4 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $1 - i32.load offset=4 - i32.const -268435456 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 525 - i32.const 4 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $4 i32.const -4 @@ -3853,12 +3367,14 @@ end local.get $0 local.get $2 + local.get $1 + i32.load offset=8 call $~lib/rt/tlsf/allocateBlock local.set $8 local.get $8 local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.load offset=4 + i32.store offset=4 local.get $8 i32.const 16 i32.add @@ -3872,49 +3388,24 @@ i32.ge_u if local.get $1 - local.get $4 - i32.const 1 - i32.or - i32.store + local.get $8 + call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree + call $~lib/rt/tlsf/freeBlock end local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 66 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 586 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + (func $~lib/rt/tlsf/__realloc (; 58 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.const 16 - i32.sub + call $~lib/rt/tlsf/checkUsedBlock local.get $1 call $~lib/rt/tlsf/reallocateBlock i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3934,8 +3425,8 @@ i32.shr_u i32.gt_u if + i32.const 192 i32.const 304 - i32.const 416 i32.const 14 i32.const 47 call $~lib/builtins/abort @@ -3966,7 +3457,6 @@ if local.get $0 local.get $6 - call $~lib/rt/pure/__retain i32.store local.get $0 local.get $6 @@ -3977,7 +3467,7 @@ i32.store offset=8 end ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 68 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 60 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4004,7 +3494,7 @@ i32.store offset=12 local.get $3 ) - (func $assembly/__tests__/setup/Event/initializeDispatcher (; 69 ;) (result i32) + (func $assembly/__tests__/setup/Event/initializeDispatcher (; 61 ;) (result i32) (local $0 i32) i32.const 0 call $assembly/__tests__/setup/Event/EventDispatcher#constructor @@ -4021,68 +3511,57 @@ drop local.get $0 ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|0 (; 70 ;) (param $0 i32) + (func $start:assembly/__tests__/toInclude.spec~anonymous|0 (; 62 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 464 + i32.const 352 local.set $1 local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#constructor (; 71 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $~lib/array/Array#push (; 72 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 + (func $~lib/rt/__allocArray (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 16 local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 2 - call $~lib/array/ensureSize + call $~lib/rt/tlsf/__alloc + local.set $4 local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add local.get $1 + i32.shl + local.set $5 + local.get $5 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $4 + local.get $6 + call $~lib/rt/pure/__retain i32.store + local.get $4 + local.get $6 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 local.get $0 - local.get $3 i32.store offset=12 local.get $3 + if + local.get $6 + local.get $3 + local.get $5 + call $~lib/memory/memory.copy + end + local.get $4 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 73 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 64 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4125,7 +3604,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 74 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 65 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4138,7 +3617,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 75 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 66 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4174,11 +3653,11 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#get:length (; 76 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 67 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 77 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 68 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4187,53 +3666,140 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 78 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 69 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 656 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $0 + local.get $1 + call $~lib/array/Array#__unchecked_get + local.set $2 + local.get $2 + ) + (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 70 ;) (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + call $assembly/internal/report/Actual/getStackTrace + global.set $assembly/internal/report/Actual/Actual.stackTrace + local.get $0 + local.set $1 + local.get $1 + call $~lib/rt/pure/__retain + drop + global.get $assembly/internal/report/Actual/Actual.isManaged + if + global.get $assembly/internal/report/Actual/Actual.reference + call $~lib/rt/pure/__release + end + local.get $1 + global.set $assembly/internal/report/Actual/Actual.reference + i32.const 1 + global.set $assembly/internal/report/Actual/Actual.isManaged + i32.const 5 + global.set $assembly/internal/report/Actual/Actual.type + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/assert/assert (; 71 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 768 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/array/Array#__unchecked_get - local.set $2 - local.get $2 + call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 79 ;) (param $0 i32) - (local $1 i32) + (func $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array> (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - call $assembly/internal/report/Actual/getStackTrace - global.set $assembly/internal/report/Actual/Actual.stackTrace - local.get $0 - local.set $1 - local.get $1 + local.get $3 call $~lib/rt/pure/__retain - drop - global.get $assembly/internal/report/Actual/Actual.isManaged - if - global.get $assembly/internal/report/Actual/Actual.reference - call $~lib/rt/pure/__release + local.set $3 + i32.const 624 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $for-break0 + loop $for-loop|0 + local.get $5 + local.get $0 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $7 + local.get $1 + i32.eq + if + i32.const 1 + local.set $4 + br $for-break0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end end - local.get $1 - global.set $assembly/internal/report/Actual/Actual.reference - i32.const 1 - global.set $assembly/internal/report/Actual/Actual.isManaged - i32.const 5 - global.set $assembly/internal/report/Actual/Actual.type + local.get $4 + if (result i32) + i32.const 624 + call $~lib/rt/pure/__retain + local.tee $5 + else + i32.const 720 + call $~lib/rt/pure/__retain + local.tee $6 + end + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 + local.get $4 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert local.get $0 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.clear (; 80 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 73 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -4253,7 +3819,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 81 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 74 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -4271,120 +3837,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 704 - local.get $4 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - i32.const 0 - local.set $7 - i32.const 0 - local.set $8 - block $for-break0 - loop $for-loop|0 - local.get $8 - local.get $6 - call $~lib/array/Array#get:length - i32.lt_s - local.set $9 - local.get $9 - if - local.get $6 - local.get $8 - call $~lib/array/Array#__get - local.set $10 - local.get $10 - local.get $5 - i32.eq - if - i32.const 1 - local.set $7 - br $for-break0 - end - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 - end - end - end - local.get $7 - if (result i32) - i32.const 704 - call $~lib/rt/pure/__retain - local.tee $8 - else - i32.const 736 - call $~lib/rt/pure/__retain - local.tee $9 - end - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - local.get $4 - local.get $7 - i32.xor - local.set $11 - local.get $3 - call $~lib/rt/pure/__retain - local.set $10 - local.get $11 - i32.eqz - if - local.get $10 - call $~lib/rt/pure/__release - local.get $10 - i32.const 784 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|0 (; 83 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|0 (; 76 ;) (local $0 i32) global.get $assembly/__tests__/toInclude.spec/numberTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 i32.const 2 - i32.const 624 + i32.const 544 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 84 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 77 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4394,18 +3874,18 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|1 (; 85 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|1 (; 78 ;) (local $0 i32) global.get $assembly/__tests__/toInclude.spec/numberTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 i32.const 4 - i32.const 992 + i32.const 976 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4421,14 +3901,14 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 87 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 80 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|2 (; 88 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|2 (; 81 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toInclude.spec/numberTester @@ -4437,14 +3917,14 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 i32.const 4 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|3 (; 89 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|1~anonymous|3 (; 82 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toInclude.spec/numberTester @@ -4453,33 +3933,33 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 i32.const 2 - i32.const 992 + i32.const 976 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|1 (; 90 ;) - i32.const 560 + (func $start:assembly/__tests__/toInclude.spec~anonymous|1 (; 83 ;) + i32.const 480 i32.const 4 call $assembly/internal/Test/it - i32.const 880 + i32.const 864 i32.const 5 - i32.const 1008 + i32.const 992 call $assembly/internal/Test/throws - i32.const 1104 + i32.const 1088 i32.const 6 call $assembly/internal/Test/it - i32.const 1184 + i32.const 1168 i32.const 7 - i32.const 992 + i32.const 976 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 91 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 84 ;) nop ) - (func $assembly/internal/Describe/describe (; 92 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 85 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4493,7 +3973,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#constructor (; 93 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 86 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -4515,7 +3995,7 @@ i32.store offset=12 local.get $0 ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 94 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 87 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -4536,7 +4016,7 @@ f64.store offset=16 local.get $0 ) - (func $~lib/array/Array#push (; 95 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 88 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4572,7 +4052,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 96 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 89 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4615,7 +4095,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 97 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 90 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4628,11 +4108,11 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#get:length (; 98 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 91 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 99 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 92 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4642,15 +4122,15 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 100 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 93 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 656 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -4665,8 +4145,8 @@ if local.get $2 call $~lib/rt/pure/__release - i32.const 1616 - i32.const 416 + i32.const 1600 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -4674,113 +4154,97 @@ end local.get $2 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude (; 101 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array> (; 94 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - i32.const 704 - local.get $4 + i32.const 624 + local.get $2 call $assembly/internal/report/Expected/Expected.report<~lib/string/String> i32.const 0 - local.set $7 + local.set $4 i32.const 0 - local.set $8 + local.set $5 block $for-break0 loop $for-loop|0 - local.get $8 - local.get $6 + local.get $5 + local.get $0 call $~lib/array/Array#get:length i32.lt_s - local.set $9 - local.get $9 + local.set $6 + local.get $6 if - local.get $6 - local.get $8 - call $~lib/array/Array#__get - local.set $10 - local.get $10 + local.get $0 local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $7 + local.get $1 i32.eq if i32.const 1 - local.set $7 - local.get $10 + local.set $4 + local.get $7 call $~lib/rt/pure/__release br $for-break0 end - local.get $10 + local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end end - local.get $7 + local.get $4 if (result i32) - i32.const 704 + i32.const 624 call $~lib/rt/pure/__retain - local.tee $8 + local.tee $5 else - i32.const 736 + i32.const 720 call $~lib/rt/pure/__retain - local.tee $9 + local.tee $6 end call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 local.get $4 - local.get $7 i32.xor - local.set $11 - local.get $3 - call $~lib/rt/pure/__retain - local.set $10 - local.get $11 - i32.eqz - if - local.get $10 - call $~lib/rt/pure/__release - local.get $10 - i32.const 784 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $10 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4788,36 +4252,36 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|0 (; 102 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|0 (; 96 ;) (local $0 i32) global.get $assembly/__tests__/toInclude.spec/referenceTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 global.get $assembly/__tests__/toInclude.spec/two - i32.const 1504 + i32.const 1488 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|1 (; 103 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|1 (; 97 ;) (local $0 i32) global.get $assembly/__tests__/toInclude.spec/referenceTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 global.get $assembly/__tests__/toInclude.spec/four - i32.const 992 + i32.const 976 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 104 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 98 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|2 (; 105 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|2 (; 99 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toInclude.spec/referenceTester @@ -4826,14 +4290,14 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 global.get $assembly/__tests__/toInclude.spec/four - i32.const 2016 + i32.const 2000 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|3 (; 106 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|3 (; 100 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toInclude.spec/referenceTester @@ -4842,14 +4306,14 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 global.get $assembly/__tests__/toInclude.spec/two - i32.const 992 + i32.const 976 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toInclude local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#constructor" (; 107 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#constructor" (; 101 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4892,7 +4356,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 108 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 102 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4905,11 +4369,11 @@ call $~lib/rt/pure/__release local.get $1 ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" (; 109 ;) (param $0 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" (; 103 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 110 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 104 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4918,15 +4382,15 @@ i32.add i32.load ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 111 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 105 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 656 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -4939,8 +4403,8 @@ local.get $2 i32.eqz if - i32.const 1616 - i32.const 416 + i32.const 1600 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -4948,128 +4412,110 @@ end local.get $2 ) - (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toInclude" (; 112 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func "$assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 106 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $0 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - i32.const 704 - local.get $4 + i32.const 624 + local.get $2 call $assembly/internal/report/Expected/Expected.report<~lib/string/String> i32.const 0 - local.set $7 + local.set $4 i32.const 0 - local.set $8 + local.set $5 block $for-break0 loop $for-loop|0 - local.get $8 - local.get $6 + local.get $5 + local.get $0 call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" i32.lt_s - local.set $9 - local.get $9 + local.set $6 + local.get $6 if - local.get $6 - local.get $8 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" - local.set $10 - local.get $10 + local.get $0 local.get $5 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" + local.set $7 + local.get $7 + local.get $1 i32.eq if i32.const 1 - local.set $7 + local.set $4 br $for-break0 end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end end - local.get $7 + local.get $4 if (result i32) - i32.const 704 + i32.const 624 call $~lib/rt/pure/__retain - local.tee $8 + local.tee $5 else - i32.const 736 + i32.const 720 call $~lib/rt/pure/__retain - local.tee $9 + local.tee $6 end call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 local.get $4 - local.get $7 i32.xor - local.set $11 local.get $3 - call $~lib/rt/pure/__retain - local.set $10 - local.get $11 - i32.eqz - if - local.get $10 - call $~lib/rt/pure/__release - local.get $10 - i32.const 784 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $10 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + ) + (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toInclude" (; 107 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call "$assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|4 (; 113 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|4 (; 108 ;) (local $0 i32) global.get $assembly/__tests__/toInclude.spec/eventDispatcher i32.load call "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" local.tee $0 global.get $assembly/__tests__/setup/Event/listener - i32.const 992 + i32.const 976 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toInclude" local.get $0 call $~lib/rt/pure/__release ) - (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" (; 114 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" (; 109 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|5 (; 115 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|5 (; 110 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toInclude.spec/eventDispatcher @@ -5079,26 +4525,26 @@ call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" local.tee $1 global.get $assembly/__tests__/toInclude.spec/newListener - i32.const 992 + i32.const 976 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toInclude" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|6 (; 116 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|6 (; 111 ;) (local $0 i32) global.get $assembly/__tests__/toInclude.spec/eventDispatcher i32.load call "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" local.tee $0 global.get $assembly/__tests__/toInclude.spec/newListener - i32.const 992 + i32.const 976 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toInclude" local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|7 (; 117 ;) + (func $start:assembly/__tests__/toInclude.spec~anonymous|2~anonymous|7 (; 112 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toInclude.spec/eventDispatcher @@ -5108,63 +4554,56 @@ call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" local.tee $1 global.get $assembly/__tests__/setup/Event/listener - i32.const 992 + i32.const 976 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toInclude" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toInclude.spec~anonymous|2 (; 118 ;) - i32.const 1424 + (func $start:assembly/__tests__/toInclude.spec~anonymous|2 (; 113 ;) + i32.const 1408 i32.const 10 call $assembly/internal/Test/it - i32.const 1728 + i32.const 1712 i32.const 11 - i32.const 1840 + i32.const 1824 call $assembly/internal/Test/throws - i32.const 1936 + i32.const 1920 i32.const 12 call $assembly/internal/Test/it - i32.const 2144 + i32.const 2128 i32.const 13 - i32.const 992 + i32.const 976 call $assembly/internal/Test/throws - i32.const 2304 + i32.const 2288 i32.const 14 call $assembly/internal/Test/it - i32.const 2400 + i32.const 2384 i32.const 15 call $assembly/internal/Test/it - i32.const 2304 + i32.const 2288 i32.const 16 - i32.const 992 + i32.const 976 call $assembly/internal/Test/throws - i32.const 2304 + i32.const 2288 i32.const 17 - i32.const 992 + i32.const 976 call $assembly/internal/Test/throws ) - (func $start:assembly/__tests__/toInclude.spec (; 119 ;) + (func $start:assembly/__tests__/toInclude.spec (; 114 ;) + (local $0 i32) + (local $1 i32) call $assembly/__tests__/setup/Event/initializeDispatcher global.set $assembly/__tests__/toInclude.spec/eventDispatcher - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - global.set $assembly/__tests__/toInclude.spec/numberTester - global.get $assembly/__tests__/toInclude.spec/numberTester - i32.const 1 - call $~lib/array/Array#push - drop - global.get $assembly/__tests__/toInclude.spec/numberTester - i32.const 2 - call $~lib/array/Array#push - drop - global.get $assembly/__tests__/toInclude.spec/numberTester i32.const 3 - call $~lib/array/Array#push - drop - i32.const 496 + i32.const 2 + i32.const 6 + i32.const 384 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + global.set $assembly/__tests__/toInclude.spec/numberTester + i32.const 416 i32.const 8 call $assembly/internal/Describe/describe i32.const 0 @@ -5207,21 +4646,21 @@ f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor global.set $assembly/__tests__/toInclude.spec/four - i32.const 1344 + i32.const 1328 i32.const 18 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 120 ;) + (func $assembly/index/__ready (; 115 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 121 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 116 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 122 ;) + (func $assembly/internal/report/Actual/__sendActual (; 117 ;) (local $0 i32) block $break|0 block $case9|0 @@ -5329,7 +4768,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 123 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 118 ;) (local $0 i32) block $break|0 block $case11|0 @@ -5468,24 +4907,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 124 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 119 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 125 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 120 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 126 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 121 ;) (result i32) i32.const 12 ) - (func $assembly/internal/Expectation/__cleanup (; 127 ;) + (func $assembly/internal/Expectation/__cleanup (; 122 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 128 ;) + (func $~start (; 123 ;) global.get $~started if return @@ -5495,143 +4934,117 @@ end call $start:assembly/__tests__/toInclude.spec ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 129 ;) (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/array/Array#__visit_impl (; 130 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 124 ;) + return ) - (func $~lib/rt/pure/__visit (; 131 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/decrement (; 125 ;) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz if - return + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 16 - i32.sub - local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 126 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 127 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 128 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/array/Array#__visit_impl (; 132 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 129 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5670,10 +5083,10 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 133 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 130 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 134 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 131 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toIncludeEqual.spec.ts b/packages/assembly/assembly/__tests__/toIncludeEqual.spec.ts index e967d0f1..a9c65424 100644 --- a/packages/assembly/assembly/__tests__/toIncludeEqual.spec.ts +++ b/packages/assembly/assembly/__tests__/toIncludeEqual.spec.ts @@ -2,32 +2,29 @@ import { Vec3 } from "./setup/Vec3"; import { listener, Listener, Event, initializeDispatcher } from "./setup/Event"; var eventDispatcher = initializeDispatcher(); -const newListener: Listener = (event: Event) => { let x = "hello" } +const newListener: Listener = (event: Event): void => { let x = "hello" } -let numberTester: i32[] = new Array(); -numberTester.push(1); -numberTester.push(2); -numberTester.push(3); +let numberTester = [1, 2, 3]; describe("toIncludeEqual value arrays", () => { it("should include numbers", () => { - expect(numberTester).toIncludeEqual(2, "numberTester should include 2"); + expect(numberTester).toIncludeEqual(2, "numberTester should include 2"); }); throws("when numberTester doesn't include a number", () => { - expect(numberTester).toIncludeEqual(4); + expect(numberTester).toIncludeEqual(4); }, "numberTester should not include 4"); it("should not include numbers", () => { - expect(numberTester).not.toIncludeEqual(4, "numberTester should not include 4"); + expect(numberTester).not.toIncludeEqual(4, "numberTester should not include 4"); }); throws("when numberTester includes a number but the expectation is negated", () => { - expect(numberTester).not.toIncludeEqual(2); + expect(numberTester).not.toIncludeEqual(2); }); }); -let referenceTester: Vec3[] = new Array(); +let referenceTester = new Array(0); let one = new Vec3(1,2,3); let two = new Vec3(1,2,3); let three = new Vec3(1,2,3); @@ -45,14 +42,14 @@ describe("toIncludeEqual reference arrays", () => { * This test verifies that pointer equality "strictEqual"s a value. */ it("should include a reference", () => { - expect(referenceTester).toIncludeEqual(two, "referenceTester should include reference two"); + expect(referenceTester).toIncludeEqual(two, "referenceTester should include reference two"); }); /** * This test throws because two is included as a reference to referenceTester. */ throws("when referenceTester includes a reference but the expectation is negated", () => { - expect(referenceTester).not.toIncludeEqual(two); + expect(referenceTester).not.toIncludeEqual(two); }); /** @@ -60,7 +57,7 @@ describe("toIncludeEqual reference arrays", () => { * array. */ it("should include a reference", () => { - expect(referenceTester).toIncludeEqual(new Vec3(1, 2, 3), "referenceTester should include reference two"); + expect(referenceTester).toIncludeEqual(new Vec3(1, 2, 3), "referenceTester should include reference two"); }); /** @@ -68,14 +65,14 @@ describe("toIncludeEqual reference arrays", () => { * value. */ throws("when referenceTester doesn't include a reference", () => { - expect(referenceTester).toIncludeEqual(new Vec3(4, 5, 6)); + expect(referenceTester).toIncludeEqual(new Vec3(4, 5, 6)); }, "numberTester should not include four"); /** * This test validates there is no reference that matches any of the elements in referenceTester. */ it("should not include a reference", () => { - expect(referenceTester).not + expect(referenceTester).not .toIncludeEqual(new Vec3(4, 5, 6), "referenceTester should not include reference four"); }); @@ -84,32 +81,32 @@ describe("toIncludeEqual reference arrays", () => { * array. */ throws("when referenceTester includes a reference but the expectation is negated", () => { - expect(referenceTester).not.toIncludeEqual(new Vec3(1, 2, 3)); + expect(referenceTester).not.toIncludeEqual(new Vec3(1, 2, 3)); }); /** * Should delegate function pointers to "toInclude". */ it("should include a function pointer", () => { - expect>(eventDispatcher.events).toIncludeEqual(listener); + expect(eventDispatcher.events).toIncludeEqual(listener); }); it("should handle case when negated and not included", () => { - expect>(eventDispatcher.events).not.toIncludeEqual(newListener); + expect(eventDispatcher.events).not.toIncludeEqual(newListener); }); /** * Throws if function pointer is not included by delegating to "toInclude". */ throws("should include a function pointer", () => { - expect>(eventDispatcher.events).toIncludeEqual(newListener); + expect(eventDispatcher.events).toIncludeEqual(newListener); }); /** * Throws if function pointer is not included by delegating to "toInclude". */ throws("should include a function pointer", () => { - expect>(eventDispatcher.events).not.toIncludeEqual(listener); + expect(eventDispatcher.events).not.toIncludeEqual(listener); }); }); @@ -119,41 +116,38 @@ for (let i = 0; i < 10; i++) typedarray[i] = i; describe("TypedArrays", () => { it("should include values", () => { - expect(typedarray).toIncludeEqual(5); + expect(typedarray).toIncludeEqual(5); }); itThrows("when the value is included", () => { - expect(typedarray).not.toIncludeEqual(5); + expect(typedarray).not.toIncludeEqual(5); }, "The underlying array contains the value,"); it("should not include values", () => { - expect(typedarray).not.toIncludeEqual(11); + expect(typedarray).not.toIncludeEqual(11); }); itThrows("when the value is included", () => { - expect(typedarray).toIncludeEqual(11); + expect(typedarray).toIncludeEqual(11); }, "The value is not included."); }); -let stringRefs = new Array(0); -stringRefs.push("one"); -stringRefs.push("two"); -stringRefs.push("three"); +let stringRefs = ["one", "two", "three"]; describe("arrays with strings", () => { it("should include values", () => { - expect(stringRefs).toIncludeEqual("three"); + expect(stringRefs).toIncludeEqual("three"); }); itThrows("when the value is included", () => { - expect(stringRefs).not.toIncludeEqual("three"); + expect(stringRefs).not.toIncludeEqual("three"); }, "The underlying array contains the value,"); it("should not include values", () => { - expect(stringRefs).not.toIncludeEqual("four"); + expect(stringRefs).not.toIncludeEqual("four"); }); itThrows("when the value is included", () => { - expect(stringRefs).toIncludeEqual("four"); + expect(stringRefs).toIncludeEqual("four"); }, "The value is not included."); }); diff --git a/packages/assembly/assembly/__tests__/toIncludeEqual.spec.wat b/packages/assembly/assembly/__tests__/toIncludeEqual.spec.wat index ba44efad..bb1d6148 100644 --- a/packages/assembly/assembly/__tests__/toIncludeEqual.spec.wat +++ b/packages/assembly/assembly/__tests__/toIncludeEqual.spec.wat @@ -1,21 +1,71 @@ (module (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 224) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 288) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 336) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00h\00e\00l\00l\00o\00") + (data (i32.const 368) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 400) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00E\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00a\00r\00r\00a\00y\00s\00") + (data (i32.const 480) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") + (data (i32.const 544) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \002\00") + (data (i32.const 624) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00c\00l\00u\00d\00e\00d\00") + (data (i32.const 656) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") + (data (i32.const 720) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00N\00o\00t\00 \00I\00n\00c\00l\00u\00d\00e\00d\00") + (data (i32.const 768) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 864) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00n\00u\00m\00b\00e\00r\00") + (data (i32.const 976) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 992) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \004\00") + (data (i32.const 1088) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") + (data (i32.const 1168) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00n\00u\00m\00b\00e\00r\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 1328) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00E\00q\00u\00a\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00a\00r\00r\00a\00y\00s\00") + (data (i32.const 1408) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 1488) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00w\00o\00") + (data (i32.const 1600) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00c\00l\00u\00d\00e\00d\00 \00R\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 1664) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") + (data (i32.const 1776) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 1856) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00N\00o\00t\00 \00I\00n\00c\00l\00u\00d\00e\00d\00 \00R\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 1920) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 2080) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 2192) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00f\00o\00u\00r\00") + (data (i32.const 2288) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 2368) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00f\00o\00u\00r\00") + (data (i32.const 2496) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00") + (data (i32.const 2592) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00c\00a\00s\00e\00 \00w\00h\00e\00n\00 \00n\00e\00g\00a\00t\00e\00d\00 \00a\00n\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00d\00") + (data (i32.const 2704) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 2768) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00s\00") + (data (i32.const 2816) "*\00\00\00\01\00\00\00\01\00\00\00*\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00v\00a\00l\00u\00e\00s\00") + (data (i32.const 2880) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00i\00n\00c\00l\00u\00d\00e\00d\00") + (data (i32.const 2960) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00T\00h\00e\00 \00u\00n\00d\00e\00r\00l\00y\00i\00n\00g\00 \00a\00r\00r\00a\00y\00 \00c\00o\00n\00t\00a\00i\00n\00s\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00,\00") + (data (i32.const 3056) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00v\00a\00l\00u\00e\00s\00") + (data (i32.const 3136) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00T\00h\00e\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00d\00.\00") + (data (i32.const 3216) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00") + (data (i32.const 3248) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00") + (data (i32.const 3280) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00") + (data (i32.const 3312) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\a0\0c\00\00\c0\0c\00\00\e0\0c\00\00") + (data (i32.const 3344) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00a\00r\00r\00a\00y\00s\00 \00w\00i\00t\00h\00 \00s\00t\00r\00i\00n\00g\00s\00") + (data (i32.const 3408) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00") + (data (i32.const 3440) "\11\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) @@ -44,64 +94,15 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 336) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 400) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 448) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00h\00e\00l\00l\00o\00") - (data (i32.const 480) "6\00\00\00\01\00\00\00\01\00\00\006\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00E\00q\00u\00a\00l\00 \00v\00a\00l\00u\00e\00 \00a\00r\00r\00a\00y\00s\00") - (data (i32.const 560) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") - (data (i32.const 624) ":\00\00\00\01\00\00\00\01\00\00\00:\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \002\00") - (data (i32.const 704) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00c\00l\00u\00d\00e\00d\00") - (data (i32.const 736) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00N\00o\00t\00 \00I\00n\00c\00l\00u\00d\00e\00d\00") - (data (i32.const 784) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 880) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00n\00u\00m\00b\00e\00r\00") - (data (i32.const 992) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 1008) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \004\00") - (data (i32.const 1104) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00n\00u\00m\00b\00e\00r\00s\00") - (data (i32.const 1184) "\84\00\00\00\01\00\00\00\01\00\00\00\84\00\00\00w\00h\00e\00n\00 \00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00n\00u\00m\00b\00e\00r\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 1344) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00t\00o\00I\00n\00c\00l\00u\00d\00e\00E\00q\00u\00a\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00a\00r\00r\00a\00y\00s\00") - (data (i32.const 1424) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 1504) "X\00\00\00\01\00\00\00\01\00\00\00X\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00t\00w\00o\00") - (data (i32.const 1616) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00c\00l\00u\00d\00e\00d\00 \00R\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 1680) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 1792) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00N\00o\00t\00 \00I\00n\00c\00l\00u\00d\00e\00d\00 \00R\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 1856) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00i\00n\00c\00l\00u\00d\00e\00s\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 2016) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00w\00h\00e\00n\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00d\00o\00e\00s\00n\00\'\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 2128) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00n\00u\00m\00b\00e\00r\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00f\00o\00u\00r\00") - (data (i32.const 2224) "<\00\00\00\01\00\00\00\01\00\00\00<\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 2304) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00r\00e\00f\00e\00r\00e\00n\00c\00e\00T\00e\00s\00t\00e\00r\00 \00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00f\00o\00u\00r\00") - (data (i32.const 2432) "B\00\00\00\01\00\00\00\01\00\00\00B\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00a\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00") - (data (i32.const 2528) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00s\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00c\00a\00s\00e\00 \00w\00h\00e\00n\00 \00n\00e\00g\00a\00t\00e\00d\00 \00a\00n\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00d\00") - (data (i32.const 2640) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 2704) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00s\00") - (data (i32.const 2752) "*\00\00\00\01\00\00\00\01\00\00\00*\00\00\00s\00h\00o\00u\00l\00d\00 \00i\00n\00c\00l\00u\00d\00e\00 \00v\00a\00l\00u\00e\00s\00") - (data (i32.const 2816) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00w\00h\00e\00n\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00i\00n\00c\00l\00u\00d\00e\00d\00") - (data (i32.const 2896) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00T\00h\00e\00 \00u\00n\00d\00e\00r\00l\00y\00i\00n\00g\00 \00a\00r\00r\00a\00y\00 \00c\00o\00n\00t\00a\00i\00n\00s\00 \00t\00h\00e\00 \00v\00a\00l\00u\00e\00,\00") - (data (i32.const 2992) "2\00\00\00\01\00\00\00\01\00\00\002\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00 \00v\00a\00l\00u\00e\00s\00") - (data (i32.const 3072) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00T\00h\00e\00 \00v\00a\00l\00u\00e\00 \00i\00s\00 \00n\00o\00t\00 \00i\00n\00c\00l\00u\00d\00e\00d\00.\00") - (data (i32.const 3152) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00") - (data (i32.const 3184) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00") - (data (i32.const 3216) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00") - (data (i32.const 3248) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00a\00r\00r\00a\00y\00s\00 \00w\00i\00t\00h\00 \00s\00t\00r\00i\00n\00g\00s\00") - (data (i32.const 3312) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00") - (data (i32.const 3344) "\11\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (table $0 31 funcref) (elem (i32.const 1) $start:assembly/__tests__/setup/Event~anonymous|0 $start:assembly/__tests__/setup/Event~anonymous|1 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|0 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|0 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|1 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|2 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|3 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1 $start:assembly/internal/noOp~anonymous|0 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|0 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|1 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|2 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|3 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|4 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|5 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|6 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|7 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|8 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|9 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|0 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|1 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|2 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|3 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|0 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|1 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|2 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|3 $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/setup/Event/listener i32 (i32.const 1)) (global $assembly/__tests__/setup/Event/anotherListener i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toIncludeEqual.spec/eventDispatcher (mut i32) (i32.const 0)) (global $assembly/__tests__/toIncludeEqual.spec/newListener i32 (i32.const 3)) (global $assembly/__tests__/toIncludeEqual.spec/numberTester (mut i32) (i32.const 0)) @@ -135,8 +136,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 3344)) - (global $~lib/heap/__heap_base i32 (i32.const 3484)) + (global $~lib/rt/__rtti_base i32 (i32.const 3440)) + (global $~lib/heap/__heap_base i32 (i32.const 3580)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -155,7 +156,7 @@ (export "__disableRTrace" (func $assembly/internal/RTrace/__disableRTrace)) (export "__getUsizeArrayId" (func $assembly/internal/RTrace/__getUsizeArrayId)) (export "__cleanup" (func $assembly/internal/Expectation/__cleanup)) - (func $~lib/rt/tlsf/removeBlock (; 33 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 34 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -365,7 +366,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 34 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 35 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -715,7 +716,7 @@ local.get $7 i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 35 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -863,7 +864,7 @@ call $~lib/rt/tlsf/insertBlock i32.const 1 ) - (func $~lib/rt/tlsf/maybeInitialize (; 36 ;) (result i32) + (func $~lib/rt/tlsf/maybeInitialize (; 37 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1013,7 +1014,7 @@ end local.get $0 ) - (func $~lib/rt/tlsf/prepareSize (; 37 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 38 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1042,7 +1043,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 38 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 39 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1225,296 +1226,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 40 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1598,7 +1310,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1693,9 +1405,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1709,12 +1421,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1725,20 +1437,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1751,13 +1463,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1769,11 +1481,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1784,37 +1496,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 44 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1832,7 +1542,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1853,13 +1563,13 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 45 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1871,1892 +1581,1720 @@ end local.get $0 ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + (func $~lib/rt/pure/__release (; 46 ;) (param $0 i32) local.get $0 - local.get $1 - i32.load + global.get $~lib/heap/__heap_base i32.gt_u if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end + ) + (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 47 ;) (param $0 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 48 ;) (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + local.set $1 + local.get $1 local.get $1 - i32.const 4 i32.add + drop local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + call $~lib/rt/pure/__release ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - loop $while-continue|0 + (local $7 i32) + (local $8 i64) + (local $9 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 + local.set $3 + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 end - local.set $5 local.get $5 + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + br $~lib/util/memory/memset|inlined.0 end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end + local.get $5 + i32.const 1 + i32.add + local.get $4 + i32.store8 + local.get $5 + i32.const 2 + i32.add + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 end - local.get $2 + local.get $5 + i32.const 3 + i32.add + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 i32.const 8 - i32.and + i32.le_u if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 4 + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $6 + local.get $5 + local.get $6 + i32.add + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 i32.and + i32.mul + local.set $7 + local.get $5 + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 8 + i32.le_u if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 2 - i32.and + local.get $5 + i32.const 4 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 8 + i32.add + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 12 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 8 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 24 + i32.le_u if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 1 + local.get $5 + i32.const 12 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 16 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 20 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 24 + i32.add + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 28 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 24 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 20 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 16 + i32.sub + local.get $7 + i32.store + i32.const 24 + local.get $5 + i32.const 4 i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.add + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $7 + i64.extend_i32_u + local.get $7 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $8 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $9 + local.get $9 + if + local.get $5 + local.get $8 + i64.store + local.get $5 + i32.const 8 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 16 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 24 + i32.add + local.get $8 + i64.store + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end end - return end + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 1073741808 local.get $2 - i32.const 32 - i32.ge_u + i32.shr_u + i32.gt_u if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 192 + i32.const 240 + i32.const 23 + i32.const 56 + call $~lib/builtins/abort + unreachable end + local.get $1 local.get $2 - i32.const 4 - i32.and + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + i32.eqz if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 51 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + else + i32.const 16 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain end - local.get $2 + local.get $1 i32.const 2 - i32.and + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 52 ;) (param $0 i32) (result i32) + local.get $0 + i32.eqz if - local.get $0 - local.tee $5 - i32.const 1 - i32.add + i32.const 4 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + end + local.get $0 + i32.const 0 + i32.const 0 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" + i32.store + local.get $0 + ) + (func $~lib/rt/tlsf/checkUsedBlock (; 53 ;) (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 16 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) local.get $1 - local.tee $5 + i32.load i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.and + i32.eqz + else + i32.const 0 end - local.get $2 - i32.const 1 - i32.and + if (result i32) + local.get $1 + i32.load offset=4 + i32.const -268435456 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 0 + i32.const 32 + i32.const 570 + i32.const 2 + call $~lib/builtins/abort + unreachable end + local.get $1 ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 + loop $while-continue|0 local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 end - local.get $4 - local.get $3 - i32.add + local.set $5 local.get $5 - i32.le_u - if (result i32) + if + local.get $0 + local.tee $6 i32.const 1 - else + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 local.get $5 - local.get $3 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 i32.add - local.get $4 - i32.le_u + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 end + local.get $2 + i32.const 4 + i32.and if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 end - local.get $5 - local.get $4 - i32.lt_u + local.get $2 + i32.const 2 + i32.and if - local.get $4 - i32.const 7 - i32.and + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 + i32.const 1 + i32.eq + br_if $case0|2 local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.tee $7 + local.get $1 + local.tee $5 i32.const 1 i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 i32.const 1 i32.add - local.set $4 - local.get $7 + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - local.get $3 + local.get $0 + local.tee $5 i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 if - br $~lib/util/memory/memmove|inlined.0 + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 end - local.get $5 + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 i32.add local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 + i32.load + local.set $4 + local.get $0 i32.const 8 - i32.sub - local.set $3 - local.get $5 + i32.add local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i64.load - i64.store + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|4 end end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 if - local.get $5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 i32.add local.get $4 + i32.const 8 + i32.shr_u local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end end local.get $2 - i32.const 1 - i32.eq + i32.const 16 + i32.and if local.get $0 - i32.const 16 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 i32.const 1 - call $~lib/rt/__visit_members + i32.add + local.set $0 + local.get $5 local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - end - ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 59 ;) (param $0 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - ) - (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 60 ;) (param $0 i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - local.set $1 - local.get $1 - local.get $1 - i32.add - drop - local.get $0 - call $~lib/rt/pure/__release - ) - (func $~lib/memory/memory.fill (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - block $~lib/util/memory/memset|inlined.0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - local.set $5 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.eqz - if - br $~lib/util/memory/memset|inlined.0 - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $4 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 i32.const 1 - i32.sub - local.get $4 + i32.add + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 2 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 + local.get $1 + local.tee $5 i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 2 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 2 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 3 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 6 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $4 + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - i32.const 0 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.sub - i32.const 3 - i32.and - local.set $6 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $6 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.set $5 - local.get $3 - local.get $6 - i32.sub - local.set $3 - local.get $3 - i32.const -4 - i32.and - local.set $3 - i32.const -1 - i32.const 255 - i32.div_u - local.get $4 - i32.const 255 - i32.and - i32.mul - local.set $7 + local.set $0 local.get $5 - local.get $7 - i32.store + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 4 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 8 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 12 - i32.sub - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 8 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 24 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $0 local.get $5 - i32.const 12 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 16 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 20 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 24 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 28 - i32.sub - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 24 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 20 - i32.sub - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 16 - i32.sub - local.get $7 - i32.store - i32.const 24 + local.set $0 local.get $5 - i32.const 4 - i32.and + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.set $6 + local.set $1 local.get $5 - local.get $6 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 local.set $5 - local.get $3 - local.get $6 - i32.sub + local.get $1 + local.set $4 + local.get $2 local.set $3 - local.get $7 - i64.extend_i32_u - local.get $7 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - local.set $8 - loop $while-continue|0 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $4 + local.get $3 + i32.add + local.get $5 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 local.get $3 - i32.const 32 - i32.ge_u - local.set $9 - local.get $9 + i32.add + local.get $4 + i32.le_u + end + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq if - local.get $5 - local.get $8 - i64.store - local.get $5 - i32.const 8 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 16 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 24 - i32.add - local.get $8 - i64.store + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 local.get $3 - i32.const 32 - i32.sub - local.set $3 - local.get $5 - i32.const 32 - i32.add - local.set $5 - br $while-continue|0 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 304 - i32.const 352 - i32.const 23 - i32.const 56 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 + (func $~lib/rt/tlsf/freeBlock (; 56 ;) (param $0 i32) (param $1 i32) + (local $2 i32) local.get $1 - call $~lib/memory/memory.fill - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 63 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 + local.set $2 local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 64 ;) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.const 0 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" + local.get $2 + i32.const 1 + i32.or i32.store local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3769,28 +3307,6 @@ local.get $1 i32.load local.set $4 - local.get $4 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $1 - i32.load offset=4 - i32.const -268435456 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 525 - i32.const 4 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $4 i32.const -4 @@ -3868,12 +3384,14 @@ end local.get $0 local.get $2 + local.get $1 + i32.load offset=8 call $~lib/rt/tlsf/allocateBlock local.set $8 local.get $8 local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.load offset=4 + i32.store offset=4 local.get $8 i32.const 16 i32.add @@ -3887,49 +3405,24 @@ i32.ge_u if local.get $1 - local.get $4 - i32.const 1 - i32.or - i32.store + local.get $8 + call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree + call $~lib/rt/tlsf/freeBlock end local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 66 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 586 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + (func $~lib/rt/tlsf/__realloc (; 58 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.const 16 - i32.sub + call $~lib/rt/tlsf/checkUsedBlock local.get $1 call $~lib/rt/tlsf/reallocateBlock i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3949,8 +3442,8 @@ i32.shr_u i32.gt_u if + i32.const 192 i32.const 304 - i32.const 416 i32.const 14 i32.const 47 call $~lib/builtins/abort @@ -3981,7 +3474,6 @@ if local.get $0 local.get $6 - call $~lib/rt/pure/__retain i32.store local.get $0 local.get $6 @@ -3992,7 +3484,7 @@ i32.store offset=8 end ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 68 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 60 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4019,7 +3511,7 @@ i32.store offset=12 local.get $3 ) - (func $assembly/__tests__/setup/Event/initializeDispatcher (; 69 ;) (result i32) + (func $assembly/__tests__/setup/Event/initializeDispatcher (; 61 ;) (result i32) (local $0 i32) i32.const 0 call $assembly/__tests__/setup/Event/EventDispatcher#constructor @@ -4036,68 +3528,57 @@ drop local.get $0 ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|0 (; 70 ;) (param $0 i32) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|0 (; 62 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 464 + i32.const 352 local.set $1 local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#constructor (; 71 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $~lib/array/Array#push (; 72 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 + (func $~lib/rt/__allocArray (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 16 local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 2 - call $~lib/array/ensureSize + call $~lib/rt/tlsf/__alloc + local.set $4 local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add local.get $1 + i32.shl + local.set $5 + local.get $5 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $4 + local.get $6 + call $~lib/rt/pure/__retain i32.store + local.get $4 + local.get $6 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 local.get $0 - local.get $3 i32.store offset=12 local.get $3 + if + local.get $6 + local.get $3 + local.get $5 + call $~lib/memory/memory.copy + end + local.get $4 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 73 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 64 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4140,7 +3621,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 74 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 65 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4153,7 +3634,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 75 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 66 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4181,74 +3662,179 @@ call $~lib/rt/pure/__release end local.get $2 - global.set $assembly/internal/report/Expected/Expected.reference - i32.const 1 - global.set $assembly/internal/report/Expected/Expected.isManaged - i32.const 5 - global.set $assembly/internal/report/Expected/Expected.type + global.set $assembly/internal/report/Expected/Expected.reference + i32.const 1 + global.set $assembly/internal/report/Expected/Expected.isManaged + i32.const 5 + global.set $assembly/internal/report/Expected/Expected.type + local.get $0 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (; 67 ;) (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (; 68 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#__get (; 69 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 672 + i32.const 304 + i32.const 93 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__unchecked_get + local.set $2 + local.get $2 + ) + (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 70 ;) (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + call $assembly/internal/report/Actual/getStackTrace + global.set $assembly/internal/report/Actual/Actual.stackTrace + local.get $0 + local.set $1 + local.get $1 + call $~lib/rt/pure/__retain + drop + global.get $assembly/internal/report/Actual/Actual.isManaged + if + global.get $assembly/internal/report/Actual/Actual.reference + call $~lib/rt/pure/__release + end + local.get $1 + global.set $assembly/internal/report/Actual/Actual.reference + i32.const 1 + global.set $assembly/internal/report/Actual/Actual.isManaged + i32.const 5 + global.set $assembly/internal/report/Actual/Actual.type + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/assert/assert (; 71 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 784 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array> (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 640 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $for-break0 + loop $for-loop|0 + local.get $5 + local.get $0 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $7 + local.get $1 + i32.eq + if + i32.const 1 + local.set $4 + br $for-break0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + end + local.get $4 + if (result i32) + i32.const 640 + call $~lib/rt/pure/__retain + local.tee $5 + else + i32.const 736 + call $~lib/rt/pure/__retain + local.tee $6 + end + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 + local.get $4 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert local.get $0 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/array/Array#get:length (; 76 ;) (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (; 77 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/array/Array#__get (; 78 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 192 - i32.const 416 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - local.set $2 - local.get $2 - ) - (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 79 ;) (param $0 i32) - (local $1 i32) + (func $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array> (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - call $assembly/internal/report/Actual/getStackTrace - global.set $assembly/internal/report/Actual/Actual.stackTrace - local.get $0 - local.set $1 - local.get $1 + local.get $3 call $~lib/rt/pure/__retain - drop - global.get $assembly/internal/report/Actual/Actual.isManaged - if - global.get $assembly/internal/report/Actual/Actual.reference - call $~lib/rt/pure/__release - end + local.set $3 + local.get $0 local.get $1 - global.set $assembly/internal/report/Actual/Actual.reference - i32.const 1 - global.set $assembly/internal/report/Actual/Actual.isManaged - i32.const 5 - global.set $assembly/internal/report/Actual/Actual.type + local.get $2 + local.get $3 + call $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array> local.get $0 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return ) - (func $assembly/internal/report/Actual/Actual.clear (; 80 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 74 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -4268,7 +3854,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 81 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 75 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -4286,141 +3872,34 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 - block $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array>|inlined.0 - local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $~lib/rt/pure/__retain - local.set $10 - local.get $5 - local.set $9 - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - i32.const 720 - local.get $8 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - i32.const 0 - local.set $11 - i32.const 0 - local.set $12 - block $for-break0 - loop $for-loop|0 - local.get $12 - local.get $10 - call $~lib/array/Array#get:length - i32.lt_s - local.set $13 - local.get $13 - if - local.get $10 - local.get $12 - call $~lib/array/Array#__get - local.set $14 - local.get $14 - local.get $9 - i32.eq - if - i32.const 1 - local.set $11 - br $for-break0 - end - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|0 - end - end - end - local.get $11 - if (result i32) - i32.const 720 - call $~lib/rt/pure/__retain - local.tee $12 - else - i32.const 752 - call $~lib/rt/pure/__retain - local.tee $13 - end - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - local.get $8 - local.get $11 - i32.xor - local.set $15 - local.get $7 - call $~lib/rt/pure/__retain - local.set $14 - local.get $15 - i32.eqz - if - local.get $14 - call $~lib/rt/pure/__release - local.get $14 - i32.const 800 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $14 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array>|inlined.0 - end + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|0 (; 83 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|0 (; 77 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/numberTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 i32.const 2 - i32.const 640 + i32.const 560 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 84 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 78 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4430,18 +3909,18 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|1 (; 85 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|1 (; 79 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/numberTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 i32.const 4 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4457,14 +3936,14 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 87 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 81 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|2 (; 88 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|2 (; 82 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/numberTester @@ -4473,14 +3952,14 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 i32.const 4 - i32.const 1024 + i32.const 1008 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|3 (; 89 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1~anonymous|3 (; 83 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/numberTester @@ -4489,33 +3968,33 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 i32.const 2 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1 (; 90 ;) - i32.const 576 + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|1 (; 84 ;) + i32.const 496 i32.const 4 call $assembly/internal/Test/it - i32.const 896 + i32.const 880 i32.const 5 - i32.const 1024 + i32.const 1008 call $assembly/internal/Test/throws - i32.const 1120 + i32.const 1104 i32.const 6 call $assembly/internal/Test/it - i32.const 1200 + i32.const 1184 i32.const 7 - i32.const 1008 + i32.const 992 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 91 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 85 ;) nop ) - (func $assembly/internal/Describe/describe (; 92 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 86 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4529,7 +4008,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#constructor (; 93 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 87 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -4551,7 +4030,7 @@ i32.store offset=12 local.get $0 ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 94 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 88 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -4572,7 +4051,7 @@ f64.store offset=16 local.get $0 ) - (func $~lib/array/Array#push (; 95 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 89 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4608,7 +4087,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 96 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 90 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4651,7 +4130,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 97 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 91 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4664,11 +4143,11 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#get:length (; 98 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 92 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 99 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 93 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4678,15 +4157,15 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 100 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 94 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 672 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -4701,8 +4180,8 @@ if local.get $2 call $~lib/rt/pure/__release - i32.const 1696 - i32.const 416 + i32.const 1680 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -4710,7 +4189,7 @@ end local.get $2 ) - (func $assembly/__tests__/setup/Vec3/Vec3#__equals (; 101 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__equals (; 95 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -4748,6 +4227,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1792 + i32.const 54 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load @@ -4760,6 +4244,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1792 + i32.const 55 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load offset=8 @@ -4775,6 +4264,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1792 + i32.const 56 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load offset=16 @@ -4787,8 +4281,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual (; 102 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array> (; 96 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -4804,272 +4297,258 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i32) - (local $20 i32) - (local $21 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $0 - i32.load offset=4 call $~lib/rt/pure/__retain - local.set $6 + local.set $0 local.get $1 call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 + local.set $1 + local.get $3 call $~lib/rt/pure/__retain local.set $3 - i32.const 1632 - local.get $4 + i32.const 1616 + local.get $2 call $assembly/internal/report/Expected/Expected.report<~lib/string/String> i32.const 0 - local.set $7 + local.set $4 i32.const 0 - local.set $8 + local.set $5 block $for-break0 loop $for-loop|0 - local.get $8 - local.get $6 + local.get $5 + local.get $0 call $~lib/array/Array#get:length i32.lt_s - local.set $9 - local.get $9 + local.set $6 + local.get $6 if - local.get $6 - local.get $8 - call $~lib/array/Array#__get - local.set $10 - local.get $10 + local.get $0 local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $7 + local.get $1 call $assembly/__tests__/setup/Vec3/Vec3#__equals if i32.const 1 - local.set $7 - local.get $10 + local.set $4 + local.get $7 call $~lib/rt/pure/__release br $for-break0 else - local.get $10 + local.get $7 i32.const 0 i32.ne if (result i32) - local.get $5 + local.get $1 i32.const 0 i32.ne else i32.const 0 end if - local.get $10 - local.set $13 - local.get $5 - local.set $12 + local.get $7 + local.set $10 + local.get $1 + local.set $9 i32.const 24 - local.set $11 + local.set $8 block $~lib/util/memory/memcmp|inlined.0 (result i32) + local.get $10 + local.set $13 + local.get $9 + local.set $12 + local.get $8 + local.set $11 local.get $13 - local.set $16 local.get $12 - local.set $15 - local.get $11 - local.set $14 - local.get $16 - local.get $15 i32.eq if i32.const 0 br $~lib/util/memory/memcmp|inlined.0 end - local.get $16 + local.get $13 i32.const 7 i32.and - local.get $15 + local.get $12 i32.const 7 i32.and i32.eq if loop $while-continue|1 - local.get $16 + local.get $13 i32.const 7 i32.and - local.set $17 - local.get $17 + local.set $14 + local.get $14 if - local.get $14 + local.get $11 i32.eqz if i32.const 0 br $~lib/util/memory/memcmp|inlined.0 end - local.get $16 + local.get $13 i32.load8_u - local.set $18 - local.get $15 + local.set $15 + local.get $12 i32.load8_u - local.set $19 - local.get $18 - local.get $19 + local.set $16 + local.get $15 + local.get $16 i32.ne if - local.get $18 - local.get $19 + local.get $15 + local.get $16 i32.sub br $~lib/util/memory/memcmp|inlined.0 end - local.get $14 + local.get $11 i32.const 1 i32.sub - local.set $14 - local.get $16 + local.set $11 + local.get $13 i32.const 1 i32.add - local.set $16 - local.get $15 + local.set $13 + local.get $12 i32.const 1 i32.add - local.set $15 + local.set $12 br $while-continue|1 end end block $while-break|2 loop $while-continue|2 - local.get $14 + local.get $11 i32.const 8 i32.ge_u - local.set $17 - local.get $17 + local.set $14 + local.get $14 if - local.get $16 + local.get $13 i64.load - local.get $15 + local.get $12 i64.load i64.ne if br $while-break|2 end - local.get $16 + local.get $13 i32.const 8 i32.add - local.set $16 - local.get $15 + local.set $13 + local.get $12 i32.const 8 i32.add - local.set $15 - local.get $14 + local.set $12 + local.get $11 i32.const 8 i32.sub - local.set $14 + local.set $11 br $while-continue|2 end end end end loop $while-continue|3 - local.get $14 - local.tee $17 + local.get $11 + local.tee $14 i32.const 1 i32.sub + local.set $11 + local.get $14 local.set $14 - local.get $17 - local.set $17 - local.get $17 + local.get $14 if - local.get $16 + local.get $13 i32.load8_u - local.set $20 - local.get $15 + local.set $17 + local.get $12 i32.load8_u - local.set $21 - local.get $20 - local.get $21 + local.set $18 + local.get $17 + local.get $18 i32.ne if - local.get $20 - local.get $21 + local.get $17 + local.get $18 i32.sub br $~lib/util/memory/memcmp|inlined.0 end - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 - local.get $15 + local.set $13 + local.get $12 i32.const 1 i32.add - local.set $15 + local.set $12 br $while-continue|3 end end i32.const 0 end - local.set $13 - local.get $13 + local.set $10 + local.get $10 i32.const 0 i32.eq if i32.const 1 - local.set $7 - local.get $10 + local.set $4 + local.get $7 call $~lib/rt/pure/__release br $for-break0 end end end - local.get $10 + local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end end - local.get $7 + local.get $4 if (result i32) - i32.const 1632 + i32.const 1616 call $~lib/rt/pure/__retain - local.tee $8 + local.tee $5 else - i32.const 1808 + i32.const 1872 call $~lib/rt/pure/__retain - local.tee $9 + local.tee $6 end call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - local.get $7 local.get $4 + local.get $2 i32.xor - local.set $14 - local.get $3 - call $~lib/rt/pure/__retain - local.set $17 - local.get $14 - i32.eqz - if - local.get $17 - call $~lib/rt/pure/__release - local.get $17 - i32.const 800 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $17 - call $~lib/rt/pure/__release local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual (; 97 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -5077,25 +4556,25 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|0 (; 103 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|0 (; 98 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/referenceTester call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 global.get $assembly/__tests__/toIncludeEqual.spec/two - i32.const 1520 + i32.const 1504 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 104 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 99 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|1 (; 105 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|1 (; 100 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/referenceTester @@ -5104,14 +4583,14 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $1 global.get $assembly/__tests__/toIncludeEqual.spec/two - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|2 (; 106 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|2 (; 101 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/referenceTester @@ -5123,14 +4602,14 @@ f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor local.tee $1 - i32.const 1520 + i32.const 1504 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|3 (; 107 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|3 (; 102 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/referenceTester @@ -5142,14 +4621,14 @@ f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor local.tee $1 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|4 (; 108 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|4 (; 103 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5164,7 +4643,7 @@ f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor local.tee $2 - i32.const 2320 + i32.const 2384 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release @@ -5173,7 +4652,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|5 (; 109 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|5 (; 104 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5188,7 +4667,7 @@ f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor local.tee $2 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release @@ -5197,7 +4676,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#constructor" (; 110 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#constructor" (; 105 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5240,7 +4719,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 111 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 106 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5253,11 +4732,11 @@ call $~lib/rt/pure/__release local.get $1 ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" (; 112 ;) (param $0 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" (; 107 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 113 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 108 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5266,15 +4745,15 @@ i32.add i32.load ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 114 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 109 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 672 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -5287,8 +4766,8 @@ local.get $2 i32.eqz if - i32.const 1696 - i32.const 416 + i32.const 1680 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -5296,149 +4775,128 @@ end local.get $2 ) - (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toIncludeEqual" (; 115 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func "$assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 110 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 - block "$assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>|inlined.0" - local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $~lib/rt/pure/__retain - local.set $10 - local.get $5 - local.set $9 - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - i32.const 720 - local.get $8 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - i32.const 0 - local.set $11 - i32.const 0 - local.set $12 - block $for-break0 - loop $for-loop|0 - local.get $12 - local.get $10 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" - i32.lt_s - local.set $13 - local.get $13 + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 640 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $for-break0 + loop $for-loop|0 + local.get $5 + local.get $0 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#get:length" + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" + local.set $7 + local.get $7 + local.get $1 + i32.eq if - local.get $10 - local.get $12 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" - local.set $14 - local.get $14 - local.get $9 - i32.eq - if - i32.const 1 - local.set $11 - br $for-break0 - end - local.get $12 i32.const 1 - i32.add - local.set $12 - br $for-loop|0 + local.set $4 + br $for-break0 end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end end - local.get $11 - if (result i32) - i32.const 720 - call $~lib/rt/pure/__retain - local.tee $12 - else - i32.const 752 - call $~lib/rt/pure/__retain - local.tee $13 - end - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - local.get $8 - local.get $11 - i32.xor - local.set $15 - local.get $7 + end + local.get $4 + if (result i32) + i32.const 640 call $~lib/rt/pure/__retain - local.set $14 - local.get $15 - i32.eqz - if - local.get $14 - call $~lib/rt/pure/__release - local.get $14 - i32.const 800 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $14 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br "$assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>|inlined.0" + local.tee $5 + else + i32.const 736 + call $~lib/rt/pure/__retain + local.tee $6 end + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 + local.get $4 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func "$assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" (; 111 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call "$assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + ) + (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toIncludeEqual" (; 112 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call "$assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|6 (; 116 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|6 (; 113 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/eventDispatcher i32.load call "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" local.tee $0 global.get $assembly/__tests__/setup/Event/listener - i32.const 1008 + i32.const 992 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toIncludeEqual" local.get $0 call $~lib/rt/pure/__release ) - (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" (; 117 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" (; 114 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|7 (; 118 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|7 (; 115 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/eventDispatcher @@ -5448,26 +4906,26 @@ call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" local.tee $1 global.get $assembly/__tests__/toIncludeEqual.spec/newListener - i32.const 1008 + i32.const 992 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toIncludeEqual" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|8 (; 119 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|8 (; 116 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/eventDispatcher i32.load call "$assembly/internal/Expectation/expect<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>" local.tee $0 global.get $assembly/__tests__/toIncludeEqual.spec/newListener - i32.const 1008 + i32.const 992 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toIncludeEqual" local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|9 (; 120 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2~anonymous|9 (; 117 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/eventDispatcher @@ -5477,51 +4935,51 @@ call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#get:not" local.tee $1 global.get $assembly/__tests__/setup/Event/listener - i32.const 1008 + i32.const 992 call "$assembly/internal/Expectation/Expectation<~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>>#toIncludeEqual" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2 (; 121 ;) - i32.const 1440 + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|2 (; 118 ;) + i32.const 1424 i32.const 10 call $assembly/internal/Test/it - i32.const 1872 + i32.const 1936 i32.const 11 - i32.const 1008 + i32.const 992 call $assembly/internal/Test/throws - i32.const 1440 + i32.const 1424 i32.const 12 call $assembly/internal/Test/it - i32.const 2032 + i32.const 2096 i32.const 13 - i32.const 2144 + i32.const 2208 call $assembly/internal/Test/throws - i32.const 2240 + i32.const 2304 i32.const 14 call $assembly/internal/Test/it - i32.const 1872 + i32.const 1936 i32.const 15 - i32.const 1008 + i32.const 992 call $assembly/internal/Test/throws - i32.const 2448 + i32.const 2512 i32.const 16 call $assembly/internal/Test/it - i32.const 2544 + i32.const 2608 i32.const 17 call $assembly/internal/Test/it - i32.const 2448 + i32.const 2512 i32.const 18 - i32.const 1008 + i32.const 992 call $assembly/internal/Test/throws - i32.const 2448 + i32.const 2512 i32.const 19 - i32.const 1008 + i32.const 992 call $assembly/internal/Test/throws ) - (func $~lib/typedarray/Uint8Array#constructor (; 122 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 119 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -5537,14 +4995,14 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint8Array#__set (; 123 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#__set (; 120 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if - i32.const 192 - i32.const 2656 + i32.const 672 + i32.const 2720 i32.const 163 i32.const 44 call $~lib/builtins/abort @@ -5557,7 +5015,7 @@ local.get $2 i32.store8 ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#constructor (; 124 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#constructor (; 121 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5600,7 +5058,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> (; 125 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> (; 122 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5613,18 +5071,18 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8Array#get:length (; 126 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#get:length (; 123 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $~lib/typedarray/Uint8Array#__get (; 127 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__get (; 124 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if - i32.const 192 - i32.const 2656 + i32.const 672 + i32.const 2720 i32.const 152 i32.const 44 call $~lib/builtins/abort @@ -5636,150 +5094,129 @@ i32.add i32.load8_u ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toIncludeEqual (; 128 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/typedarray/Uint8Array> (; 125 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/typedarray/Uint8Array>|inlined.0 - local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $~lib/rt/pure/__retain - local.set $10 - local.get $5 - local.set $9 - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - i32.const 720 - local.get $8 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - i32.const 0 - local.set $11 - i32.const 0 - local.set $12 - block $for-break0 - loop $for-loop|0 - local.get $12 - local.get $10 - call $~lib/typedarray/Uint8Array#get:length - i32.lt_s - local.set $13 - local.get $13 + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 640 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $for-break0 + loop $for-loop|0 + local.get $5 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/typedarray/Uint8Array#__get + local.set $7 + local.get $7 + local.get $1 + i32.const 255 + i32.and + i32.eq if - local.get $10 - local.get $12 - call $~lib/typedarray/Uint8Array#__get - local.set $14 - local.get $14 - local.get $9 - i32.const 255 - i32.and - i32.eq - if - i32.const 1 - local.set $11 - br $for-break0 - end - local.get $12 i32.const 1 - i32.add - local.set $12 - br $for-loop|0 + local.set $4 + br $for-break0 end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end end - local.get $11 - if (result i32) - i32.const 720 - call $~lib/rt/pure/__retain - local.tee $12 - else - i32.const 752 - call $~lib/rt/pure/__retain - local.tee $13 - end - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - local.get $8 - local.get $11 - i32.xor - local.set $15 - local.get $7 + end + local.get $4 + if (result i32) + i32.const 640 call $~lib/rt/pure/__retain - local.set $14 - local.get $15 - i32.eqz - if - local.get $14 - call $~lib/rt/pure/__release - local.get $14 - i32.const 800 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $14 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/typedarray/Uint8Array>|inlined.0 + local.tee $5 + else + i32.const 736 + call $~lib/rt/pure/__retain + local.tee $6 end + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 + local.get $4 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/typedarray/Uint8Array> (; 126 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/typedarray/Uint8Array> + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toIncludeEqual (; 127 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/typedarray/Uint8Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|0 (; 129 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|0 (; 128 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/typedarray call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> local.tee $0 i32.const 5 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not (; 130 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not (; 129 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|1 (; 131 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|1 (; 130 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/typedarray @@ -5788,14 +5225,14 @@ call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not local.tee $1 i32.const 5 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/itThrows (; 132 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/itThrows (; 131 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -5811,7 +5248,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|2 (; 133 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|2 (; 132 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/typedarray @@ -5820,99 +5257,41 @@ call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#get:not local.tee $1 i32.const 11 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|3 (; 134 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3~anonymous|3 (; 133 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/typedarray call $assembly/internal/Expectation/expect<~lib/typedarray/Uint8Array> local.tee $0 i32.const 11 - i32.const 1008 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Uint8Array>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3 (; 135 ;) - i32.const 2768 + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|3 (; 134 ;) + i32.const 2832 i32.const 21 call $assembly/internal/Test/it - i32.const 2832 + i32.const 2896 i32.const 22 - i32.const 2912 + i32.const 2976 call $assembly/internal/Test/itThrows - i32.const 3008 + i32.const 3072 i32.const 23 call $assembly/internal/Test/it - i32.const 2832 + i32.const 2896 i32.const 24 - i32.const 3088 + i32.const 3152 call $assembly/internal/Test/itThrows ) - (func $~lib/array/Array<~lib/string/String>#constructor (; 136 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 14 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#push (; 137 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - call $~lib/rt/pure/__retain - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - local.get $3 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#constructor (; 138 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#constructor (; 135 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5955,7 +5334,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array<~lib/string/String>> (; 139 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array<~lib/string/String>> (; 136 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5968,11 +5347,11 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 140 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 137 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 141 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 138 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5982,15 +5361,15 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 142 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 139 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 672 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -6005,8 +5384,8 @@ if local.get $2 call $~lib/rt/pure/__release - i32.const 1696 - i32.const 416 + i32.const 1680 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -6014,137 +5393,120 @@ end local.get $2 ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#toIncludeEqual (; 143 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array<~lib/string/String>> (; 140 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $2 + local.get $3 call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<~lib/string/String>>|inlined.0 - local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $~lib/rt/pure/__retain - local.set $10 - local.get $5 - call $~lib/rt/pure/__retain - local.set $9 - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - i32.const 720 - local.get $8 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - i32.const 0 - local.set $11 - i32.const 0 - local.set $12 - block $for-break0 - loop $for-loop|0 - local.get $12 - local.get $10 - call $~lib/array/Array<~lib/string/String>#get:length - i32.lt_s - local.set $13 - local.get $13 + local.set $3 + i32.const 640 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + block $for-break0 + loop $for-loop|0 + local.get $5 + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__get + local.set $7 + local.get $7 + local.get $1 + i32.eq if - local.get $10 - local.get $12 - call $~lib/array/Array<~lib/string/String>#__get - local.set $14 - local.get $14 - local.get $9 - i32.eq - if - i32.const 1 - local.set $11 - local.get $14 - call $~lib/rt/pure/__release - br $for-break0 - end - local.get $14 - call $~lib/rt/pure/__release - local.get $12 i32.const 1 - i32.add - local.set $12 - br $for-loop|0 + local.set $4 + local.get $7 + call $~lib/rt/pure/__release + br $for-break0 end + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end end - local.get $11 - if (result i32) - i32.const 720 - call $~lib/rt/pure/__retain - local.tee $12 - else - i32.const 752 - call $~lib/rt/pure/__retain - local.tee $13 - end - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - local.get $8 - local.get $11 - i32.xor - local.set $15 - local.get $7 - call $~lib/rt/pure/__retain - local.set $14 - local.get $15 - i32.eqz - if - local.get $14 - call $~lib/rt/pure/__release - local.get $14 - i32.const 800 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $14 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<~lib/string/String>>|inlined.0 end + local.get $4 + if (result i32) + i32.const 640 + call $~lib/rt/pure/__retain + local.tee $5 + else + i32.const 736 + call $~lib/rt/pure/__retain + local.tee $6 + end + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + local.get $2 + local.get $4 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<~lib/string/String>> (; 141 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $assembly/internal/comparison/toIncludeComparison/toIncludeComparison<~lib/array/Array<~lib/string/String>> + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + ) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#toIncludeEqual (; 142 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/toIncludeEqualComparison/toIncludeEqualComparison<~lib/array/Array<~lib/string/String>> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -6152,25 +5514,25 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|0 (; 144 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|0 (; 143 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs call $assembly/internal/Expectation/expect<~lib/array/Array<~lib/string/String>> local.tee $0 - i32.const 3232 - i32.const 1008 + i32.const 3296 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#get:not (; 145 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#get:not (; 144 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|1 (; 146 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|1 (; 145 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs @@ -6178,15 +5540,15 @@ local.tee $0 call $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#get:not local.tee $1 - i32.const 3232 - i32.const 1008 + i32.const 3296 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|2 (; 147 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|2 (; 146 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs @@ -6194,63 +5556,54 @@ local.tee $0 call $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#get:not local.tee $1 - i32.const 3328 - i32.const 1008 + i32.const 3424 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|3 (; 148 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4~anonymous|3 (; 147 ;) (local $0 i32) global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs call $assembly/internal/Expectation/expect<~lib/array/Array<~lib/string/String>> local.tee $0 - i32.const 3328 - i32.const 1008 + i32.const 3424 + i32.const 992 call $assembly/internal/Expectation/Expectation<~lib/array/Array<~lib/string/String>>#toIncludeEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4 (; 149 ;) - i32.const 2768 + (func $start:assembly/__tests__/toIncludeEqual.spec~anonymous|4 (; 148 ;) + i32.const 2832 i32.const 26 call $assembly/internal/Test/it - i32.const 2832 + i32.const 2896 i32.const 27 - i32.const 2912 + i32.const 2976 call $assembly/internal/Test/itThrows - i32.const 3008 + i32.const 3072 i32.const 28 call $assembly/internal/Test/it - i32.const 2832 + i32.const 2896 i32.const 29 - i32.const 3088 + i32.const 3152 call $assembly/internal/Test/itThrows ) - (func $start:assembly/__tests__/toIncludeEqual.spec (; 150 ;) + (func $start:assembly/__tests__/toIncludeEqual.spec (; 149 ;) (local $0 i32) (local $1 i32) call $assembly/__tests__/setup/Event/initializeDispatcher global.set $assembly/__tests__/toIncludeEqual.spec/eventDispatcher - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - global.set $assembly/__tests__/toIncludeEqual.spec/numberTester - global.get $assembly/__tests__/toIncludeEqual.spec/numberTester - i32.const 1 - call $~lib/array/Array#push - drop - global.get $assembly/__tests__/toIncludeEqual.spec/numberTester - i32.const 2 - call $~lib/array/Array#push - drop - global.get $assembly/__tests__/toIncludeEqual.spec/numberTester i32.const 3 - call $~lib/array/Array#push - drop - i32.const 496 + i32.const 2 + i32.const 6 + i32.const 384 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + global.set $assembly/__tests__/toIncludeEqual.spec/numberTester + i32.const 416 i32.const 8 call $assembly/internal/Describe/describe i32.const 0 @@ -6287,7 +5640,7 @@ global.get $assembly/__tests__/toIncludeEqual.spec/three call $~lib/array/Array#push drop - i32.const 1360 + i32.const 1344 i32.const 20 call $assembly/internal/Describe/describe i32.const 0 @@ -6295,61 +5648,52 @@ call $~lib/typedarray/Uint8Array#constructor global.set $assembly/__tests__/toIncludeEqual.spec/typedarray i32.const 0 - local.set $0 + local.set $1 loop $for-loop|0 - local.get $0 + local.get $1 i32.const 10 i32.lt_s - local.set $1 - local.get $1 + local.set $0 + local.get $0 if global.get $assembly/__tests__/toIncludeEqual.spec/typedarray - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - i32.const 2720 + i32.const 2784 i32.const 25 call $assembly/internal/Describe/describe - i32.const 0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#constructor + i32.const 3 + i32.const 2 + i32.const 14 + i32.const 3328 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain global.set $assembly/__tests__/toIncludeEqual.spec/stringRefs - global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs - i32.const 3168 - call $~lib/array/Array<~lib/string/String>#push - drop - global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs - i32.const 3200 - call $~lib/array/Array<~lib/string/String>#push - drop - global.get $assembly/__tests__/toIncludeEqual.spec/stringRefs - i32.const 3232 - call $~lib/array/Array<~lib/string/String>#push - drop - i32.const 3264 + i32.const 3360 i32.const 30 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 151 ;) + (func $assembly/index/__ready (; 150 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 152 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 151 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 153 ;) + (func $assembly/internal/report/Actual/__sendActual (; 152 ;) (local $0 i32) block $break|0 block $case9|0 @@ -6457,7 +5801,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 154 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 153 ;) (local $0 i32) block $break|0 block $case11|0 @@ -6596,24 +5940,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 155 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 154 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 156 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 155 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 157 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 156 ;) (result i32) i32.const 16 ) - (func $assembly/internal/Expectation/__cleanup (; 158 ;) + (func $assembly/internal/Expectation/__cleanup (; 157 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 159 ;) + (func $~start (; 158 ;) global.get $~started if return @@ -6623,143 +5967,117 @@ end call $start:assembly/__tests__/toIncludeEqual.spec ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 160 ;) (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/array/Array#__visit_impl (; 161 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 159 ;) + return ) - (func $~lib/rt/pure/__visit (; 162 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/decrement (; 160 ;) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz if - return + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 16 - i32.sub - local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 161 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 162 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 163 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/array/Array#__visit_impl (; 163 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 164 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6798,7 +6116,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 164 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 165 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6837,10 +6155,10 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 165 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 166 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 166 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 167 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/toStrictEqual.spec.ts b/packages/assembly/assembly/__tests__/toStrictEqual.spec.ts index b5351426..f4a05d39 100644 --- a/packages/assembly/assembly/__tests__/toStrictEqual.spec.ts +++ b/packages/assembly/assembly/__tests__/toStrictEqual.spec.ts @@ -1,37 +1,28 @@ import { Vec3 } from "./setup/Vec3"; -import { Listener, listener, anotherListener, initializeDispatcher } from "./setup/Event"; +import { listener, anotherListener, initializeDispatcher } from "./setup/Event"; var eventDispatcher = initializeDispatcher(); +var vec1 = new Vec3(1, 2, 3); +var vec2 = new Vec3(4, 5, 6); +var vec3 = new Vec3(1, 2, 3); -// @ts-ignore: we are going to use internal store to set arraybuffer contents +const buffsize = 3 << alignof(); -@inline -function STORE(ptr: ArrayBuffer, index: usize, value: T, byteOffset: usize = 0): void { - store(changetype(ptr) + (index << alignof()) + byteOffset, value); -} +var buff1 = new ArrayBuffer(buffsize); +store(changetype(buff1), 1.0); +store(changetype(buff1), 2.0, 8); +store(changetype(buff1), 3.0, 16); -var vec1: Vec3 = new Vec3(1, 2, 3); -var vec2: Vec3 = new Vec3(4, 5, 6); -var vec3: Vec3 = new Vec3(1, 2, 3); +var buff2 = new ArrayBuffer(buffsize); +store(changetype(buff2), 1.0); +store(changetype(buff2), 2.0, 8); +store(changetype(buff2), 3.0, 16); -let buffsize: i32 = 3 << alignof(); - -var buff1: ArrayBuffer = new ArrayBuffer(buffsize); -var buff2: ArrayBuffer = new ArrayBuffer(buffsize); -var buff3: ArrayBuffer = new ArrayBuffer(buffsize); - -STORE(buff1, 0, 1.0); -STORE(buff2, 0, 1.0); -STORE(buff3, 0, 4.0); - -STORE(buff1, 1, 2.0); -STORE(buff2, 1, 2.0); -STORE(buff3, 1, 5.0); - -STORE(buff1, 2, 3.0); -STORE(buff2, 2, 3.0); -STORE(buff3, 2, 6.0); +var buff3 = new ArrayBuffer(buffsize); +store(changetype(buff3), 4.0); +store(changetype(buff3), 5.0, 8); +store(changetype(buff3), 6.0, 16); /** * This test suite is responsible for verifing that all the memcmp operations used by toStrictEqual @@ -43,35 +34,35 @@ describe("toStrictEqual", () => { * toStrictEqual should delegate to the toBe function if the type being compared is a value type. */ it("should correctly assert toStrictEqual assertions for value types", () => { - expect(3).toStrictEqual(3); + expect(3).toStrictEqual(3); }); /** * This is the contrapositive of the previous test. */ throws("because value assertions are equal", () => { - expect(3).not.toStrictEqual(3); + expect(3).not.toStrictEqual(3); }, "not.toStrictEqual on value types that are equal should throw."); /** * toStrictEqual should verify if a value type is not equal. */ it("should assert that value assertions are not equal", () => { - expect(3).not.toStrictEqual(1); + expect(3).not.toStrictEqual(1); }); /** * This is the contrapositive of the previous test. */ throws("because value assertions are not equal", () => { - expect(3).toStrictEqual(1); + expect(3).toStrictEqual(1); }, "toStrictEqual on value types that are not equal should throw."); /** * toStrictEqual should validate if the references have exactly the same values. */ it("should correctly assert toStrictEqual assertions for reftypes", () => { - expect(vec1) + expect(vec1) .toStrictEqual(vec3, "toStrictEqual assertions on ref types do not compare same values correctly."); }); @@ -79,21 +70,21 @@ describe("toStrictEqual", () => { * This is the contrapositive of the previous test. */ throws("because references are not equal", () => { - expect(vec1).not.toStrictEqual(vec3); + expect(vec1).not.toStrictEqual(vec3); }, "toStrictEqual assertions on ref types do not equal each other."); /** * It should validate if the references do not have exactly the same values. */ it("should correctly assert not.toStrictEqual assertions for reftypes", () => { - expect(vec1).not.toStrictEqual(vec2); + expect(vec1).not.toStrictEqual(vec2); }); /** * This is the contrapositive of the previous test. */ throws("because the references do not equal each other", () => { - expect(vec1).toStrictEqual(vec2); + expect(vec1).toStrictEqual(vec2); }, "toStrictEqual assertions on ref types do not compare different values correctly."); /** @@ -144,14 +135,14 @@ describe("toStrictEqual", () => { * the offestof() compile time constant. */ it("should assert arraybuffers are equal", () => { - expect(buff1).toStrictEqual(buff2); + expect(buff1).toStrictEqual(buff2); }); /** * This is the contrapositive of the previous test. */ throws("when equal ArrayBuffers are expected not to strictly equal each other", () => { - expect(buff1).not.toStrictEqual(buff2); + expect(buff1).not.toStrictEqual(buff2); }, "StrictEqual array buffers should throw when they are not expected to strictly equal each other."); /** @@ -159,61 +150,61 @@ describe("toStrictEqual", () => { * the offestof() compile time constant. */ it("should assert arraybuffers are not equal", () => { - expect(buff1).not.toStrictEqual(buff3, "buff1 and buff 3 are not strictly equal"); + expect(buff1).not.toStrictEqual(buff3, "buff1 and buff 3 are not strictly equal"); }); /** * This is the contrapositive of the previous test. */ throws("when different ArrayBuffers are expected to strictly equal each other", () => { - expect(buff1).toStrictEqual(buff3); + expect(buff1).toStrictEqual(buff3); }, "Non-strictEqual array buffers should throw when they are expected to strictly equal each other."); /** * Arrays that equal each other exactly should pass. */ it("should assert two array values are strictly equal when they point to the same place", () => { - let a: i32[] = [1, 2, 3]; - expect(a).toStrictEqual(a, "a should match a"); + let a = [1, 2, 3]; + expect(a).toStrictEqual(a, "a should match a"); }); /** * Array references that are exactly the same should throw when the expectation is negated. */ throws("when actual and expected are the same reference but the expectation is negated", () => { - let a: i32[] = [1, 2, 3]; - expect(a).not.toStrictEqual(a); + let a = [1, 2, 3]; + expect(a).not.toStrictEqual(a); }, "a is equal to a, and the expectation should throw"); /** * Array references that strictly equal each other should not throw. */ it("should assert that array values strictly equal each other when they match", () => { - let a: i32[] = [1, 2, 3]; - expect(a).toStrictEqual([1, 2, 3], "[1, 2, 3] should match a"); + let a = [1, 2, 3]; + expect(a).toStrictEqual([1, 2, 3], "[1, 2, 3] should match a"); }); /** * Array references that strictly equal each other should throw when the expectation is negated. */ throws("when two array references equal each other but the expectation is negated", () => { - let a: i32[] = [1, 2, 3]; - expect(a).not.toStrictEqual([1, 2, 3], "[1, 2, 3] should match a"); + let a = [1, 2, 3]; + expect(a).not.toStrictEqual([1, 2, 3], "[1, 2, 3] should match a"); }); /** * Array references that don't equal each other should not fail when negated. */ it("should assert that arrays that don't strictly equal each other", () => { - let a: i32[] = [1, 2, 3]; - expect(a).not.toStrictEqual([4, 5, 6]); + let a = [1, 2, 3]; + expect(a).not.toStrictEqual([4, 5, 6]); }); /** * Array references that don't strictly equal each other should fail the expectation. */ throws("when two array references don't strictly equal each other", () => { - let a: i32[] = [1, 2, 3]; + let a = [1, 2, 3]; expect(a).toStrictEqual([4, 5, 6]); }); @@ -224,7 +215,7 @@ describe("toStrictEqual", () => { * case, branches that do runtime checks will be compiled and result in a compiler error. */ it("compiles when is used as the expectation type for toStrictEqual", () => { - expect(42).toBe(42, "This totally compiles."); + expect(42).toBe(42, "This totally compiles."); }); /** @@ -232,23 +223,18 @@ describe("toStrictEqual", () => { * in a single array comparison. */ it("should validate that two arrays of similar references are strictly equal", () => { - expect( - [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - ).toStrictEqual( - [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - "The two arrays are expected to strictly equal each other", - ); + let a = [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + let b = [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + expect(a).toStrictEqual(b, "The two arrays are expected to strictly equal each other"); }); /** * This is the contrapositive of the previous test. */ throws("when two arrays of similar references are strictly equal and the assertion is negated", () => { - expect( - [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - ).not.toStrictEqual( - [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - ); + let a = [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + let b = [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + expect(a).not.toStrictEqual(b); }, "The two arrays are expected to strictly equal each other"); /** @@ -256,11 +242,9 @@ describe("toStrictEqual", () => { * in a single array comparison. */ it("should validate that two arrays of disimilar references are not strictly equal", () => { - expect( - [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - ).not.toStrictEqual( - [new Vec3(9, 8, 7), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - "The two arrays are expected not to strictly equal each other", + let a = [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + let b = [new Vec3(9, 8, 7), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + expect(a).not.toStrictEqual(b, "The two arrays are expected not to strictly equal each other", ); }); @@ -268,59 +252,57 @@ describe("toStrictEqual", () => { * This is the contrapositive of the previous test. */ throws("when two arrays of disimilar references are not strictly equal", () => { - expect( - [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - ).toStrictEqual( - [new Vec3(9, 8, 7), new Vec3(4, 5, 6), new Vec3(7, 8, 9)], - ); + let a = [new Vec3(1, 2, 3), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + let b = [new Vec3(9, 8, 7), new Vec3(4, 5, 6), new Vec3(7, 8, 9)]; + expect(a).toStrictEqual(b); }, "The two arrays are expected not to strictly equal each other"); it("should assert that two typed arrays strictly equal each other", () => { let one = new Float32Array(3); let two = new Float32Array(3); - one[0] = 1.1; - one[1] = 2.2; - one[2] = 3.3; - two[0] = 1.1; - two[1] = 2.2; - two[2] = 3.3; - expect(one).toStrictEqual(two); + unchecked(one[0] = 1.1); + unchecked(one[1] = 2.2); + unchecked(one[2] = 3.3); + unchecked(two[0] = 1.1); + unchecked(two[1] = 2.2); + unchecked(two[2] = 3.3); + expect(one).toStrictEqual(two); }); itThrows("when two arrays strictly equal each other", () => { let one = new Float32Array(3); let two = new Float32Array(3); - one[0] = 1.1; - one[1] = 2.2; - one[2] = 3.3; - two[0] = 1.1; - two[1] = 2.2; - two[2] = 3.3; - expect(one).not.toStrictEqual(two); + unchecked(one[0] = 1.1); + unchecked(one[1] = 2.2); + unchecked(one[2] = 3.3); + unchecked(two[0] = 1.1); + unchecked(two[1] = 2.2); + unchecked(two[2] = 3.3); + expect(one).not.toStrictEqual(two); }); /** * Strictly compare two functions */ it("should strictly compare two function pointers", () => { - expect(eventDispatcher.events[0]).toStrictEqual(listener); + expect(eventDispatcher.events[0]).toStrictEqual(listener); }); - + it("should handle the negated function check", () => { - expect(eventDispatcher.events[0]).not.toStrictEqual(anotherListener); + expect(eventDispatcher.events[0]).not.toStrictEqual(anotherListener); }); /** * Throws if two functions are not equal */ throws("throws if pointers aren't equal", () => { - expect(eventDispatcher.events[0]).toStrictEqual(anotherListener); + expect(eventDispatcher.events[0]).toStrictEqual(anotherListener); }); /** * Throws if two functions are not equal */ throws("throws if pointers aren't equal", () => { - expect(eventDispatcher.events[0]).not.toStrictEqual(listener); + expect(eventDispatcher.events[0]).not.toStrictEqual(listener); }); }); diff --git a/packages/assembly/assembly/__tests__/toStrictEqual.spec.wat b/packages/assembly/assembly/__tests__/toStrictEqual.spec.wat index 112196a5..a4d66835 100644 --- a/packages/assembly/assembly/__tests__/toStrictEqual.spec.wat +++ b/packages/assembly/assembly/__tests__/toStrictEqual.spec.wat @@ -1,12 +1,12 @@ (module (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) @@ -14,11 +14,86 @@ (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_f64_f64_f64_=>_i32 (func (param i32 f64 f64 f64) (result i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 224) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 288) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 336) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00") + (data (i32.const 384) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00f\00o\00r\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00") + (data (i32.const 528) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 624) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 640) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00v\00a\00l\00u\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 736) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00n\00o\00t\00.\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00o\00n\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 880) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00v\00a\00l\00u\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1008) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00v\00a\00l\00u\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1104) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00o\00n\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 1248) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00f\00o\00r\00 \00r\00e\00f\00t\00y\00p\00e\00s\00") + (data (i32.const 1392) "\96\00\00\00\01\00\00\00\01\00\00\00\96\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00n\00 \00r\00e\00f\00 \00t\00y\00p\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00c\00o\00m\00p\00a\00r\00e\00 \00s\00a\00m\00e\00 \00v\00a\00l\00u\00e\00s\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00.\00") + (data (i32.const 1568) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00s\00e\00t\00u\00p\00/\00V\00e\00c\003\00.\00t\00s\00") + (data (i32.const 1648) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 1728) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00n\00 \00r\00e\00f\00 \00t\00y\00p\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00.\00") + (data (i32.const 1872) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00n\00o\00t\00.\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00f\00o\00r\00 \00r\00e\00f\00t\00y\00p\00e\00s\00") + (data (i32.const 2032) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 2144) "\a0\00\00\00\01\00\00\00\01\00\00\00\a0\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00n\00 \00r\00e\00f\00 \00t\00y\00p\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00c\00o\00m\00p\00a\00r\00e\00 \00d\00i\00f\00f\00e\00r\00e\00n\00t\00 \00v\00a\00l\00u\00e\00s\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00.\00") + (data (i32.const 2320) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00f\00o\00r\00 \00r\00e\00f\00t\00y\00p\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00n\00u\00l\00l\00") + (data (i32.const 2464) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00n\00u\00l\00l\00 \00e\00q\00u\00a\00l\00s\00 \00n\00u\00l\00l\00") + (data (i32.const 2528) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00n\00u\00l\00l\00 \00e\00q\00u\00a\00l\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 2592) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00s\00t\00r\00i\00t\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00n\00u\00l\00l\00") + (data (i32.const 2736) "x\00\00\00\01\00\00\00\01\00\00\00x\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00a\00 \00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 2880) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00a\00c\00t\00u\00a\00l\00 \00i\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00 \00a\00n\00d\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3040) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00a\00 \00n\00u\00l\00l\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00 \00e\00q\00u\00a\00l\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") + (data (i32.const 3168) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00a\00c\00t\00u\00a\00l\00 \00i\00s\00 \00n\00u\00l\00l\00 \00a\00n\00d\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00i\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00.\00") + (data (i32.const 3328) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 3424) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00w\00h\00e\00n\00 \00e\00q\00u\00a\00l\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 3584) "\be\00\00\00\01\00\00\00\01\00\00\00\be\00\00\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00r\00r\00a\00y\00 \00b\00u\00f\00f\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00.\00") + (data (i32.const 3792) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 3888) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00b\00u\00f\00f\001\00 \00a\00n\00d\00 \00b\00u\00f\00f\00 \003\00 \00a\00r\00e\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 3984) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00w\00h\00e\00n\00 \00d\00i\00f\00f\00e\00r\00e\00n\00t\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 4144) "\be\00\00\00\01\00\00\00\01\00\00\00\be\00\00\00N\00o\00n\00-\00s\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00r\00r\00a\00y\00 \00b\00u\00f\00f\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00.\00") + (data (i32.const 4352) "\a6\00\00\00\01\00\00\00\01\00\00\00\a6\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00p\00o\00i\00n\00t\00 \00t\00o\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00p\00l\00a\00c\00e\00") + (data (i32.const 4544) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 4576) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00a\00 \00s\00h\00o\00u\00l\00d\00 \00m\00a\00t\00c\00h\00 \00a\00") + (data (i32.const 4624) "\9c\00\00\00\01\00\00\00\01\00\00\00\9c\00\00\00w\00h\00e\00n\00 \00a\00c\00t\00u\00a\00l\00 \00a\00n\00d\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00a\00r\00e\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 4800) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 4832) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00a\00 \00i\00s\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00a\00,\00 \00a\00n\00d\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 4960) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00a\00r\00r\00a\00y\00 \00v\00a\00l\00u\00e\00s\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00m\00a\00t\00c\00h\00") + (data (i32.const 5136) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5168) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5200) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00[\001\00,\00 \002\00,\00 \003\00]\00 \00s\00h\00o\00u\00l\00d\00 \00m\00a\00t\00c\00h\00 \00a\00") + (data (i32.const 5264) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 5440) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5472) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5504) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00a\00r\00r\00a\00y\00s\00 \00t\00h\00a\00t\00 \00d\00o\00n\00\'\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 5648) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5680) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data (i32.const 5712) "r\00\00\00\01\00\00\00\01\00\00\00r\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00d\00o\00n\00\'\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 5856) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5888) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data (i32.const 5920) "\88\00\00\00\01\00\00\00\01\00\00\00\88\00\00\00c\00o\00m\00p\00i\00l\00e\00s\00 \00w\00h\00e\00n\00 \00<\00u\008\00>\00 \00i\00s\00 \00u\00s\00e\00d\00 \00a\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00y\00p\00e\00 \00f\00o\00r\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00") + (data (i32.const 6080) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00T\00h\00i\00s\00 \00t\00o\00t\00a\00l\00l\00y\00 \00c\00o\00m\00p\00i\00l\00e\00s\00.\00") + (data (i32.const 6144) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 6304) "p\00\00\00\01\00\00\00\01\00\00\00p\00\00\00T\00h\00e\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 6432) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00A\00r\00r\00a\00y\00 \00o\00f\00 \00R\00e\00f\00e\00r\00e\00n\00c\00e\00s\00") + (data (i32.const 6496) "\aa\00\00\00\01\00\00\00\01\00\00\00\aa\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00a\00n\00d\00 \00t\00h\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") + (data (i32.const 6688) "\9c\00\00\00\01\00\00\00\01\00\00\00\9c\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00d\00i\00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 6864) "x\00\00\00\01\00\00\00\01\00\00\00x\00\00\00T\00h\00e\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 7008) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00d\00i\00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 7152) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00t\00w\00o\00 \00t\00y\00p\00e\00d\00 \00a\00r\00r\00a\00y\00s\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 7296) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") + (data (i32.const 7408) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00c\00o\00m\00p\00a\00r\00e\00 \00t\00w\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00") + (data (i32.const 7520) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") + (data (i32.const 7584) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") + (data (i32.const 7696) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00c\00h\00e\00c\00k\00") + (data (i32.const 7792) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00t\00h\00r\00o\00w\00s\00 \00i\00f\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00a\00r\00e\00n\00\'\00t\00 \00e\00q\00u\00a\00l\00") + (data (i32.const 7872) "\14\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\0c\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Expected/getStackTrace (result i32))) @@ -47,98 +122,20 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 336) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 400) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 448) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00") - (data (i32.const 496) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00f\00o\00r\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00") - (data (i32.const 640) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 736) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 752) "D\00\00\00\01\00\00\00\01\00\00\00D\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00v\00a\00l\00u\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 848) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00n\00o\00t\00.\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00o\00n\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 992) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00v\00a\00l\00u\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 1120) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00v\00a\00l\00u\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 1216) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00o\00n\00 \00v\00a\00l\00u\00e\00 \00t\00y\00p\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 1360) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00f\00o\00r\00 \00r\00e\00f\00t\00y\00p\00e\00s\00") - (data (i32.const 1504) "\96\00\00\00\01\00\00\00\01\00\00\00\96\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00n\00 \00r\00e\00f\00 \00t\00y\00p\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00c\00o\00m\00p\00a\00r\00e\00 \00s\00a\00m\00e\00 \00v\00a\00l\00u\00e\00s\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00.\00") - (data (i32.const 1680) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 1760) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00n\00 \00r\00e\00f\00 \00t\00y\00p\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00.\00") - (data (i32.const 1904) "\82\00\00\00\01\00\00\00\01\00\00\00\82\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00n\00o\00t\00.\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00f\00o\00r\00 \00r\00e\00f\00t\00y\00p\00e\00s\00") - (data (i32.const 2064) "\\\00\00\00\01\00\00\00\01\00\00\00\\\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00t\00h\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 2176) "\a0\00\00\00\01\00\00\00\01\00\00\00\a0\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00o\00n\00 \00r\00e\00f\00 \00t\00y\00p\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00c\00o\00m\00p\00a\00r\00e\00 \00d\00i\00f\00f\00e\00r\00e\00n\00t\00 \00v\00a\00l\00u\00e\00s\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00.\00") - (data (i32.const 2352) "\80\00\00\00\01\00\00\00\01\00\00\00\80\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00 \00a\00s\00s\00e\00r\00t\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00f\00o\00r\00 \00r\00e\00f\00t\00y\00p\00e\00s\00 \00t\00h\00a\00t\00 \00a\00r\00e\00 \00n\00u\00l\00l\00") - (data (i32.const 2496) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00n\00u\00l\00l\00 \00e\00q\00u\00a\00l\00s\00 \00n\00u\00l\00l\00") - (data (i32.const 2560) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00n\00u\00l\00l\00 \00e\00q\00u\00a\00l\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 2624) "v\00\00\00\01\00\00\00\01\00\00\00v\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00d\00o\00 \00n\00o\00t\00 \00s\00t\00r\00i\00t\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00n\00u\00l\00l\00") - (data (i32.const 2768) "x\00\00\00\01\00\00\00\01\00\00\00x\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00a\00 \00n\00u\00l\00l\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 2912) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00a\00c\00t\00u\00a\00l\00 \00i\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00 \00a\00n\00d\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00i\00s\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3072) "l\00\00\00\01\00\00\00\01\00\00\00l\00\00\00b\00e\00c\00a\00u\00s\00e\00 \00a\00 \00n\00u\00l\00l\00 \00i\00s\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00 \00e\00q\00u\00a\00l\00 \00a\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00") - (data (i32.const 3200) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00a\00c\00t\00u\00a\00l\00 \00i\00s\00 \00n\00u\00l\00l\00 \00a\00n\00d\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00i\00s\00 \00n\00o\00t\00 \00n\00u\00l\00l\00.\00") - (data (i32.const 3360) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 3456) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00w\00h\00e\00n\00 \00e\00q\00u\00a\00l\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 3616) "\be\00\00\00\01\00\00\00\01\00\00\00\be\00\00\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00r\00r\00a\00y\00 \00b\00u\00f\00f\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00.\00") - (data (i32.const 3824) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 3920) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00b\00u\00f\00f\001\00 \00a\00n\00d\00 \00b\00u\00f\00f\00 \003\00 \00a\00r\00e\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 4016) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00w\00h\00e\00n\00 \00d\00i\00f\00f\00e\00r\00e\00n\00t\00 \00A\00r\00r\00a\00y\00B\00u\00f\00f\00e\00r\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 4176) "\be\00\00\00\01\00\00\00\01\00\00\00\be\00\00\00N\00o\00n\00-\00s\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00 \00a\00r\00r\00a\00y\00 \00b\00u\00f\00f\00e\00r\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00.\00") - (data (i32.const 4384) "\a6\00\00\00\01\00\00\00\01\00\00\00\a6\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00 \00v\00a\00l\00u\00e\00s\00 \00a\00r\00e\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00p\00o\00i\00n\00t\00 \00t\00o\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00p\00l\00a\00c\00e\00") - (data (i32.const 4576) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 4608) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00a\00 \00s\00h\00o\00u\00l\00d\00 \00m\00a\00t\00c\00h\00 \00a\00") - (data (i32.const 4656) "\9c\00\00\00\01\00\00\00\01\00\00\00\9c\00\00\00w\00h\00e\00n\00 \00a\00c\00t\00u\00a\00l\00 \00a\00n\00d\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00a\00r\00e\00 \00t\00h\00e\00 \00s\00a\00m\00e\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 4832) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 4864) "b\00\00\00\01\00\00\00\01\00\00\00b\00\00\00a\00 \00i\00s\00 \00e\00q\00u\00a\00l\00 \00t\00o\00 \00a\00,\00 \00a\00n\00d\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 4992) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00a\00r\00r\00a\00y\00 \00v\00a\00l\00u\00e\00s\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00 \00w\00h\00e\00n\00 \00t\00h\00e\00y\00 \00m\00a\00t\00c\00h\00") - (data (i32.const 5168) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 5200) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 5232) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00[\001\00,\00 \002\00,\00 \003\00]\00 \00s\00h\00o\00u\00l\00d\00 \00m\00a\00t\00c\00h\00 \00a\00") - (data (i32.const 5296) "\92\00\00\00\01\00\00\00\01\00\00\00\92\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00 \00b\00u\00t\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 5472) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 5504) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 5536) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00a\00r\00r\00a\00y\00s\00 \00t\00h\00a\00t\00 \00d\00o\00n\00\'\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 5680) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 5712) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") - (data (i32.const 5744) "r\00\00\00\01\00\00\00\01\00\00\00r\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00d\00o\00n\00\'\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 5888) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 5920) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") - (data (i32.const 5952) "\88\00\00\00\01\00\00\00\01\00\00\00\88\00\00\00c\00o\00m\00p\00i\00l\00e\00s\00 \00w\00h\00e\00n\00 \00<\00u\008\00>\00 \00i\00s\00 \00u\00s\00e\00d\00 \00a\00s\00 \00t\00h\00e\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00t\00y\00p\00e\00 \00f\00o\00r\00 \00t\00o\00S\00t\00r\00i\00c\00t\00E\00q\00u\00a\00l\00") - (data (i32.const 6112) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00T\00h\00i\00s\00 \00t\00o\00t\00a\00l\00l\00y\00 \00c\00o\00m\00p\00i\00l\00e\00s\00.\00") - (data (i32.const 6176) "\90\00\00\00\01\00\00\00\01\00\00\00\90\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 6336) "p\00\00\00\01\00\00\00\01\00\00\00p\00\00\00T\00h\00e\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 6464) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00A\00r\00r\00a\00y\00 \00o\00f\00 \00R\00e\00f\00e\00r\00e\00n\00c\00e\00s\00") - (data (i32.const 6528) "\aa\00\00\00\01\00\00\00\01\00\00\00\aa\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00a\00n\00d\00 \00t\00h\00e\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00 \00i\00s\00 \00n\00e\00g\00a\00t\00e\00d\00") - (data (i32.const 6720) "\9c\00\00\00\01\00\00\00\01\00\00\00\9c\00\00\00s\00h\00o\00u\00l\00d\00 \00v\00a\00l\00i\00d\00a\00t\00e\00 \00t\00h\00a\00t\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00d\00i\00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 6896) "x\00\00\00\01\00\00\00\01\00\00\00x\00\00\00T\00h\00e\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00a\00r\00e\00 \00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00o\00t\00 \00t\00o\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 7040) "|\00\00\00\01\00\00\00\01\00\00\00|\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00o\00f\00 \00d\00i\00s\00i\00m\00i\00l\00a\00r\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00 \00a\00r\00e\00 \00n\00o\00t\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 7184) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00s\00h\00o\00u\00l\00d\00 \00a\00s\00s\00e\00r\00t\00 \00t\00h\00a\00t\00 \00t\00w\00o\00 \00t\00y\00p\00e\00d\00 \00a\00r\00r\00a\00y\00s\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 7328) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 7392) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00w\00h\00e\00n\00 \00t\00w\00o\00 \00a\00r\00r\00a\00y\00s\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00e\00q\00u\00a\00l\00 \00e\00a\00c\00h\00 \00o\00t\00h\00e\00r\00") - (data (i32.const 7504) "Z\00\00\00\01\00\00\00\01\00\00\00Z\00\00\00s\00h\00o\00u\00l\00d\00 \00s\00t\00r\00i\00c\00t\00l\00y\00 \00c\00o\00m\00p\00a\00r\00e\00 \00t\00w\00o\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00p\00o\00i\00n\00t\00e\00r\00s\00") - (data (i32.const 7616) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 7728) "P\00\00\00\01\00\00\00\01\00\00\00P\00\00\00s\00h\00o\00u\00l\00d\00 \00h\00a\00n\00d\00l\00e\00 \00t\00h\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00c\00h\00e\00c\00k\00") - (data (i32.const 7824) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00t\00h\00r\00o\00w\00s\00 \00i\00f\00 \00p\00o\00i\00n\00t\00e\00r\00s\00 \00a\00r\00e\00n\00\'\00t\00 \00e\00q\00u\00a\00l\00") - (data (i32.const 7904) "\14\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\91\0c\00\00\02\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (table $0 40 funcref) (elem (i32.const 1) $start:assembly/__tests__/setup/Event~anonymous|0 $start:assembly/__tests__/setup/Event~anonymous|1 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|7 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|8 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|9 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|10 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|11 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|12 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|13 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|14 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|15 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|16 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|17 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|18 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|19 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|20 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|21 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|22 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|23 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|24 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|25 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|26 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|27 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|28 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|29 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|30 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|31 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|32 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|33 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|34 $start:assembly/__tests__/toStrictEqual.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/setup/Event/listener i32 (i32.const 1)) (global $assembly/__tests__/setup/Event/anotherListener i32 (i32.const 2)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/toStrictEqual.spec/eventDispatcher (mut i32) (i32.const 0)) (global $assembly/__tests__/toStrictEqual.spec/vec1 (mut i32) (i32.const 0)) (global $assembly/__tests__/toStrictEqual.spec/vec2 (mut i32) (i32.const 0)) (global $assembly/__tests__/toStrictEqual.spec/vec3 (mut i32) (i32.const 0)) - (global $assembly/__tests__/toStrictEqual.spec/buffsize (mut i32) (i32.const 0)) + (global $assembly/__tests__/toStrictEqual.spec/buffsize i32 (i32.const 24)) (global $assembly/__tests__/toStrictEqual.spec/buff1 (mut i32) (i32.const 0)) (global $assembly/__tests__/toStrictEqual.spec/buff2 (mut i32) (i32.const 0)) (global $assembly/__tests__/toStrictEqual.spec/buff3 (mut i32) (i32.const 0)) @@ -166,8 +163,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 7904)) - (global $~lib/heap/__heap_base i32 (i32.const 8068)) + (global $~lib/rt/__rtti_base i32 (i32.const 7872)) + (global $~lib/heap/__heap_base i32 (i32.const 8036)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -186,7 +183,7 @@ (export "__disableRTrace" (func $assembly/internal/RTrace/__disableRTrace)) (export "__getUsizeArrayId" (func $assembly/internal/RTrace/__getUsizeArrayId)) (export "__cleanup" (func $assembly/internal/Expectation/__cleanup)) - (func $~lib/rt/tlsf/removeBlock (; 33 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 34 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -396,7 +393,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 34 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 35 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -746,7 +743,7 @@ local.get $7 i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 35 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -894,7 +891,7 @@ call $~lib/rt/tlsf/insertBlock i32.const 1 ) - (func $~lib/rt/tlsf/maybeInitialize (; 36 ;) (result i32) + (func $~lib/rt/tlsf/maybeInitialize (; 37 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1044,7 +1041,7 @@ end local.get $0 ) - (func $~lib/rt/tlsf/prepareSize (; 37 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 38 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1073,7 +1070,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 38 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 39 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1256,296 +1253,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 40 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1629,7 +1337,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1724,9 +1432,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1740,12 +1448,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1756,20 +1464,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1782,13 +1490,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1800,11 +1508,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1815,37 +1523,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 44 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1863,7 +1569,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1884,13 +1590,13 @@ if i32.const 0 i32.const 144 - i32.const 107 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 45 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1902,1892 +1608,1720 @@ end local.get $0 ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + (func $~lib/rt/pure/__release (; 46 ;) (param $0 i32) local.get $0 - local.get $1 - i32.load + global.get $~lib/heap/__heap_base i32.gt_u if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end + ) + (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 47 ;) (param $0 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + ) + (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 48 ;) (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + local.set $1 + local.get $1 local.get $1 - i32.const 4 i32.add + drop local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + call $~lib/rt/pure/__release ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - loop $while-continue|0 + (local $7 i32) + (local $8 i64) + (local $9 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 + local.set $3 + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 end - local.set $5 local.get $5 + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 1 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 2 + i32.le_u if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + br $~lib/util/memory/memset|inlined.0 end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end + local.get $5 + i32.const 1 + i32.add + local.get $4 + i32.store8 + local.get $5 + i32.const 2 + i32.add + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 2 + i32.sub + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 3 + i32.sub + local.get $4 + i32.store8 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 end - local.get $2 + local.get $5 + i32.const 3 + i32.add + local.get $4 + i32.store8 + local.get $5 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.get $4 + i32.store8 + local.get $3 i32.const 8 - i32.and + i32.le_u if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 4 + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $6 + local.get $5 + local.get $6 + i32.add + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 i32.and + i32.mul + local.set $7 + local.get $5 + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 8 + i32.le_u if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 2 - i32.and + local.get $5 + i32.const 4 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 8 + i32.add + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 12 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 8 + i32.sub + local.get $7 + i32.store + local.get $3 + i32.const 24 + i32.le_u if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 + br $~lib/util/memory/memset|inlined.0 end - local.get $2 - i32.const 1 + local.get $5 + i32.const 12 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 16 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 20 + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 24 + i32.add + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 28 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 24 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 20 + i32.sub + local.get $7 + i32.store + local.get $5 + local.get $3 + i32.add + i32.const 16 + i32.sub + local.get $7 + i32.store + i32.const 24 + local.get $5 + i32.const 4 i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.add + local.set $5 + local.get $3 + local.get $6 + i32.sub + local.set $3 + local.get $7 + i64.extend_i32_u + local.get $7 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $8 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $9 + local.get $9 + if + local.get $5 + local.get $8 + i64.store + local.get $5 + i32.const 8 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 16 + i32.add + local.get $8 + i64.store + local.get $5 + i32.const 24 + i32.add + local.get $8 + i64.store + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end end - return end + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 1073741808 local.get $2 - i32.const 32 - i32.ge_u + i32.shr_u + i32.gt_u if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 192 + i32.const 240 + i32.const 23 + i32.const 56 + call $~lib/builtins/abort + unreachable end + local.get $1 local.get $2 - i32.const 8 - i32.and + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + i32.eqz if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 end - local.get $2 - i32.const 4 - i32.and + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 local.get $5 - i32.load8_u - i32.store8 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 51 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) local.get $0 - local.tee $5 - i32.const 1 - i32.add + else + i32.const 16 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 52 ;) (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 end - local.get $2 - i32.const 2 - i32.and - if + local.get $0 + i32.const 0 + i32.const 0 + call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" + i32.store + local.get $0 + ) + (func $~lib/rt/tlsf/checkUsedBlock (; 53 ;) (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 16 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 + i32.load i32.const 1 - i32.add - local.set $0 - local.get $5 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.load offset=4 + i32.const -268435456 + i32.and + i32.eqz + else + i32.const 0 end - local.get $2 - i32.const 1 - i32.and + i32.eqz if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 0 + i32.const 32 + i32.const 570 + i32.const 2 + call $~lib/builtins/abort + unreachable end + local.get $1 ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 + loop $while-continue|0 local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 end - local.get $4 - local.get $3 - i32.add + local.set $5 local.get $5 - i32.le_u - if (result i32) + if + local.get $0 + local.tee $6 i32.const 1 - else + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 local.get $5 - local.get $3 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 i32.add - local.get $4 - i32.le_u + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 end + local.get $2 + i32.const 1 + i32.and if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 local.get $5 - local.tee $7 i32.const 1 - i32.add + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end end + br $break|2 end - loop $while-continue|1 - local.get $3 - i32.const 8 + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 i32.ge_u - local.set $6 - local.get $6 + local.set $5 + local.get $5 if - local.get $5 - local.get $4 - i64.load - i64.store + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 8 - i32.sub + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load local.set $3 - local.get $5 - i32.const 8 + local.get $0 + i32.const 4 i32.add - local.set $5 local.get $4 - i32.const 8 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 i32.add + i32.load local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 + local.get $0 + i32.const 8 i32.add - local.get $4 local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub + i32.load local.set $3 - local.get $5 - local.get $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i64.load - i64.store + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|4 end end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 if - local.get $5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 8 + i32.shr_u local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i32.load8_u - i32.store8 + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|5 end end + br $break|2 end end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 + i32.and if local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.const 16 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 i32.const 1 - call $~lib/rt/__visit_members + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 end - ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u + local.get $2 + i32.const 8 + i32.and if local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $start:assembly/__tests__/setup/Event~anonymous|0 (; 59 ;) (param $0 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - ) - (func $start:assembly/__tests__/setup/Event~anonymous|1 (; 60 ;) (param $0 i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - local.set $1 - local.get $1 - local.get $1 - i32.add - drop - local.get $0 - call $~lib/rt/pure/__release - ) - (func $~lib/memory/memory.fill (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - block $~lib/util/memory/memset|inlined.0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 local.get $0 - local.set $5 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.eqz - if - br $~lib/util/memory/memset|inlined.0 - end + local.tee $5 + i32.const 1 + i32.add + local.set $1 local.get $5 - local.get $4 + i32.load8_u i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 i32.const 1 - i32.sub - local.get $4 + i32.add + local.set $1 + local.get $5 + i32.load8_u i32.store8 - local.get $3 - i32.const 2 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 i32.const 1 i32.add - local.get $4 - i32.store8 + local.set $0 local.get $5 - i32.const 2 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 - i32.store8 + local.set $1 local.get $5 - local.get $3 - i32.add - i32.const 2 - i32.sub - local.get $4 + i32.load8_u i32.store8 - local.get $5 - local.get $3 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 3 - i32.sub - local.get $4 - i32.store8 - local.get $3 - i32.const 6 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $0 local.get $5 - i32.const 3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $4 - i32.store8 + local.set $1 local.get $5 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.get $4 + i32.load8_u i32.store8 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - i32.const 0 - local.get $5 - i32.sub - i32.const 3 - i32.and - local.set $6 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $6 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.set $5 - local.get $3 - local.get $6 - i32.sub - local.set $3 - local.get $3 - i32.const -4 - i32.and - local.set $3 - i32.const -1 - i32.const 255 - i32.div_u - local.get $4 - i32.const 255 - i32.and - i32.mul - local.set $7 + local.set $1 local.get $5 - local.get $7 - i32.store + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 4 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $1 local.get $5 - i32.const 4 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 8 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 12 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 8 - i32.sub - local.get $7 - i32.store - local.get $3 - i32.const 24 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end + local.set $1 local.get $5 - i32.const 12 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 16 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - i32.const 20 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $0 local.get $5 - i32.const 24 + local.get $1 + local.tee $5 + i32.const 1 i32.add - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 28 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 24 - i32.sub - local.get $7 - i32.store + local.set $1 local.get $5 - local.get $3 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 i32.add - i32.const 20 - i32.sub - local.get $7 - i32.store + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 16 - i32.sub - local.get $7 - i32.store - i32.const 24 + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 local.get $5 - i32.const 4 - i32.and + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $4 + local.get $3 i32.add - local.set $6 local.get $5 - local.get $6 - i32.add - local.set $5 - local.get $3 - local.get $6 - i32.sub - local.set $3 - local.get $7 - i64.extend_i32_u - local.get $7 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - local.set $8 - loop $while-continue|0 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 local.get $3 - i32.const 32 - i32.ge_u - local.set $9 - local.get $9 + i32.add + local.get $4 + i32.le_u + end + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq if - local.get $5 - local.get $8 - i64.store - local.get $5 - i32.const 8 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 16 - i32.add - local.get $8 - i64.store - local.get $5 - i32.const 24 - i32.add - local.get $8 - i64.store + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 local.get $3 - i32.const 32 - i32.sub - local.set $3 - local.get $5 - i32.const 32 - i32.add - local.set $5 - br $while-continue|0 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end end - end - end - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 304 - i32.const 352 - i32.const 23 - i32.const 56 - call $~lib/builtins/abort - unreachable + else + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end end + ) + (func $~lib/rt/tlsf/freeBlock (; 56 ;) (param $0 i32) (param $1 i32) + (local $2 i32) local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 + local.set $2 local.get $1 - i32.store offset=8 - local.get $0 - ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 63 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - if (result i32) - local.get $0 - else - i32.const 16 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 + call $~lib/rt/tlsf/insertBlock local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $assembly/__tests__/setup/Event/EventDispatcher#constructor (; 64 ;) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.const 0 - call "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" - i32.store - local.get $0 + call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3800,28 +3334,6 @@ local.get $1 i32.load local.set $4 - local.get $4 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $1 - i32.load offset=4 - i32.const -268435456 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 525 - i32.const 4 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $4 i32.const -4 @@ -3899,12 +3411,14 @@ end local.get $0 local.get $2 + local.get $1 + i32.load offset=8 call $~lib/rt/tlsf/allocateBlock local.set $8 local.get $8 local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.load offset=4 + i32.store offset=4 local.get $8 i32.const 16 i32.add @@ -3918,49 +3432,24 @@ i32.ge_u if local.get $1 - local.get $4 - i32.const 1 - i32.or - i32.store + local.get $8 + call $~lib/rt/rtrace/onrealloc local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree + call $~lib/rt/tlsf/freeBlock end local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 66 ;) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 586 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + (func $~lib/rt/tlsf/__realloc (; 58 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.const 16 - i32.sub + call $~lib/rt/tlsf/checkUsedBlock local.get $1 call $~lib/rt/tlsf/reallocateBlock i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3980,8 +3469,8 @@ i32.shr_u i32.gt_u if + i32.const 192 i32.const 304 - i32.const 416 i32.const 14 i32.const 47 call $~lib/builtins/abort @@ -4012,7 +3501,6 @@ if local.get $0 local.get $6 - call $~lib/rt/pure/__retain i32.store local.get $0 local.get $6 @@ -4023,7 +3511,7 @@ i32.store offset=8 end ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 68 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#push" (; 60 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4050,7 +3538,7 @@ i32.store offset=12 local.get $3 ) - (func $assembly/__tests__/setup/Event/initializeDispatcher (; 69 ;) (result i32) + (func $assembly/__tests__/setup/Event/initializeDispatcher (; 61 ;) (result i32) (local $0 i32) i32.const 0 call $assembly/__tests__/setup/Event/EventDispatcher#constructor @@ -4067,7 +3555,7 @@ drop local.get $0 ) - (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 70 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#constructor (; 62 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 i32.eqz if @@ -4088,14 +3576,14 @@ f64.store offset=16 local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 71 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 63 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 1073741808 i32.gt_u if - i32.const 304 - i32.const 352 + i32.const 192 + i32.const 240 i32.const 54 i32.const 42 call $~lib/builtins/abort @@ -4112,7 +3600,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $assembly/internal/Expectation/Expectation#constructor (; 72 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 64 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -4133,12 +3621,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 73 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 65 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 74 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 66 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -4164,7 +3652,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 75 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 67 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -4198,7 +3686,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 76 ;) + (func $assembly/internal/comparison/assert/assert (; 68 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 544 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/exactComparison/exactComparison (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $1 + local.get $0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 70 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -4218,7 +3744,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 77 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 71 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -4236,75 +3762,35 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toStrictEqual (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toStrictEqual (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 - i32.eq - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release return ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|0 (; 79 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|0 (; 73 ;) (local $0 i32) i32.const 3 call $assembly/internal/Expectation/expect local.tee $0 i32.const 3 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 80 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 74 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4314,14 +3800,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 81 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 75 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|1 (; 82 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|1 (; 76 ;) (local $0 i32) (local $1 i32) i32.const 3 @@ -4330,14 +3816,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 3 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/throws (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -4353,7 +3839,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|2 (; 84 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|2 (; 78 ;) (local $0 i32) (local $1 i32) i32.const 3 @@ -4362,25 +3848,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|3 (; 85 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|3 (; 79 ;) (local $0 i32) i32.const 3 call $assembly/internal/Expectation/expect local.tee $0 i32.const 1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 86 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 80 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4423,7 +3909,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 87 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 81 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4436,7 +3922,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 88 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 82 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4464,7 +3950,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 89 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 83 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4502,7 +3988,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/__tests__/setup/Vec3/Vec3#__equals (; 90 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/__tests__/setup/Vec3/Vec3#__equals (; 84 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -4540,6 +4026,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1584 + i32.const 54 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load @@ -4552,6 +4043,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1584 + i32.const 55 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load offset=8 @@ -4567,6 +4063,11 @@ if (result i32) local.get $2 else + i32.const 0 + i32.const 1584 + i32.const 56 + i32.const 21 + call $~lib/builtins/abort unreachable end f64.load offset=16 @@ -4579,8 +4080,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $assembly/internal/Expectation/Expectation#toStrictEqual (; 91 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/referenceComparison/referenceComparison (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -4592,239 +4092,207 @@ (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__retain local.set $1 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/referenceComparison/referenceComparison|inlined.0 + call $assembly/internal/report/Expected/Expected.report + local.get $1 + local.get $0 + call $assembly/__tests__/setup/Vec3/Vec3#__equals + if + local.get $2 + i32.eqz + local.get $3 + call $assembly/internal/comparison/assert/assert local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 + call $~lib/rt/pure/__release local.get $1 - call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $1 + local.set $6 + local.get $0 + local.set $5 + i32.const 24 + local.set $4 + block $~lib/util/memory/memcmp|inlined.0 (result i32) local.get $6 - call $assembly/internal/report/Actual/Actual.report + local.set $9 local.get $5 + local.set $8 local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $5 - local.get $6 - call $assembly/__tests__/setup/Vec3/Vec3#__equals + local.set $7 + local.get $9 + local.get $8 + i32.eq if - local.get $4 - i32.eqz - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/referenceComparison/referenceComparison|inlined.0 + i32.const 0 + br $~lib/util/memory/memcmp|inlined.0 end - local.get $5 - local.set $9 - local.get $6 - local.set $8 - i32.const 24 - local.set $7 - block $~lib/util/memory/memcmp|inlined.0 (result i32) - local.get $9 - local.set $12 - local.get $8 - local.set $11 - local.get $7 - local.set $10 - local.get $12 - local.get $11 - i32.eq - if - i32.const 0 - br $~lib/util/memory/memcmp|inlined.0 - end - local.get $12 - i32.const 7 - i32.and - local.get $11 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 + local.get $9 + i32.const 7 + i32.and + local.get $8 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $9 + i32.const 7 + i32.and + local.set $10 + local.get $10 + if + local.get $7 + i32.eqz + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.0 + end + local.get $9 + i32.load8_u + local.set $11 + local.get $8 + i32.load8_u + local.set $12 + local.get $11 local.get $12 - i32.const 7 - i32.and - local.set $13 - local.get $13 + i32.ne if - local.get $10 - i32.eqz - if - i32.const 0 - br $~lib/util/memory/memcmp|inlined.0 - end - local.get $12 - i32.load8_u - local.set $14 local.get $11 - i32.load8_u - local.set $15 - local.get $14 - local.get $15 - i32.ne - if - local.get $14 - local.get $15 - i32.sub - br $~lib/util/memory/memcmp|inlined.0 - end - local.get $10 - i32.const 1 - i32.sub - local.set $10 local.get $12 - i32.const 1 - i32.add - local.set $12 - local.get $11 - i32.const 1 - i32.add - local.set $11 - br $while-continue|0 + i32.sub + br $~lib/util/memory/memcmp|inlined.0 end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $9 + i32.const 1 + i32.add + local.set $9 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $while-continue|0 end - block $while-break|1 - loop $while-continue|1 - local.get $10 - i32.const 8 - i32.ge_u - local.set $13 - local.get $13 + end + block $while-break|1 + loop $while-continue|1 + local.get $7 + i32.const 8 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $9 + i64.load + local.get $8 + i64.load + i64.ne if - local.get $12 - i64.load - local.get $11 - i64.load - i64.ne - if - br $while-break|1 - end - local.get $12 - i32.const 8 - i32.add - local.set $12 - local.get $11 - i32.const 8 - i32.add - local.set $11 - local.get $10 - i32.const 8 - i32.sub - local.set $10 - br $while-continue|1 + br $while-break|1 end + local.get $9 + i32.const 8 + i32.add + local.set $9 + local.get $8 + i32.const 8 + i32.add + local.set $8 + local.get $7 + i32.const 8 + i32.sub + local.set $7 + br $while-continue|1 end end end - loop $while-continue|2 - local.get $10 - local.tee $13 - i32.const 1 - i32.sub - local.set $10 - local.get $13 + end + loop $while-continue|2 + local.get $7 + local.tee $10 + i32.const 1 + i32.sub + local.set $7 + local.get $10 + local.set $10 + local.get $10 + if + local.get $9 + i32.load8_u local.set $13 + local.get $8 + i32.load8_u + local.set $14 local.get $13 + local.get $14 + i32.ne if - local.get $12 - i32.load8_u - local.set $16 - local.get $11 - i32.load8_u - local.set $17 - local.get $16 - local.get $17 - i32.ne - if - local.get $16 - local.get $17 - i32.sub - br $~lib/util/memory/memcmp|inlined.0 - end - local.get $12 - i32.const 1 - i32.add - local.set $12 - local.get $11 - i32.const 1 - i32.add - local.set $11 - br $while-continue|2 + local.get $13 + local.get $14 + i32.sub + br $~lib/util/memory/memcmp|inlined.0 end + local.get $9 + i32.const 1 + i32.add + local.set $9 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $while-continue|2 end - i32.const 0 end - local.set $9 - local.get $4 - local.get $9 i32.const 0 - i32.eq - i32.xor - local.set $10 - local.get $3 - call $~lib/rt/pure/__retain - local.set $13 - local.get $10 - i32.eqz - if - local.get $13 - call $~lib/rt/pure/__release - local.get $13 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $13 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release end + local.set $6 + local.get $2 + local.get $6 + i32.const 0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toStrictEqual (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/referenceComparison/referenceComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -4832,25 +4300,25 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|4 (; 92 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|4 (; 87 ;) (local $0 i32) global.get $assembly/__tests__/toStrictEqual.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/toStrictEqual.spec/vec3 - i32.const 1520 + i32.const 1408 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 93 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 88 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|5 (; 94 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|5 (; 89 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toStrictEqual.spec/vec1 @@ -4859,14 +4327,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 global.get $assembly/__tests__/toStrictEqual.spec/vec3 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|6 (; 95 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|6 (; 90 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toStrictEqual.spec/vec1 @@ -4875,25 +4343,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 global.get $assembly/__tests__/toStrictEqual.spec/vec2 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|7 (; 96 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|7 (; 91 ;) (local $0 i32) global.get $assembly/__tests__/toStrictEqual.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/toStrictEqual.spec/vec2 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 97 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 92 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4936,7 +4404,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect (; 98 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 93 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4949,7 +4417,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report (; 99 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 94 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4987,7 +4455,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report (; 100 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 95 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5035,8 +4503,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#toStrictEqual (; 101 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/referenceComparison/referenceComparison (; 96 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -5048,277 +4515,229 @@ (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $2 + local.get $3 call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/referenceComparison/referenceComparison|inlined.0 + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $1 + local.get $0 + call $assembly/__tests__/setup/Vec3/Vec3#__equals + if + local.get $2 + i32.eqz + local.get $3 + call $assembly/internal/comparison/assert/assert local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 + call $~lib/rt/pure/__release local.get $1 - call $~lib/rt/pure/__retain - local.set $5 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $5 - local.get $6 - call $assembly/__tests__/setup/Vec3/Vec3#__equals - if - local.get $4 - i32.eqz - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/referenceComparison/referenceComparison|inlined.0 - end - local.get $5 i32.const 0 i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - i32.const 0 - i32.eq - end - if - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/referenceComparison/referenceComparison|inlined.0 - end - local.get $5 - local.set $9 - local.get $6 - local.set $8 - i32.const 24 - local.set $7 - block $~lib/util/memory/memcmp|inlined.1 (result i32) - local.get $9 - local.set $12 - local.get $8 - local.set $11 - local.get $7 - local.set $10 - local.get $12 - local.get $11 - i32.eq - if - i32.const 0 - br $~lib/util/memory/memcmp|inlined.1 - end - local.get $12 - i32.const 7 - i32.and - local.get $11 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $12 - i32.const 7 - i32.and - local.set $13 - local.get $13 - if - local.get $10 - i32.eqz - if - i32.const 0 - br $~lib/util/memory/memcmp|inlined.1 - end - local.get $12 - i32.load8_u - local.set $14 - local.get $11 - i32.load8_u - local.set $15 - local.get $14 - local.get $15 - i32.ne - if - local.get $14 - local.get $15 - i32.sub - br $~lib/util/memory/memcmp|inlined.1 - end - local.get $10 - i32.const 1 - i32.sub - local.set $10 - local.get $12 - i32.const 1 - i32.add - local.set $12 - local.get $11 - i32.const 1 - i32.add - local.set $11 - br $while-continue|0 - end - end - block $while-break|1 - loop $while-continue|1 - local.get $10 - i32.const 8 - i32.ge_u - local.set $13 - local.get $13 - if - local.get $12 - i64.load - local.get $11 - i64.load - i64.ne - if - br $while-break|1 - end - local.get $12 - i32.const 8 - i32.add - local.set $12 - local.get $11 - i32.const 8 - i32.add - local.set $11 - local.get $10 - i32.const 8 - i32.sub - local.set $10 - br $while-continue|1 - end - end - end - end - loop $while-continue|2 - local.get $10 - local.tee $13 - i32.const 1 - i32.sub + end + if + local.get $2 + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $1 + local.set $6 + local.get $0 + local.set $5 + i32.const 24 + local.set $4 + block $~lib/util/memory/memcmp|inlined.1 (result i32) + local.get $6 + local.set $9 + local.get $5 + local.set $8 + local.get $4 + local.set $7 + local.get $9 + local.get $8 + i32.eq + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.1 + end + local.get $9 + i32.const 7 + i32.and + local.get $8 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $9 + i32.const 7 + i32.and local.set $10 - local.get $13 - local.set $13 - local.get $13 + local.get $10 if - local.get $12 + local.get $7 + i32.eqz + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.1 + end + local.get $9 i32.load8_u - local.set $16 - local.get $11 + local.set $11 + local.get $8 i32.load8_u - local.set $17 - local.get $16 - local.get $17 + local.set $12 + local.get $11 + local.get $12 i32.ne if - local.get $16 - local.get $17 + local.get $11 + local.get $12 i32.sub br $~lib/util/memory/memcmp|inlined.1 end - local.get $12 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $9 i32.const 1 i32.add - local.set $12 - local.get $11 + local.set $9 + local.get $8 i32.const 1 i32.add - local.set $11 - br $while-continue|2 + local.set $8 + br $while-continue|0 + end + end + block $while-break|1 + loop $while-continue|1 + local.get $7 + i32.const 8 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $9 + i64.load + local.get $8 + i64.load + i64.ne + if + br $while-break|1 + end + local.get $9 + i32.const 8 + i32.add + local.set $9 + local.get $8 + i32.const 8 + i32.add + local.set $8 + local.get $7 + i32.const 8 + i32.sub + local.set $7 + br $while-continue|1 + end end end - i32.const 0 end - local.set $9 - local.get $4 - local.get $9 - i32.const 0 - i32.eq - i32.xor - local.set $10 - local.get $3 - call $~lib/rt/pure/__retain - local.set $13 - local.get $10 - i32.eqz - if - local.get $13 - call $~lib/rt/pure/__release - local.get $13 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable + loop $while-continue|2 + local.get $7 + local.tee $10 + i32.const 1 + i32.sub + local.set $7 + local.get $10 + local.set $10 + local.get $10 + if + local.get $9 + i32.load8_u + local.set $13 + local.get $8 + i32.load8_u + local.set $14 + local.get $13 + local.get $14 + i32.ne + if + local.get $13 + local.get $14 + i32.sub + br $~lib/util/memory/memcmp|inlined.1 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $while-continue|2 + end end - local.get $13 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + i32.const 0 end + local.set $6 + local.get $2 + local.get $6 + i32.const 0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toStrictEqual (; 97 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/referenceComparison/referenceComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -5326,25 +4745,25 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|8 (; 102 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|8 (; 98 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 103 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 99 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|9 (; 104 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|9 (; 100 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -5353,14 +4772,14 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|10 (; 105 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|10 (; 101 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toStrictEqual.spec/vec1 @@ -5369,25 +4788,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 i32.const 0 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|11 (; 106 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|11 (; 102 ;) (local $0 i32) global.get $assembly/__tests__/toStrictEqual.spec/vec1 call $assembly/internal/Expectation/expect local.tee $0 i32.const 0 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|12 (; 107 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|12 (; 103 ;) (local $0 i32) (local $1 i32) i32.const 0 @@ -5396,25 +4815,25 @@ call $assembly/internal/Expectation/Expectation#get:not local.tee $1 global.get $assembly/__tests__/toStrictEqual.spec/vec1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|13 (; 108 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|13 (; 104 ;) (local $0 i32) i32.const 0 call $assembly/internal/Expectation/expect local.tee $0 global.get $assembly/__tests__/toStrictEqual.spec/vec1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation#toStrictEqual local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#constructor (; 109 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#constructor (; 105 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5457,7 +4876,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> (; 110 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> (; 106 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5470,13 +4889,13 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 111 ;) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 107 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $assembly/internal/report/Actual/Actual.report<~lib/arraybuffer/ArrayBuffer> (; 112 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report<~lib/arraybuffer/ArrayBuffer> (; 108 ;) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5501,37 +4920,94 @@ i32.const 4 global.set $assembly/internal/report/Actual/Actual.type local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - global.set $assembly/internal/report/Actual/Actual.offset - local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + global.set $assembly/internal/report/Actual/Actual.offset + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Expected/Expected.report<~lib/arraybuffer/ArrayBuffer> (; 109 ;) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + global.get $assembly/internal/report/Expected/Expected.ready + i32.eqz + if + call $assembly/internal/report/Expected/reportInvalidExpectCall + local.get $0 + call $~lib/rt/pure/__release + return + end + call $assembly/internal/report/Expected/getStackTrace + global.set $assembly/internal/report/Expected/Expected.stackTrace + local.get $1 + global.set $assembly/internal/report/Expected/Expected.negated + local.get $0 + local.set $2 + local.get $2 + call $~lib/rt/pure/__retain + drop + global.get $assembly/internal/report/Expected/Expected.isManaged + if + global.get $assembly/internal/report/Expected/Expected.reference + call $~lib/rt/pure/__release + end + local.get $2 + global.set $assembly/internal/report/Expected/Expected.reference + i32.const 1 + global.set $assembly/internal/report/Expected/Expected.isManaged + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 4 + global.set $assembly/internal/report/Expected/Expected.type + local.get $3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + global.set $assembly/internal/report/Expected/Expected.offset + local.get $3 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/exactComparison/exactComparison<~lib/arraybuffer/ArrayBuffer> (; 110 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report<~lib/arraybuffer/ArrayBuffer> + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/arraybuffer/ArrayBuffer> + local.get $2 + local.get $1 + local.get $0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $3 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report<~lib/arraybuffer/ArrayBuffer> (; 113 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - global.get $assembly/internal/report/Expected/Expected.ready - i32.eqz - if - call $assembly/internal/report/Expected/reportInvalidExpectCall - local.get $0 - call $~lib/rt/pure/__release - return - end - call $assembly/internal/report/Expected/getStackTrace - global.set $assembly/internal/report/Expected/Expected.stackTrace - local.get $1 - global.set $assembly/internal/report/Expected/Expected.negated + (func $assembly/internal/report/Expected/reportExpectedReference<~lib/arraybuffer/ArrayBuffer> (; 111 ;) (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 4 + global.set $assembly/internal/report/Expected/Expected.type local.get $0 - local.set $2 - local.get $2 call $~lib/rt/pure/__retain drop global.get $assembly/internal/report/Expected/Expected.isManaged @@ -5539,25 +5015,34 @@ global.get $assembly/internal/report/Expected/Expected.reference call $~lib/rt/pure/__release end - local.get $2 + local.get $0 global.set $assembly/internal/report/Expected/Expected.reference + local.get $1 + global.set $assembly/internal/report/Expected/Expected.offset + local.get $2 + global.set $assembly/internal/report/Expected/Expected.negated i32.const 1 global.set $assembly/internal/report/Expected/Expected.isManaged + ) + (func $assembly/internal/report/Actual/reportActualReference<~lib/arraybuffer/ArrayBuffer> (; 112 ;) (param $0 i32) (param $1 i32) + i32.const 4 + global.set $assembly/internal/report/Actual/Actual.type local.get $0 call $~lib/rt/pure/__retain - local.set $3 - i32.const 4 - global.set $assembly/internal/report/Expected/Expected.type - local.get $3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - global.set $assembly/internal/report/Expected/Expected.offset - local.get $3 - call $~lib/rt/pure/__release + drop + global.get $assembly/internal/report/Actual/Actual.isManaged + if + global.get $assembly/internal/report/Actual/Actual.reference + call $~lib/rt/pure/__release + end local.get $0 - call $~lib/rt/pure/__release + global.set $assembly/internal/report/Actual/Actual.reference + local.get $1 + global.set $assembly/internal/report/Actual/Actual.offset + i32.const 1 + global.set $assembly/internal/report/Actual/Actual.isManaged ) - (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toStrictEqual (; 114 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/blockComparison/blockComparison<~lib/arraybuffer/ArrayBuffer> (; 113 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -5574,345 +5059,236 @@ (local $17 i32) (local $18 i32) (local $19 i32) - (local $20 i32) - (local $21 i32) - (local $22 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $2 + local.get $3 call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/blockComparison/blockComparison<~lib/arraybuffer/ArrayBuffer>|inlined.0 + local.set $3 + local.get $0 + local.get $1 + i32.eq + if local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 local.get $1 - call $~lib/rt/pure/__retain - local.set $5 + local.get $2 + local.get $3 + call $assembly/internal/comparison/exactComparison/exactComparison<~lib/arraybuffer/ArrayBuffer> local.get $0 - i32.load - local.set $4 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $1 + local.set $4 + local.get $0 + local.set $5 + local.get $4 + i32.const 16 + i32.sub + i32.load offset=12 + local.set $6 + local.get $5 + i32.const 16 + i32.sub + i32.load offset=12 + local.set $7 + local.get $4 + local.get $6 + local.get $2 + call $assembly/internal/report/Expected/reportExpectedReference<~lib/arraybuffer/ArrayBuffer> + local.get $5 + local.get $7 + call $assembly/internal/report/Actual/reportActualReference<~lib/arraybuffer/ArrayBuffer> + local.get $7 + local.get $6 + i32.eq + local.set $8 + local.get $8 + i32.eqz + if local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - local.get $5 - i32.eq - if - local.get $6 - call $~lib/rt/pure/__retain - local.set $10 - local.get $5 - call $~lib/rt/pure/__retain - local.set $9 - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $10 - call $assembly/internal/report/Actual/Actual.report<~lib/arraybuffer/ArrayBuffer> - local.get $9 - local.get $8 - call $assembly/internal/report/Expected/Expected.report<~lib/arraybuffer/ArrayBuffer> - local.get $8 - local.get $9 - local.get $10 - i32.eq - i32.xor - local.set $12 - local.get $7 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - i32.eqz - if - local.get $11 - call $~lib/rt/pure/__release - local.get $11 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $11 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/blockComparison/blockComparison<~lib/arraybuffer/ArrayBuffer>|inlined.0 - end + local.get $3 + call $assembly/internal/comparison/assert/assert + else local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $10 - i32.const 16 - i32.sub - i32.load offset=12 - local.set $8 - local.get $9 - i32.const 16 - i32.sub - i32.load offset=12 - local.set $7 - local.get $10 - local.set $13 - local.get $8 - local.set $12 - local.get $4 - local.set $11 - i32.const 4 - global.set $assembly/internal/report/Expected/Expected.type - local.get $13 - call $~lib/rt/pure/__retain - drop - global.get $assembly/internal/report/Expected/Expected.isManaged - if - global.get $assembly/internal/report/Expected/Expected.reference - call $~lib/rt/pure/__release - end - local.get $13 - global.set $assembly/internal/report/Expected/Expected.reference - local.get $12 - global.set $assembly/internal/report/Expected/Expected.offset - local.get $11 - global.set $assembly/internal/report/Expected/Expected.negated - i32.const 1 - global.set $assembly/internal/report/Expected/Expected.isManaged - local.get $9 - local.set $12 - local.get $7 local.set $11 - i32.const 4 - global.set $assembly/internal/report/Actual/Actual.type - local.get $12 - call $~lib/rt/pure/__retain - drop - global.get $assembly/internal/report/Actual/Actual.isManaged - if - global.get $assembly/internal/report/Actual/Actual.reference - call $~lib/rt/pure/__release - end - local.get $12 - global.set $assembly/internal/report/Actual/Actual.reference - local.get $11 - global.set $assembly/internal/report/Actual/Actual.offset - i32.const 1 - global.set $assembly/internal/report/Actual/Actual.isManaged + local.get $4 + local.set $10 local.get $7 - local.get $8 - i32.eq - local.set $12 - local.get $12 - i32.eqz - if - local.get $4 - local.set $11 - local.get $3 - call $~lib/rt/pure/__retain - local.set $13 + local.set $9 + block $~lib/util/memory/memcmp|inlined.2 (result i32) local.get $11 - i32.eqz - if - local.get $13 - call $~lib/rt/pure/__release - local.get $13 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $13 - call $~lib/rt/pure/__release - else - local.get $9 local.set $14 local.get $10 - local.set $11 - local.get $7 local.set $13 - block $~lib/util/memory/memcmp|inlined.2 (result i32) - local.get $14 - local.set $17 - local.get $11 - local.set $16 - local.get $13 - local.set $15 - local.get $17 - local.get $16 - i32.eq - if - i32.const 0 - br $~lib/util/memory/memcmp|inlined.2 - end - local.get $17 - i32.const 7 - i32.and - local.get $16 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 + local.get $9 + local.set $12 + local.get $14 + local.get $13 + i32.eq + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.2 + end + local.get $14 + i32.const 7 + i32.and + local.get $13 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $14 + i32.const 7 + i32.and + local.set $15 + local.get $15 + if + local.get $12 + i32.eqz + if + i32.const 0 + br $~lib/util/memory/memcmp|inlined.2 + end + local.get $14 + i32.load8_u + local.set $16 + local.get $13 + i32.load8_u + local.set $17 + local.get $16 local.get $17 - i32.const 7 - i32.and - local.set $18 - local.get $18 + i32.ne if - local.get $15 - i32.eqz - if - i32.const 0 - br $~lib/util/memory/memcmp|inlined.2 - end - local.get $17 - i32.load8_u - local.set $19 local.get $16 - i32.load8_u - local.set $20 - local.get $19 - local.get $20 - i32.ne - if - local.get $19 - local.get $20 - i32.sub - br $~lib/util/memory/memcmp|inlined.2 - end - local.get $15 - i32.const 1 - i32.sub - local.set $15 local.get $17 - i32.const 1 - i32.add - local.set $17 - local.get $16 - i32.const 1 - i32.add - local.set $16 - br $while-continue|0 + i32.sub + br $~lib/util/memory/memcmp|inlined.2 end + local.get $12 + i32.const 1 + i32.sub + local.set $12 + local.get $14 + i32.const 1 + i32.add + local.set $14 + local.get $13 + i32.const 1 + i32.add + local.set $13 + br $while-continue|0 end - block $while-break|1 - loop $while-continue|1 - local.get $15 - i32.const 8 - i32.ge_u - local.set $18 - local.get $18 + end + block $while-break|1 + loop $while-continue|1 + local.get $12 + i32.const 8 + i32.ge_u + local.set $15 + local.get $15 + if + local.get $14 + i64.load + local.get $13 + i64.load + i64.ne if - local.get $17 - i64.load - local.get $16 - i64.load - i64.ne - if - br $while-break|1 - end - local.get $17 - i32.const 8 - i32.add - local.set $17 - local.get $16 - i32.const 8 - i32.add - local.set $16 - local.get $15 - i32.const 8 - i32.sub - local.set $15 - br $while-continue|1 + br $while-break|1 end + local.get $14 + i32.const 8 + i32.add + local.set $14 + local.get $13 + i32.const 8 + i32.add + local.set $13 + local.get $12 + i32.const 8 + i32.sub + local.set $12 + br $while-continue|1 end end end - loop $while-continue|2 - local.get $15 - local.tee $18 - i32.const 1 - i32.sub - local.set $15 - local.get $18 + end + loop $while-continue|2 + local.get $12 + local.tee $15 + i32.const 1 + i32.sub + local.set $12 + local.get $15 + local.set $15 + local.get $15 + if + local.get $14 + i32.load8_u local.set $18 + local.get $13 + i32.load8_u + local.set $19 local.get $18 + local.get $19 + i32.ne if - local.get $17 - i32.load8_u - local.set $21 - local.get $16 - i32.load8_u - local.set $22 - local.get $21 - local.get $22 - i32.ne - if - local.get $21 - local.get $22 - i32.sub - br $~lib/util/memory/memcmp|inlined.2 - end - local.get $17 - i32.const 1 - i32.add - local.set $17 - local.get $16 - i32.const 1 - i32.add - local.set $16 - br $while-continue|2 + local.get $18 + local.get $19 + i32.sub + br $~lib/util/memory/memcmp|inlined.2 end + local.get $14 + i32.const 1 + i32.add + local.set $14 + local.get $13 + i32.const 1 + i32.add + local.set $13 + br $while-continue|2 end - i32.const 0 end i32.const 0 - i32.eq - local.set $14 - local.get $4 - local.get $14 - i32.xor - local.set $15 - local.get $3 - call $~lib/rt/pure/__retain - local.set $18 - local.get $15 - i32.eqz - if - local.get $18 - call $~lib/rt/pure/__release - local.get $18 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $18 - call $~lib/rt/pure/__release end + i32.const 0 + i32.eq + local.set $11 + local.get $2 + local.get $11 + i32.xor local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toStrictEqual (; 114 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/blockComparison/blockComparison<~lib/arraybuffer/ArrayBuffer> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -5927,7 +5303,7 @@ call $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> local.tee $0 global.get $assembly/__tests__/toStrictEqual.spec/buff2 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toStrictEqual local.get $0 call $~lib/rt/pure/__release @@ -5948,7 +5324,7 @@ call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#get:not local.tee $1 global.get $assembly/__tests__/toStrictEqual.spec/buff2 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toStrictEqual local.get $0 call $~lib/rt/pure/__release @@ -5964,7 +5340,7 @@ call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#get:not local.tee $1 global.get $assembly/__tests__/toStrictEqual.spec/buff3 - i32.const 3936 + i32.const 3904 call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toStrictEqual local.get $0 call $~lib/rt/pure/__release @@ -5977,7 +5353,7 @@ call $assembly/internal/Expectation/expect<~lib/arraybuffer/ArrayBuffer> local.tee $0 global.get $assembly/__tests__/toStrictEqual.spec/buff3 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/arraybuffer/ArrayBuffer>#toStrictEqual local.get $0 call $~lib/rt/pure/__release @@ -6144,184 +5520,135 @@ ) (func $~lib/array/Array#__unchecked_get (; 126 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.load offset=4 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array> (; 127 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report<~lib/array/Array> + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/array/Array> + local.get $0 + local.get $1 + i32.eq + if + local.get $2 + i32.eqz + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.ne + if + local.get $2 + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + i32.const 1 + local.set $4 + local.get $0 + call $~lib/array/Array#get:length + local.set $5 + i32.const 0 + local.set $6 + block $for-break0 + loop $for-loop|0 + local.get $6 + local.get $5 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $0 + local.get $6 + call $~lib/array/Array#__unchecked_get + local.set $8 + local.get $1 + local.get $6 + call $~lib/array/Array#__unchecked_get + local.set $9 + local.get $8 + local.get $9 + i32.eq + if + br $for-continue|0 + end + i32.const 0 + local.set $4 + br $for-break0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + end + local.get $4 + local.get $2 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual (; 127 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual (; 128 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $2 call $~lib/rt/pure/__retain local.set $2 - block $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array>|inlined.0 - local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 - local.get $1 - call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report<~lib/array/Array> - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report<~lib/array/Array> - local.get $6 - local.get $5 - i32.eq - if - local.get $4 - i32.eqz - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array>|inlined.0 - end - local.get $6 - i32.load offset=8 - local.get $5 - i32.load offset=8 - i32.ne - if - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array>|inlined.0 - end - i32.const 1 - local.set $8 - local.get $6 - call $~lib/array/Array#get:length - local.set $7 - i32.const 0 - local.set $9 - block $for-break0 - loop $for-loop|0 - local.get $9 - local.get $7 - i32.lt_s - local.set $10 - local.get $10 - if - block $for-continue|0 - local.get $6 - local.get $9 - call $~lib/array/Array#__unchecked_get - local.set $11 - local.get $5 - local.get $9 - call $~lib/array/Array#__unchecked_get - local.set $12 - local.get $11 - local.get $12 - i32.eq - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - br $for-break0 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - end - local.get $8 - local.get $4 - i32.xor - local.set $12 - local.get $3 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - i32.eqz - if - local.get $11 - call $~lib/rt/pure/__release - local.get $11 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $11 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - end + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -6330,13 +5657,13 @@ call $~lib/rt/pure/__release return ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|18 (; 128 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|18 (; 129 ;) (local $0 i32) (local $1 i32) i32.const 3 i32.const 2 i32.const 11 - i32.const 4592 + i32.const 4560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $1 @@ -6344,28 +5671,28 @@ call $assembly/internal/Expectation/expect<~lib/array/Array> local.tee $0 local.get $1 - i32.const 4624 + i32.const 4592 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 129 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 130 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|19 (; 130 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|19 (; 131 ;) (local $0 i32) (local $1 i32) (local $2 i32) i32.const 3 i32.const 2 i32.const 11 - i32.const 4848 + i32.const 4816 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $1 @@ -6375,7 +5702,7 @@ call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not local.tee $2 local.get $1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $1 call $~lib/rt/pure/__release @@ -6384,7 +5711,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|20 (; 131 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|20 (; 132 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6392,7 +5719,7 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5184 + i32.const 5152 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $1 @@ -6402,11 +5729,11 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5216 + i32.const 5184 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $3 - i32.const 5248 + i32.const 5216 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $1 call $~lib/rt/pure/__release @@ -6415,7 +5742,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|21 (; 132 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|21 (; 133 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6424,7 +5751,7 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5488 + i32.const 5456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $1 @@ -6436,11 +5763,11 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5520 + i32.const 5488 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $4 - i32.const 5248 + i32.const 5216 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $1 call $~lib/rt/pure/__release @@ -6451,7 +5778,7 @@ local.get $4 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|22 (; 133 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|22 (; 134 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6460,7 +5787,7 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5696 + i32.const 5664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $1 @@ -6472,11 +5799,11 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5728 + i32.const 5696 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $4 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $1 call $~lib/rt/pure/__release @@ -6487,7 +5814,7 @@ local.get $4 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|23 (; 134 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|23 (; 135 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6495,7 +5822,7 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5904 + i32.const 5872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $1 @@ -6505,11 +5832,11 @@ i32.const 3 i32.const 2 i32.const 11 - i32.const 5936 + i32.const 5904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $3 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $1 call $~lib/rt/pure/__release @@ -6518,7 +5845,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 135 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 136 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -6539,12 +5866,12 @@ i32.store8 offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 136 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 137 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 137 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 138 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -6572,7 +5899,7 @@ i32.and global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 138 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 139 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -6608,76 +5935,57 @@ i32.and global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/Expectation/Expectation#toBe (; 139 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/exactComparison/exactComparison (; 140 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - i32.load8_u offset=4 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 + local.get $2 + local.get $1 + i32.const 255 + i32.and + local.get $0 i32.const 255 i32.and - local.get $6 i32.eq i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBe (; 141 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load8_u offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|24 (; 140 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|24 (; 142 ;) (local $0 i32) i32.const 42 call $assembly/internal/Expectation/expect local.tee $0 i32.const 42 - i32.const 6128 + i32.const 6096 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 141 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#constructor (; 143 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6720,7 +6028,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 142 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/array/Array> (; 144 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6733,7 +6041,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 143 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 145 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6759,7 +6067,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 144 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 146 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6795,11 +6103,11 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#get:length (; 145 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 147 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 146 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 148 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6809,8 +6117,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual (; 147 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array> (; 149 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -6819,189 +6126,141 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $2 + local.get $3 call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array>|inlined.0 + local.set $3 + i32.const 6448 + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + i32.const 6448 + i32.const 0 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + local.get $0 + local.get $1 + i32.eq + if + local.get $2 + i32.eqz + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.ne + if + local.get $2 + local.get $3 + call $assembly/internal/comparison/assert/assert local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 + call $~lib/rt/pure/__release local.get $1 - call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 6480 - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - i32.const 6480 - i32.const 0 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - local.get $6 - local.get $5 - i32.eq - if - local.get $4 - i32.eqz - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + i32.const 1 + local.set $4 + local.get $0 + call $~lib/array/Array#get:length + local.set $5 + i32.const 0 + local.set $6 + block $for-break0 + loop $for-loop|0 local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array>|inlined.0 - end - local.get $6 - i32.load offset=8 - local.get $5 - i32.load offset=8 - i32.ne - if - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain + local.get $5 + i32.lt_s local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array>|inlined.0 - end - i32.const 1 - local.set $8 - local.get $6 - call $~lib/array/Array#get:length - local.set $7 - i32.const 0 - local.set $9 - block $for-break0 - loop $for-loop|0 - local.get $9 - local.get $7 - i32.lt_s - local.set $10 - local.get $10 - if - block $for-continue|0 - local.get $6 - local.get $9 - call $~lib/array/Array#__unchecked_get - local.tee $11 - call $~lib/rt/pure/__retain - local.set $12 - local.get $5 - local.get $9 - call $~lib/array/Array#__unchecked_get - local.tee $13 - call $~lib/rt/pure/__retain - local.set $14 - local.get $12 - local.get $14 - call $assembly/__tests__/setup/Vec3/Vec3#__equals - if - local.get $11 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $11 + if + block $for-continue|0 + local.get $0 + local.get $6 + call $~lib/array/Array#__unchecked_get + local.tee $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $1 + local.get $6 + call $~lib/array/Array#__unchecked_get + local.tee $10 + call $~lib/rt/pure/__retain + local.set $11 + local.get $9 + local.get $11 + call $assembly/__tests__/setup/Vec3/Vec3#__equals + if + local.get $8 call $~lib/rt/pure/__release - local.get $12 + local.get $9 call $~lib/rt/pure/__release - local.get $13 + local.get $10 call $~lib/rt/pure/__release - local.get $14 + local.get $11 call $~lib/rt/pure/__release - br $for-break0 + br $for-continue|0 end + i32.const 0 + local.set $4 + local.get $8 + call $~lib/rt/pure/__release local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + br $for-break0 end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 end end - local.get $8 - local.get $4 - i32.xor - local.set $12 - local.get $3 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - i32.eqz - if - local.get $11 - call $~lib/rt/pure/__release - local.get $11 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $11 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release end + local.get $4 + local.get $2 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual (; 150 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/array/Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -7010,7 +6269,7 @@ call $~lib/rt/pure/__release return ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|25 (; 148 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|25 (; 151 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7020,7 +6279,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) i32.const 3 i32.const 2 i32.const 14 @@ -7059,49 +6317,51 @@ call $~lib/rt/pure/__retain i32.store offset=8 local.get $0 - local.tee $1 - call $assembly/internal/Expectation/expect<~lib/array/Array> - local.tee $0 + local.set $1 i32.const 3 i32.const 2 i32.const 14 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + i32.load offset=4 local.set $5 local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 i32.const 0 f64.const 1 f64.const 2 f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $7 + local.tee $6 call $~lib/rt/pure/__retain i32.store - local.get $6 + local.get $5 i32.const 0 f64.const 4 f64.const 5 f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $8 + local.tee $7 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 f64.const 7 f64.const 8 f64.const 9 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $9 + local.tee $8 call $~lib/rt/pure/__retain i32.store offset=8 + local.get $0 + local.set $5 + local.get $1 + call $assembly/internal/Expectation/expect<~lib/array/Array> + local.tee $0 local.get $5 - local.tee $6 - i32.const 6352 + i32.const 6320 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $2 call $~lib/rt/pure/__release @@ -7111,25 +6371,25 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $6 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $5 call $~lib/rt/pure/__release - local.get $6 + local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 149 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not (; 152 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|26 (; 150 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|26 (; 153 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7140,7 +6400,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) i32.const 3 i32.const 2 i32.const 14 @@ -7179,51 +6438,53 @@ call $~lib/rt/pure/__retain i32.store offset=8 local.get $0 - local.tee $1 - call $assembly/internal/Expectation/expect<~lib/array/Array> - local.tee $0 - call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not - local.tee $5 + local.set $1 i32.const 3 i32.const 2 i32.const 14 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $0 + local.get $0 i32.load offset=4 - local.set $7 - local.get $7 + local.set $5 + local.get $5 i32.const 0 f64.const 1 f64.const 2 f64.const 3 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $8 + local.tee $6 call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $5 i32.const 0 f64.const 4 f64.const 5 f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $9 + local.tee $7 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 f64.const 7 f64.const 8 f64.const 9 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $10 + local.tee $8 call $~lib/rt/pure/__retain i32.store offset=8 - local.get $6 - local.tee $7 - i32.const 752 + local.get $0 + local.set $5 + local.get $1 + call $assembly/internal/Expectation/expect<~lib/array/Array> + local.tee $0 + call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not + local.tee $9 + local.get $5 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $2 call $~lib/rt/pure/__release @@ -7233,20 +6494,20 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $6 call $~lib/rt/pure/__release - local.get $5 + local.get $7 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $0 call $~lib/rt/pure/__release - local.get $7 + local.get $9 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|27 (; 151 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|27 (; 154 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7257,7 +6518,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) i32.const 3 i32.const 2 i32.const 14 @@ -7296,51 +6556,53 @@ call $~lib/rt/pure/__retain i32.store offset=8 local.get $0 - local.tee $1 - call $assembly/internal/Expectation/expect<~lib/array/Array> - local.tee $0 - call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not - local.tee $5 + local.set $1 i32.const 3 i32.const 2 i32.const 14 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $0 + local.get $0 i32.load offset=4 - local.set $7 - local.get $7 + local.set $5 + local.get $5 i32.const 0 f64.const 9 f64.const 8 f64.const 7 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $8 + local.tee $6 call $~lib/rt/pure/__retain i32.store - local.get $7 + local.get $5 i32.const 0 f64.const 4 f64.const 5 f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $9 + local.tee $7 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 f64.const 7 f64.const 8 f64.const 9 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $10 + local.tee $8 call $~lib/rt/pure/__retain i32.store offset=8 - local.get $6 - local.tee $7 - i32.const 6912 + local.get $0 + local.set $5 + local.get $1 + call $assembly/internal/Expectation/expect<~lib/array/Array> + local.tee $0 + call $assembly/internal/Expectation/Expectation<~lib/array/Array>#get:not + local.tee $9 + local.get $5 + i32.const 6880 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $2 call $~lib/rt/pure/__release @@ -7350,20 +6612,20 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $6 call $~lib/rt/pure/__release - local.get $5 + local.get $7 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $5 call $~lib/rt/pure/__release - local.get $10 + local.get $0 call $~lib/rt/pure/__release - local.get $7 + local.get $9 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|28 (; 152 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|28 (; 155 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7373,7 +6635,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) i32.const 3 i32.const 2 i32.const 14 @@ -7412,49 +6673,51 @@ call $~lib/rt/pure/__retain i32.store offset=8 local.get $0 - local.tee $1 - call $assembly/internal/Expectation/expect<~lib/array/Array> - local.tee $0 + local.set $1 i32.const 3 i32.const 2 i32.const 14 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + i32.load offset=4 local.set $5 local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 i32.const 0 f64.const 9 f64.const 8 f64.const 7 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $7 + local.tee $6 call $~lib/rt/pure/__retain i32.store - local.get $6 + local.get $5 i32.const 0 f64.const 4 f64.const 5 f64.const 6 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $8 + local.tee $7 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 f64.const 7 f64.const 8 f64.const 9 call $assembly/__tests__/setup/Vec3/Vec3#constructor - local.tee $9 + local.tee $8 call $~lib/rt/pure/__retain i32.store offset=8 + local.get $0 + local.set $5 + local.get $1 + call $assembly/internal/Expectation/expect<~lib/array/Array> + local.tee $0 local.get $5 - local.tee $6 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/array/Array>#toStrictEqual local.get $2 call $~lib/rt/pure/__release @@ -7464,18 +6727,18 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $6 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $5 call $~lib/rt/pure/__release - local.get $6 + local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#constructor (; 153 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#constructor (; 156 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -7491,21 +6754,7 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Float32Array#__set (; 154 ;) (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 192 - i32.const 7344 - i32.const 1187 - i32.const 63 - call $~lib/builtins/abort - unreachable - end + (func $~lib/typedarray/Float32Array#__uset (; 157 ;) (param $0 i32) (param $1 i32) (param $2 f32) local.get $0 i32.load offset=4 local.get $1 @@ -7515,7 +6764,7 @@ local.get $2 f32.store ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#constructor (; 155 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#constructor (; 158 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7558,7 +6807,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> (; 156 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> (; 159 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7571,7 +6820,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $assembly/internal/report/Actual/Actual.report<~lib/typedarray/Float32Array> (; 157 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report<~lib/typedarray/Float32Array> (; 160 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7597,7 +6846,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report<~lib/typedarray/Float32Array> (; 158 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report<~lib/typedarray/Float32Array> (; 161 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7633,13 +6882,13 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#get:length (; 159 ;) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#get:length (; 162 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Float32Array#__uget (; 160 ;) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Float32Array#__uget (; 163 ;) (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 local.get $1 @@ -7648,177 +6897,128 @@ i32.add f32.load ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toStrictEqual (; 161 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/typedarray/Float32Array> (; 164 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - (local $12 f32) + (local $8 f32) + (local $9 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $2 + local.get $3 call $~lib/rt/pure/__retain - local.set $2 - block $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/typedarray/Float32Array>|inlined.0 + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report<~lib/typedarray/Float32Array> + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report<~lib/typedarray/Float32Array> + local.get $0 + local.get $1 + i32.eq + if + local.get $2 + i32.eqz + local.get $3 + call $assembly/internal/comparison/assert/assert local.get $0 - i32.load offset=4 - call $~lib/rt/pure/__retain - local.set $6 + call $~lib/rt/pure/__release local.get $1 - call $~lib/rt/pure/__retain - local.set $5 - local.get $0 - i32.load - local.set $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.ne + if local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report<~lib/typedarray/Float32Array> - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report<~lib/typedarray/Float32Array> - local.get $6 - local.get $5 - i32.eq - if - local.get $4 - i32.eqz - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + return + end + i32.const 1 + local.set $4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $5 + i32.const 0 + local.set $6 + block $for-break0 + loop $for-loop|0 local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/typedarray/Float32Array>|inlined.0 - end - local.get $6 - i32.load offset=8 - local.get $5 - i32.load offset=8 - i32.ne - if - local.get $4 - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain + local.get $5 + i32.lt_s local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - br $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/typedarray/Float32Array>|inlined.0 - end - i32.const 1 - local.set $8 - local.get $6 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - i32.const 0 - local.set $9 - block $for-break0 - loop $for-loop|0 - local.get $9 - local.get $7 - i32.lt_s - local.set $10 - local.get $10 - if - block $for-continue|0 - local.get $6 - local.get $9 - call $~lib/typedarray/Float32Array#__uget - local.set $11 - local.get $5 - local.get $9 - call $~lib/typedarray/Float32Array#__uget - local.set $12 - local.get $11 - local.get $12 - f32.eq - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - br $for-break0 - end - local.get $9 - i32.const 1 - i32.add + if + block $for-continue|0 + local.get $0 + local.get $6 + call $~lib/typedarray/Float32Array#__uget + local.set $8 + local.get $1 + local.get $6 + call $~lib/typedarray/Float32Array#__uget local.set $9 - br $for-loop|0 - end - end - end - local.get $8 - local.get $4 - i32.xor - local.set $9 - local.get $3 - call $~lib/rt/pure/__retain - local.set $10 - local.get $9 - i32.eqz - if - local.get $10 - call $~lib/rt/pure/__release - local.get $10 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $8 + local.get $9 + f32.eq + if + br $for-continue|0 + end + i32.const 0 + local.set $4 + br $for-break0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end end - local.get $10 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release end + local.get $4 + local.get $2 + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toStrictEqual (; 165 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/arrayComparison/arrayComparison<~lib/typedarray/Float32Array> call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 @@ -7827,7 +7027,7 @@ call $~lib/rt/pure/__release return ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|29 (; 162 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|29 (; 166 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7842,32 +7042,32 @@ local.get $0 i32.const 0 f32.const 1.100000023841858 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $0 i32.const 1 f32.const 2.200000047683716 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $0 i32.const 2 f32.const 3.299999952316284 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $1 i32.const 0 f32.const 1.100000023841858 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $1 i32.const 1 f32.const 2.200000047683716 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $1 i32.const 2 f32.const 3.299999952316284 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $0 call $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> local.tee $2 local.get $1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toStrictEqual local.get $0 call $~lib/rt/pure/__release @@ -7876,14 +7076,14 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not (; 163 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not (; 167 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|30 (; 164 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|30 (; 168 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7899,34 +7099,34 @@ local.get $0 i32.const 0 f32.const 1.100000023841858 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $0 i32.const 1 f32.const 2.200000047683716 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $0 i32.const 2 f32.const 3.299999952316284 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $1 i32.const 0 f32.const 1.100000023841858 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $1 i32.const 1 f32.const 2.200000047683716 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $1 i32.const 2 f32.const 3.299999952316284 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Float32Array#__uset local.get $0 call $assembly/internal/Expectation/expect<~lib/typedarray/Float32Array> local.tee $2 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#get:not local.tee $3 local.get $1 - i32.const 752 + i32.const 640 call $assembly/internal/Expectation/Expectation<~lib/typedarray/Float32Array>#toStrictEqual local.get $0 call $~lib/rt/pure/__release @@ -7937,7 +7137,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/itThrows (; 165 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/itThrows (; 169 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -7953,7 +7153,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 166 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__unchecked_get" (; 170 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -7962,15 +7162,15 @@ i32.add i32.load ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 167 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__get" (; 171 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 192 - i32.const 416 + i32.const 7536 + i32.const 304 i32.const 93 i32.const 41 call $~lib/builtins/abort @@ -7983,8 +7183,8 @@ local.get $2 i32.eqz if - i32.const 7632 - i32.const 416 + i32.const 7600 + i32.const 304 i32.const 97 i32.const 39 call $~lib/builtins/abort @@ -7992,7 +7192,7 @@ end local.get $2 ) - (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 168 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" (; 172 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -8013,12 +7213,12 @@ i32.store offset=4 local.get $0 ) - (func "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" (; 169 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" (; 173 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#constructor" ) - (func "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 170 ;) (param $0 i32) + (func "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 174 ;) (param $0 i32) (local $1 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace @@ -8030,7 +7230,7 @@ global.set $assembly/internal/report/Actual/Actual.reference return ) - (func "$assembly/internal/report/Expected/Expected.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 171 ;) (param $0 i32) (param $1 i32) + (func "$assembly/internal/report/Expected/Expected.report<(event: assembly/__tests__/setup/Event/Event) => void>" (; 175 ;) (param $0 i32) (param $1 i32) (local $2 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz @@ -8050,64 +7250,43 @@ global.set $assembly/internal/report/Expected/Expected.reference return ) - (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toStrictEqual" (; 172 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + (func "$assembly/internal/comparison/exactComparison/exactComparison<(event: assembly/__tests__/setup/Event/Event) => void>" (; 176 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - i32.load offset=4 - local.set $6 + call "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call "$assembly/internal/report/Actual/Actual.report<(event: assembly/__tests__/setup/Event/Event) => void>" - local.get $5 - local.get $4 call "$assembly/internal/report/Expected/Expected.report<(event: assembly/__tests__/setup/Event/Event) => void>" - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 i32.eq i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 656 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toStrictEqual" (; 177 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call "$assembly/internal/comparison/exactComparison/exactComparison<(event: assembly/__tests__/setup/Event/Event) => void>" call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release return ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|31 (; 173 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|31 (; 178 ;) (local $0 i32) global.get $assembly/__tests__/toStrictEqual.spec/eventDispatcher i32.load @@ -8116,19 +7295,19 @@ call "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" local.tee $0 global.get $assembly/__tests__/setup/Event/listener - i32.const 752 + i32.const 640 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toStrictEqual" local.get $0 call $~lib/rt/pure/__release ) - (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" (; 174 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" (; 179 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|32 (; 175 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|32 (; 180 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toStrictEqual.spec/eventDispatcher @@ -8140,14 +7319,14 @@ call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" local.tee $1 global.get $assembly/__tests__/setup/Event/anotherListener - i32.const 752 + i32.const 640 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toStrictEqual" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|33 (; 176 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|33 (; 181 ;) (local $0 i32) global.get $assembly/__tests__/toStrictEqual.spec/eventDispatcher i32.load @@ -8156,12 +7335,12 @@ call "$assembly/internal/Expectation/expect<(event: assembly/__tests__/setup/Event/Event) => void>" local.tee $0 global.get $assembly/__tests__/setup/Event/anotherListener - i32.const 752 + i32.const 640 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toStrictEqual" local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|34 (; 177 ;) + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0~anonymous|34 (; 182 ;) (local $0 i32) (local $1 i32) global.get $assembly/__tests__/toStrictEqual.spec/eventDispatcher @@ -8173,141 +7352,141 @@ call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#get:not" local.tee $1 global.get $assembly/__tests__/setup/Event/listener - i32.const 752 + i32.const 640 call "$assembly/internal/Expectation/Expectation<(event: assembly/__tests__/setup/Event/Event) => void>#toStrictEqual" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0 (; 178 ;) - i32.const 512 + (func $start:assembly/__tests__/toStrictEqual.spec~anonymous|0 (; 183 ;) + i32.const 400 i32.const 3 call $assembly/internal/Test/it - i32.const 768 + i32.const 656 i32.const 4 - i32.const 864 + i32.const 752 call $assembly/internal/Test/throws - i32.const 1008 + i32.const 896 i32.const 5 call $assembly/internal/Test/it - i32.const 1136 + i32.const 1024 i32.const 6 - i32.const 1232 + i32.const 1120 call $assembly/internal/Test/throws - i32.const 1376 + i32.const 1264 i32.const 7 call $assembly/internal/Test/it - i32.const 1696 + i32.const 1664 i32.const 8 - i32.const 1776 + i32.const 1744 call $assembly/internal/Test/throws - i32.const 1920 + i32.const 1888 i32.const 9 call $assembly/internal/Test/it - i32.const 2080 + i32.const 2048 i32.const 10 - i32.const 2192 + i32.const 2160 call $assembly/internal/Test/throws - i32.const 2368 + i32.const 2336 i32.const 11 call $assembly/internal/Test/it - i32.const 2512 + i32.const 2480 i32.const 12 - i32.const 2576 + i32.const 2544 call $assembly/internal/Test/throws - i32.const 2640 + i32.const 2608 i32.const 13 call $assembly/internal/Test/it - i32.const 2784 + i32.const 2752 i32.const 14 - i32.const 2928 + i32.const 2896 call $assembly/internal/Test/throws - i32.const 2640 + i32.const 2608 i32.const 15 call $assembly/internal/Test/it - i32.const 3088 + i32.const 3056 i32.const 16 - i32.const 3216 + i32.const 3184 call $assembly/internal/Test/throws - i32.const 3376 + i32.const 3344 i32.const 17 call $assembly/internal/Test/it - i32.const 3472 + i32.const 3440 i32.const 18 - i32.const 3632 + i32.const 3600 call $assembly/internal/Test/throws - i32.const 3840 + i32.const 3808 i32.const 19 call $assembly/internal/Test/it - i32.const 4032 + i32.const 4000 i32.const 20 - i32.const 4192 + i32.const 4160 call $assembly/internal/Test/throws - i32.const 4400 + i32.const 4368 i32.const 21 call $assembly/internal/Test/it - i32.const 4672 + i32.const 4640 i32.const 22 - i32.const 4880 + i32.const 4848 call $assembly/internal/Test/throws - i32.const 5008 + i32.const 4976 i32.const 23 call $assembly/internal/Test/it - i32.const 5312 + i32.const 5280 i32.const 24 - i32.const 752 + i32.const 640 call $assembly/internal/Test/throws - i32.const 5552 + i32.const 5520 i32.const 25 call $assembly/internal/Test/it - i32.const 5760 + i32.const 5728 i32.const 26 - i32.const 752 + i32.const 640 call $assembly/internal/Test/throws - i32.const 5968 + i32.const 5936 i32.const 27 call $assembly/internal/Test/it - i32.const 6192 + i32.const 6160 i32.const 28 call $assembly/internal/Test/it - i32.const 6544 + i32.const 6512 i32.const 29 - i32.const 6352 + i32.const 6320 call $assembly/internal/Test/throws - i32.const 6736 + i32.const 6704 i32.const 30 call $assembly/internal/Test/it - i32.const 7056 + i32.const 7024 i32.const 31 - i32.const 6912 + i32.const 6880 call $assembly/internal/Test/throws - i32.const 7200 + i32.const 7168 i32.const 32 call $assembly/internal/Test/it - i32.const 7408 + i32.const 7312 i32.const 33 - i32.const 752 + i32.const 640 call $assembly/internal/Test/itThrows - i32.const 7520 + i32.const 7424 i32.const 34 call $assembly/internal/Test/it - i32.const 7744 + i32.const 7712 i32.const 35 call $assembly/internal/Test/it - i32.const 7840 + i32.const 7808 i32.const 36 - i32.const 752 + i32.const 640 call $assembly/internal/Test/throws - i32.const 7840 + i32.const 7808 i32.const 37 - i32.const 752 + i32.const 640 call $assembly/internal/Test/throws ) - (func $start:assembly/internal/noOp~anonymous|0 (; 179 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 184 ;) nop ) - (func $assembly/internal/Describe/describe (; 180 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 185 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -8321,242 +7500,81 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/toStrictEqual.spec (; 181 ;) - (local $0 f64) - (local $1 i32) - (local $2 i32) - (local $3 i32) - call $assembly/__tests__/setup/Event/initializeDispatcher - global.set $assembly/__tests__/toStrictEqual.spec/eventDispatcher - i32.const 0 - f64.const 1 - f64.const 2 - f64.const 3 - call $assembly/__tests__/setup/Vec3/Vec3#constructor - global.set $assembly/__tests__/toStrictEqual.spec/vec1 - i32.const 0 - f64.const 4 - f64.const 5 - f64.const 6 - call $assembly/__tests__/setup/Vec3/Vec3#constructor - global.set $assembly/__tests__/toStrictEqual.spec/vec2 - i32.const 0 - f64.const 1 - f64.const 2 - f64.const 3 - call $assembly/__tests__/setup/Vec3/Vec3#constructor - global.set $assembly/__tests__/toStrictEqual.spec/vec3 - i32.const 3 - i32.const 3 - i32.shl - global.set $assembly/__tests__/toStrictEqual.spec/buffsize - i32.const 0 - global.get $assembly/__tests__/toStrictEqual.spec/buffsize - call $~lib/arraybuffer/ArrayBuffer#constructor - global.set $assembly/__tests__/toStrictEqual.spec/buff1 - i32.const 0 - global.get $assembly/__tests__/toStrictEqual.spec/buffsize - call $~lib/arraybuffer/ArrayBuffer#constructor - global.set $assembly/__tests__/toStrictEqual.spec/buff2 - i32.const 0 - global.get $assembly/__tests__/toStrictEqual.spec/buffsize - call $~lib/arraybuffer/ArrayBuffer#constructor - global.set $assembly/__tests__/toStrictEqual.spec/buff3 - global.get $assembly/__tests__/toStrictEqual.spec/buff1 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 0 - local.set $1 - f64.const 1 - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 - f64.store - local.get $2 - call $~lib/rt/pure/__release - global.get $assembly/__tests__/toStrictEqual.spec/buff2 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 0 - local.set $1 - f64.const 1 - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 - f64.store - local.get $2 - call $~lib/rt/pure/__release - global.get $assembly/__tests__/toStrictEqual.spec/buff3 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 0 - local.set $1 - f64.const 4 - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 - f64.store - local.get $2 - call $~lib/rt/pure/__release - global.get $assembly/__tests__/toStrictEqual.spec/buff1 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - local.set $1 - f64.const 2 - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 - f64.store - local.get $2 - call $~lib/rt/pure/__release - global.get $assembly/__tests__/toStrictEqual.spec/buff2 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - local.set $1 - f64.const 2 - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 - f64.store - local.get $2 - call $~lib/rt/pure/__release - global.get $assembly/__tests__/toStrictEqual.spec/buff3 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - local.set $1 + (func $start:assembly/__tests__/toStrictEqual.spec (; 186 ;) + call $assembly/__tests__/setup/Event/initializeDispatcher + global.set $assembly/__tests__/toStrictEqual.spec/eventDispatcher + i32.const 0 + f64.const 1 + f64.const 2 + f64.const 3 + call $assembly/__tests__/setup/Vec3/Vec3#constructor + global.set $assembly/__tests__/toStrictEqual.spec/vec1 + i32.const 0 + f64.const 4 f64.const 5 - local.set $0 + f64.const 6 + call $assembly/__tests__/setup/Vec3/Vec3#constructor + global.set $assembly/__tests__/toStrictEqual.spec/vec2 i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 + f64.const 1 + f64.const 2 + f64.const 3 + call $assembly/__tests__/setup/Vec3/Vec3#constructor + global.set $assembly/__tests__/toStrictEqual.spec/vec3 + i32.const 0 + global.get $assembly/__tests__/toStrictEqual.spec/buffsize + call $~lib/arraybuffer/ArrayBuffer#constructor + global.set $assembly/__tests__/toStrictEqual.spec/buff1 + global.get $assembly/__tests__/toStrictEqual.spec/buff1 + f64.const 1 f64.store - local.get $2 - call $~lib/rt/pure/__release global.get $assembly/__tests__/toStrictEqual.spec/buff1 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 2 - local.set $1 + f64.const 2 + f64.store offset=8 + global.get $assembly/__tests__/toStrictEqual.spec/buff1 f64.const 3 - local.set $0 + f64.store offset=16 i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 + global.get $assembly/__tests__/toStrictEqual.spec/buffsize + call $~lib/arraybuffer/ArrayBuffer#constructor + global.set $assembly/__tests__/toStrictEqual.spec/buff2 + global.get $assembly/__tests__/toStrictEqual.spec/buff2 + f64.const 1 f64.store - local.get $2 - call $~lib/rt/pure/__release global.get $assembly/__tests__/toStrictEqual.spec/buff2 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 2 - local.set $1 + f64.const 2 + f64.store offset=8 + global.get $assembly/__tests__/toStrictEqual.spec/buff2 f64.const 3 - local.set $0 + f64.store offset=16 i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 + global.get $assembly/__tests__/toStrictEqual.spec/buffsize + call $~lib/arraybuffer/ArrayBuffer#constructor + global.set $assembly/__tests__/toStrictEqual.spec/buff3 + global.get $assembly/__tests__/toStrictEqual.spec/buff3 + f64.const 4 f64.store - local.get $2 - call $~lib/rt/pure/__release global.get $assembly/__tests__/toStrictEqual.spec/buff3 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 2 - local.set $1 + f64.const 5 + f64.store offset=8 + global.get $assembly/__tests__/toStrictEqual.spec/buff3 f64.const 6 - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $3 - i32.add - local.get $0 - f64.store - local.get $2 - call $~lib/rt/pure/__release - i32.const 464 + f64.store offset=16 + i32.const 352 i32.const 38 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 182 ;) + (func $assembly/index/__ready (; 187 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 183 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 188 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 184 ;) + (func $assembly/internal/report/Actual/__sendActual (; 189 ;) (local $0 i32) block $break|0 block $case9|0 @@ -8664,7 +7682,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 185 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 190 ;) (local $0 i32) block $break|0 block $case11|0 @@ -8803,24 +7821,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 186 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 191 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 187 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 192 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 188 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 193 ;) (result i32) i32.const 19 ) - (func $assembly/internal/Expectation/__cleanup (; 189 ;) + (func $assembly/internal/Expectation/__cleanup (; 194 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 190 ;) + (func $~start (; 195 ;) global.get $~started if return @@ -8830,143 +7848,117 @@ end call $start:assembly/__tests__/toStrictEqual.spec ) - (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 191 ;) (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/array/Array#__visit_impl (; 192 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 196 ;) + return ) - (func $~lib/rt/pure/__visit (; 193 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/decrement (; 197 ;) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz if - return + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 16 - i32.sub - local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 198 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func "$~lib/array/Array<(event: assembly/__tests__/setup/Event/Event) => void>#__visit_impl" (; 199 ;) (param $0 i32) (param $1 i32) + nop + ) + (func $~lib/array/Array#__visit_impl (; 200 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/array/Array#__visit_impl (; 194 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 201 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9005,10 +7997,10 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 195 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 202 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 196 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 203 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/unit.spec.ts b/packages/assembly/assembly/__tests__/unit.spec.ts index 2b50742a..5ce1139b 100644 --- a/packages/assembly/assembly/__tests__/unit.spec.ts +++ b/packages/assembly/assembly/__tests__/unit.spec.ts @@ -10,7 +10,7 @@ describe("unit types", () => { * This is a primary unit test of the `as-pect` testing suite. */ it("should create instanceof Expectation", () => { - var result: Expectation = expect(1); + var result = expect(1); // @ts-ignore: instanceof checks must include type generics if they are in the definition assert(result instanceof Expectation, "The result is not instanceof Expectation."); }); @@ -19,7 +19,7 @@ describe("unit types", () => { * This test validates that the actual value is set when using the `expect()` function. */ it("should create an expectation with a value", () => { - var result = expect(1); + var result = expect(1); assert(result.actual == 1, "The expect function does not report values correctly."); }); @@ -28,8 +28,8 @@ describe("unit types", () => { * In order to access a private value on the reference, we must use `offsetof("_not")` */ it("should negate the _not property", () => { - var result = expect(1).not; - var notValue: bool = load(changetype(result), offsetof>("_not")); + var result = expect(1).not; + var notValue = load(changetype(result), offsetof>("_not")); assert(notValue, "The expect function was not negated."); }); }); diff --git a/packages/assembly/assembly/__tests__/unit.spec.wat b/packages/assembly/assembly/__tests__/unit.spec.wat index 825349a4..36d51105 100644 --- a/packages/assembly/assembly/__tests__/unit.spec.wat +++ b/packages/assembly/assembly/__tests__/unit.spec.wat @@ -3,18 +3,28 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00u\00n\00i\00t\00 \00t\00y\00p\00e\00s\00") + (data (i32.const 224) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00r\00e\00a\00t\00e\00 \00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00 \00E\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00<\00T\00>\00") + (data (i32.const 320) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00r\00e\00a\00t\00e\00 \00a\00n\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00w\00i\00t\00h\00 \00a\00 \00v\00a\00l\00u\00e\00") + (data (i32.const 432) "j\00\00\00\01\00\00\00\01\00\00\00j\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00r\00e\00p\00o\00r\00t\00 \00v\00a\00l\00u\00e\00s\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00.\00") + (data (i32.const 560) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00u\00n\00i\00t\00.\00s\00p\00e\00c\00.\00t\00s\00") + (data (i32.const 640) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00e\00g\00a\00t\00e\00 \00t\00h\00e\00 \00_\00n\00o\00t\00 \00p\00r\00o\00p\00e\00r\00t\00y\00") + (data (i32.const 720) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00w\00a\00s\00 \00n\00o\00t\00 \00n\00e\00g\00a\00t\00e\00d\00.\00") + (data (i32.const 816) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "reportTest" (func $assembly/internal/Test/reportTest (param i32 i32))) (import "__aspect" "reportDescribe" (func $assembly/internal/Describe/reportDescribe (param i32))) (import "__aspect" "reportEndDescribe" (func $assembly/internal/Describe/reportEndDescribe)) @@ -39,29 +49,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00u\00n\00i\00t\00 \00t\00y\00p\00e\00s\00") - (data (i32.const 336) "N\00\00\00\01\00\00\00\01\00\00\00N\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00r\00e\00a\00t\00e\00 \00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00 \00E\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00<\00T\00>\00") - (data (i32.const 432) "R\00\00\00\01\00\00\00\01\00\00\00R\00\00\00s\00h\00o\00u\00l\00d\00 \00c\00r\00e\00a\00t\00e\00 \00a\00n\00 \00e\00x\00p\00e\00c\00t\00a\00t\00i\00o\00n\00 \00w\00i\00t\00h\00 \00a\00 \00v\00a\00l\00u\00e\00") - (data (i32.const 544) "j\00\00\00\01\00\00\00\01\00\00\00j\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00r\00e\00p\00o\00r\00t\00 \00v\00a\00l\00u\00e\00s\00 \00c\00o\00r\00r\00e\00c\00t\00l\00y\00.\00") - (data (i32.const 672) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00_\00_\00t\00e\00s\00t\00s\00_\00_\00/\00u\00n\00i\00t\00.\00s\00p\00e\00c\00.\00t\00s\00") - (data (i32.const 752) ">\00\00\00\01\00\00\00\01\00\00\00>\00\00\00s\00h\00o\00u\00l\00d\00 \00n\00e\00g\00a\00t\00e\00 \00t\00h\00e\00 \00_\00n\00o\00t\00 \00p\00r\00o\00p\00e\00r\00t\00y\00") - (data (i32.const 832) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\00T\00h\00e\00 \00e\00x\00p\00e\00c\00t\00 \00f\00u\00n\00c\00t\00i\00o\00n\00 \00w\00a\00s\00 \00n\00o\00t\00 \00n\00e\00g\00a\00t\00e\00d\00.\00") - (data (i32.const 928) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 6 funcref) (elem (i32.const 1) $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/unit.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.float (mut f64) (f64.const 0)) @@ -86,8 +80,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 928)) - (global $~lib/heap/__heap_base i32 (i32.const 972)) + (global $~lib/rt/__rtti_base i32 (i32.const 816)) + (global $~lib/heap/__heap_base i32 (i32.const 860)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1176,296 +1170,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 35 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 36 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 37 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 38 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 40 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 41 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 35 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1549,7 +1254,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1644,9 +1349,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 43 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 37 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1660,12 +1365,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1676,20 +1381,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1702,13 +1407,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1720,11 +1425,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1735,1479 +1440,64 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 44 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 + local.get $4 local.get $2 - local.get $1 i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 45 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 46 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 47 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end + local.get $4 local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 48 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + i32.store offset=12 local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 50 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 51 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc local.get $4 - i32.add - global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 52 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 38 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 53 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 39 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3217,90 +1507,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 40 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 54 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 41 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3311,7 +1536,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/internal/Expectation/Expectation#constructor (; 55 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 42 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3332,12 +1557,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 56 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 43 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|0 (; 57 ;) + (func $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|0 (; 44 ;) (local $0 i32) i32.const 1 call $assembly/internal/Expectation/expect @@ -3345,7 +1570,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 58 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 45 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3355,7 +1580,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|1 (; 59 ;) + (func $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|1 (; 46 ;) (local $0 i32) i32.const 1 call $assembly/internal/Expectation/expect @@ -3366,8 +1591,8 @@ i32.eq i32.eqz if - i32.const 560 - i32.const 688 + i32.const 448 + i32.const 576 i32.const 23 i32.const 4 call $~lib/builtins/abort @@ -3376,14 +1601,14 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#get:not (; 60 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#get:not (; 47 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|2 (; 61 ;) + (func $start:assembly/__tests__/unit.spec~anonymous|0~anonymous|2 (; 48 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3403,8 +1628,8 @@ i32.ne i32.eqz if - i32.const 848 - i32.const 688 + i32.const 736 + i32.const 576 i32.const 33 i32.const 4 call $~lib/builtins/abort @@ -3417,21 +1642,21 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unit.spec~anonymous|0 (; 62 ;) - i32.const 352 + (func $start:assembly/__tests__/unit.spec~anonymous|0 (; 49 ;) + i32.const 240 i32.const 1 call $assembly/internal/Test/it - i32.const 448 + i32.const 336 i32.const 2 call $assembly/internal/Test/it - i32.const 768 + i32.const 656 i32.const 3 call $assembly/internal/Test/it ) - (func $start:assembly/internal/noOp~anonymous|0 (; 63 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 50 ;) nop ) - (func $assembly/internal/Describe/describe (; 64 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 51 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3445,22 +1670,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unit.spec (; 65 ;) - i32.const 304 + (func $start:assembly/__tests__/unit.spec (; 52 ;) + i32.const 192 i32.const 4 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 66 ;) + (func $assembly/index/__ready (; 53 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 67 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 54 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 68 ;) + (func $assembly/internal/report/Actual/__sendActual (; 55 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3568,7 +1793,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 69 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 56 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3707,20 +1932,20 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 70 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 57 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 71 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 58 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 72 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 59 ;) (result i32) i32.const 4 ) - (func $assembly/internal/report/Expected/Expected.clear (; 73 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 60 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3738,7 +1963,7 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/report/Actual/Actual.clear (; 74 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 61 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3758,11 +1983,11 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/Expectation/__cleanup (; 75 ;) + (func $assembly/internal/Expectation/__cleanup (; 62 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 76 ;) + (func $~start (; 63 ;) global.get $~started if return @@ -3772,140 +1997,130 @@ end call $start:assembly/__tests__/unit.spec ) - (func $~lib/array/Array#__visit_impl (; 77 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 64 ;) + return ) - (func $~lib/rt/pure/__visit (; 78 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 65 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 66 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 67 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 68 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 79 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 69 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/unmanaged.spec.ts b/packages/assembly/assembly/__tests__/unmanaged.spec.ts index 64a3b997..45074aba 100644 --- a/packages/assembly/assembly/__tests__/unmanaged.spec.ts +++ b/packages/assembly/assembly/__tests__/unmanaged.spec.ts @@ -5,8 +5,8 @@ describe("unmanaged references", () => { test("unmanaged handling", () => { let t = new ExampleClass(); let start = RTrace.increments(); - Actual.report(t); + Actual.report(t); let end = RTrace.increments(); - expect(start).toBe(end); + expect(start).toBe(end); }); }); diff --git a/packages/assembly/assembly/__tests__/unmanaged.spec.wat b/packages/assembly/assembly/__tests__/unmanaged.spec.wat index 6dc37413..3ed5a2cc 100644 --- a/packages/assembly/assembly/__tests__/unmanaged.spec.wat +++ b/packages/assembly/assembly/__tests__/unmanaged.spec.wat @@ -1,20 +1,27 @@ (module - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00u\00n\00m\00a\00n\00a\00g\00e\00d\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00") + (data (i32.const 240) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00u\00n\00m\00a\00n\00a\00g\00e\00d\00 \00h\00a\00n\00d\00l\00i\00n\00g\00") + (data (i32.const 304) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 400) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 416) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "getRTraceIncrements" (func $assembly/internal/RTrace/getRTraceIncrements (result i32))) (import "__aspect" "getStackTrace" (func $assembly/internal/report/Actual/getStackTrace (result i32))) (import "__aspect" "reportInvalidExpectCall" (func $assembly/internal/report/Expected/reportInvalidExpectCall)) @@ -43,26 +50,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00u\00n\00m\00a\00n\00a\00g\00e\00d\00 \00r\00e\00f\00e\00r\00e\00n\00c\00e\00s\00") - (data (i32.const 352) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00u\00n\00m\00a\00n\00a\00g\00e\00d\00 \00h\00a\00n\00d\00l\00i\00n\00g\00") - (data (i32.const 416) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 512) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 528) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 4 funcref) (elem (i32.const 1) $start:assembly/__tests__/unmanaged.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/unmanaged.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $assembly/internal/report/Actual/Actual.stackTrace (mut i32) (i32.const -1)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) @@ -87,8 +81,8 @@ (global $assembly/__tests__/setup/Test.include/meaningOfLife i32 (i32.const 42)) (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 528)) - (global $~lib/heap/__heap_base i32 (i32.const 572)) + (global $~lib/rt/__rtti_base i32 (i32.const 416)) + (global $~lib/heap/__heap_base i32 (i32.const 460)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1177,296 +1171,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 39 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 40 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 41 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 43 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 44 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 45 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 39 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1550,7 +1255,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 46 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1645,9 +1350,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 47 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1661,12 +1366,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1677,20 +1382,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1703,13 +1408,13 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1721,11 +1426,11 @@ end end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.ge_u i32.eqz if @@ -1736,37 +1441,35 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 i32.store offset=4 - local.get $3 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 i32.store offset=12 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 + local.get $4 local.get $3 - local.get $2 call $~lib/rt/tlsf/prepareBlock - local.get $3 + local.get $4 call $~lib/rt/rtrace/onalloc - local.get $3 + local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 48 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/__alloc (; 42 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 local.get $1 - i32.store offset=8 - local.get $2 + call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add ) - (func $~lib/rt/pure/increment (; 49 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 43 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1784,7 +1487,7 @@ if i32.const 0 i32.const 144 - i32.const 104 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -1804,1504 +1507,26 @@ i32.eqz if i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 50 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 51 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/tlsf/__free (; 54 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 593 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 55 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 - local.get $1 - call $~lib/memory/memory.copy - local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 - local.get $4 - i32.add - global.set $~lib/rt/pure/END - ) - (func $~lib/rt/pure/appendRoot (; 56 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.add - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/pure/decrement (; 57 ;) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 115 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end + i32.const 144 + i32.const 112 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 44 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 58 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 45 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3312,7 +1537,7 @@ call $~lib/rt/pure/decrement end ) - (func $assembly/__tests__/unmanaged.spec/ExampleClass#constructor (; 59 ;) (param $0 i32) (result i32) + (func $assembly/__tests__/unmanaged.spec/ExampleClass#constructor (; 46 ;) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -3323,7 +1548,7 @@ end local.get $0 ) - (func $assembly/internal/RTrace/RTrace.increments (; 60 ;) (result i32) + (func $assembly/internal/RTrace/RTrace.increments (; 47 ;) (result i32) global.get $assembly/internal/RTrace/RTrace.enabled if call $assembly/internal/RTrace/getRTraceIncrements @@ -3331,7 +1556,7 @@ end i32.const 0 ) - (func $assembly/internal/report/Actual/Actual.report (; 61 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 48 ;) (param $0 i32) (local $1 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace @@ -3351,7 +1576,7 @@ i32.const 0 global.set $assembly/internal/report/Actual/Actual.offset ) - (func $assembly/internal/Expectation/Expectation#constructor (; 62 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 49 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3372,12 +1597,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 63 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 50 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 64 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 51 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3403,7 +1628,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 65 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 52 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3437,7 +1662,45 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/report/Actual/Actual.clear (; 66 ;) + (func $assembly/internal/comparison/assert/assert (; 53 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 320 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/exactComparison/exactComparison (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $assembly/internal/report/Actual/Actual.report + local.get $1 + local.get $2 + call $assembly/internal/report/Expected/Expected.report + local.get $2 + local.get $1 + local.get $0 + i32.eq + i32.xor + local.get $3 + call $assembly/internal/comparison/assert/assert + local.get $3 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/report/Actual/Actual.clear (; 55 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3457,7 +1720,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 67 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 56 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3475,63 +1738,23 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func $assembly/internal/Expectation/Expectation#toBe (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $assembly/internal/Expectation/Expectation#toBe (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 local.get $0 i32.load offset=4 - local.set $6 local.get $1 - local.set $5 local.get $0 i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 - call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 - i32.eq - i32.xor - local.set $8 - local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 432 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unmanaged.spec~anonymous|0~anonymous|0 (; 69 ;) + (func $start:assembly/__tests__/unmanaged.spec~anonymous|0~anonymous|0 (; 58 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3549,12 +1772,12 @@ call $assembly/internal/Expectation/expect local.tee $3 local.get $2 - i32.const 528 + i32.const 416 call $assembly/internal/Expectation/Expectation#toBe local.get $3 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/test (; 70 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/test (; 59 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3564,15 +1787,15 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unmanaged.spec~anonymous|0 (; 71 ;) - i32.const 368 + (func $start:assembly/__tests__/unmanaged.spec~anonymous|0 (; 60 ;) + i32.const 256 i32.const 1 call $assembly/internal/Test/test ) - (func $start:assembly/internal/noOp~anonymous|0 (; 72 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 61 ;) nop ) - (func $assembly/internal/Describe/describe (; 73 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 62 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3586,22 +1809,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unmanaged.spec (; 74 ;) - i32.const 304 + (func $start:assembly/__tests__/unmanaged.spec (; 63 ;) + i32.const 192 i32.const 2 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 75 ;) + (func $assembly/index/__ready (; 64 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 76 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 65 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 77 ;) + (func $assembly/internal/report/Actual/__sendActual (; 66 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3709,7 +1932,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 78 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 67 ;) (local $0 i32) block $break|0 block $case11|0 @@ -3848,24 +2071,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 79 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 68 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 80 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 69 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 81 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 70 ;) (result i32) i32.const 4 ) - (func $assembly/internal/Expectation/__cleanup (; 82 ;) + (func $assembly/internal/Expectation/__cleanup (; 71 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 83 ;) + (func $~start (; 72 ;) global.get $~started if return @@ -3875,140 +2098,130 @@ end call $start:assembly/__tests__/unmanaged.spec ) - (func $~lib/array/Array#__visit_impl (; 84 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 73 ;) + return ) - (func $~lib/rt/pure/__visit (; 85 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 74 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 75 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 76 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 77 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 86 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 78 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/__tests__/unreachable.spec.ts b/packages/assembly/assembly/__tests__/unreachable.spec.ts index 44fa1dfa..3caa38c7 100644 --- a/packages/assembly/assembly/__tests__/unreachable.spec.ts +++ b/packages/assembly/assembly/__tests__/unreachable.spec.ts @@ -69,6 +69,6 @@ describe("unreachable", () => { * are reliable. */ afterEach(() => { - expect(counter).toBe(1); + expect(counter).toBe(1); }); }); diff --git a/packages/assembly/assembly/__tests__/unreachable.spec.wat b/packages/assembly/assembly/__tests__/unreachable.spec.wat index a9a1a658..1633d07e 100644 --- a/packages/assembly/assembly/__tests__/unreachable.spec.wat +++ b/packages/assembly/assembly/__tests__/unreachable.spec.wat @@ -1,20 +1,37 @@ (module (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import "env" "memory" (memory $0 1)) + (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 176) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00") + (data (i32.const 224) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00w\00h\00e\00n\00 \00g\00a\00r\00u\00n\00t\00e\00e\00d\00 \00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00") + (data (i32.const 304) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00T\00h\00i\00s\00 \00t\00e\00s\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 368) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00s\00h\00o\00u\00l\00d\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 432) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00 \00i\00n\00s\00t\00r\00u\00c\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 528) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00T\00h\00r\00o\00w\00s\00") + (data (i32.const 560) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00N\00o\00t\00 \00T\00h\00r\00o\00w\00s\00") + (data (i32.const 608) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") + (data (i32.const 704) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00 \00n\00o\00r\00m\00a\00l\00l\00y\00") + (data (i32.const 768) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00e\00x\00p\00e\00c\00t\00F\00n\00.\00n\00o\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00t\00h\00r\00o\00w\00s\00") + (data (i32.const 880) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 896) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00t\00o\00T\00h\00r\00o\00w\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 1040) "h\00\00\00\01\00\00\00\01\00\00\00h\00\00\00e\00x\00p\00e\00c\00t\00F\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00") + (data (i32.const 1168) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00s\00 \00t\00h\00a\00t\00 \00d\00o\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00o\00T\00h\00r\00o\00w\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") + (data (i32.const 1328) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "__aspect" "reportBeforeEach" (func $assembly/internal/Test/reportBeforeEach (param i32))) (import "__aspect" "reportNegatedTest" (func $assembly/internal/Test/reportNegatedTest (param i32 i32 i32))) (import "__aspect" "tryCall" (func $assembly/internal/comparison/tryCallComparison/tryCall (param i32) (result i32))) @@ -46,36 +63,13 @@ (import "__aspect" "reportExpectedLong" (func $assembly/internal/report/Expected/reportExpectedLong (param i32 i32 i32 i32))) (import "__aspect" "reportExpectedBool" (func $assembly/internal/report/Expected/reportExpectedBool (param i32 i32 i32))) (import "__aspect" "reportExpectedFunction" (func $assembly/internal/report/Expected/reportExpectedFunction (param i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 64) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 176) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 240) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 288) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00") - (data (i32.const 336) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00w\00h\00e\00n\00 \00g\00a\00r\00u\00n\00t\00e\00e\00d\00 \00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00") - (data (i32.const 416) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00T\00h\00i\00s\00 \00t\00e\00s\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 480) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00s\00h\00o\00u\00l\00d\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 544) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00 \00i\00n\00s\00t\00r\00u\00c\00t\00i\00o\00n\00s\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 640) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00T\00h\00r\00o\00w\00s\00") - (data (i32.const 672) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00N\00o\00t\00 \00T\00h\00r\00o\00w\00s\00") - (data (i32.const 720) "L\00\00\00\01\00\00\00\01\00\00\00L\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00c\00o\00m\00p\00a\00r\00i\00s\00o\00n\00/\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") - (data (i32.const 816) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00s\00h\00o\00u\00l\00d\00 \00r\00u\00n\00 \00n\00o\00r\00m\00a\00l\00l\00y\00") - (data (i32.const 880) "`\00\00\00\01\00\00\00\01\00\00\00`\00\00\00e\00x\00p\00e\00c\00t\00F\00n\00.\00n\00o\00t\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00t\00h\00r\00o\00w\00s\00") - (data (i32.const 992) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 1008) "z\00\00\00\01\00\00\00\01\00\00\00z\00\00\00u\00n\00r\00e\00a\00c\00h\00a\00b\00l\00e\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00n\00e\00g\00a\00t\00e\00d\00 \00t\00o\00T\00h\00r\00o\00w\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 1152) "h\00\00\00\01\00\00\00\01\00\00\00h\00\00\00e\00x\00p\00e\00c\00t\00F\00n\00 \00s\00h\00o\00u\00l\00d\00 \00t\00h\00r\00o\00w\00 \00i\00f\00 \00t\00h\00e\00 \00c\00a\00l\00l\00b\00a\00c\00k\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00") - (data (i32.const 1280) "\8a\00\00\00\01\00\00\00\01\00\00\00\8a\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00s\00 \00t\00h\00a\00t\00 \00d\00o\00 \00n\00o\00t\00 \00t\00h\00r\00o\00w\00 \00s\00h\00o\00u\00l\00d\00 \00c\00a\00u\00s\00e\00 \00t\00o\00T\00h\00r\00o\00w\00 \00a\00s\00s\00e\00r\00t\00i\00o\00n\00s\00 \00t\00o\00 \00t\00h\00r\00o\00w\00.\00") - (data (i32.const 1440) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\93\00\00\00\02\00\00\00") + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (table $0 16 funcref) (elem (i32.const 1) $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|1 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|2~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|2 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|3~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|3 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4~anonymous|0~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5~anonymous|0~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5~anonymous|0 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5 $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|6 $start:assembly/__tests__/unreachable.spec~anonymous|0 $start:assembly/internal/noOp~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/pure/END (mut i32) (i32.const 0)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $assembly/__tests__/unreachable.spec/counter (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.type (mut i32) (i32.const 0)) (global $assembly/internal/report/Actual/Actual.signed (mut i32) (i32.const 0)) @@ -101,8 +95,8 @@ (global $assembly/internal/log/ignoreLogs (mut i32) (i32.const 0)) (global $assembly/internal/RTrace/RTrace.enabled (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1440)) - (global $~lib/heap/__heap_base i32 (i32.const 1492)) + (global $~lib/rt/__rtti_base i32 (i32.const 1328)) + (global $~lib/heap/__heap_base i32 (i32.const 1380)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -1191,296 +1185,7 @@ end local.get $7 ) - (func $~lib/rt/pure/markGray (; 42 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/tlsf/freeBlock (; 43 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 569 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/pure/scanBlack (; 44 ;) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 45 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 46 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 47 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $5 - call $~lib/rt/pure/markGray - local.get $1 - local.get $5 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $6 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $6 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/freeBlock - else - local.get $5 - local.get $6 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - global.set $~lib/rt/pure/CUR - local.get $0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - call $~lib/rt/pure/scan - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $3 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $for-loop|2 - end - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/rt/tlsf/growMemory (; 48 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 42 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1564,7 +1269,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 43 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1659,9 +1364,9 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 50 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/allocateBlock (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1675,12 +1380,12 @@ end local.get $1 call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock local.set $3 + local.get $0 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if global.get $~lib/gc/gc.auto @@ -1691,20 +1396,20 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 i32.eqz if i32.const 0 @@ -1717,1512 +1422,97 @@ end else local.get $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/growMemory local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 507 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - end - end - local.get $3 - i32.load - i32.const -4 - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 510 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - local.get $3 - call $~lib/rt/rtrace/onalloc - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (; 51 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - local.set $2 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - i32.const 16 - i32.add - ) - (func $~lib/rt/pure/increment (; 52 ;) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - local.get $0 - call $~lib/rt/rtrace/onincrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 107 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (; 53 ;) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/__typeinfo (; 54 ;) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 192 - i32.const 256 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/util/memory/memcpy (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 507 + i32.const 17 + call $~lib/builtins/abort + unreachable end end end - ) - (func $~lib/rt/tlsf/__free (; 57 ;) (param $0 i32) - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end + local.get $4 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.ge_u i32.eqz if i32.const 0 i32.const 32 - i32.const 593 - i32.const 2 + i32.const 510 + i32.const 13 call $~lib/builtins/abort unreachable end - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/growRoots (; 58 ;) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - global.get $~lib/rt/pure/CUR - local.get $0 - i32.sub - local.set $1 - local.get $1 - i32.const 2 - i32.mul - local.tee $2 - i32.const 64 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - local.set $4 local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onfree - local.get $5 - local.get $0 + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 local.get $1 - call $~lib/memory/memory.copy + i32.store offset=12 local.get $0 - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/rtrace/onalloc - local.get $0 - call $~lib/rt/tlsf/__free - end - local.get $5 - global.set $~lib/rt/pure/ROOTS - local.get $5 - local.get $1 - i32.add - global.set $~lib/rt/pure/CUR - local.get $5 local.get $4 - i32.add - global.set $~lib/rt/pure/END + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 ) - (func $~lib/rt/pure/appendRoot (; 59 ;) (param $0 i32) - (local $1 i32) - global.get $~lib/rt/pure/CUR - local.set $1 - local.get $1 - global.get $~lib/rt/pure/END - i32.ge_u - if - call $~lib/rt/pure/growRoots - global.get $~lib/rt/pure/CUR - local.set $1 - end - local.get $1 + (func $~lib/rt/tlsf/__alloc (; 45 ;) (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 - i32.store local.get $1 - i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 60 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 46 ;) (param $0 i32) (local $1 i32) - (local $2 i32) local.get $0 i32.load offset=4 local.set $1 local.get $1 - i32.const 268435455 + i32.const -268435456 i32.and - local.set $2 + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/rt/rtrace/ondecrement + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement local.get $0 i32.load i32.const 1 @@ -3232,90 +1522,25 @@ if i32.const 0 i32.const 144 - i32.const 115 + i32.const 112 i32.const 13 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.eq + ) + (func $~lib/rt/pure/__retain (; 47 ;) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u if local.get $0 i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $0 - i32.const -2147483648 - i32.const 0 - i32.or - i32.const 0 - i32.or - i32.store offset=4 - end - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 124 - i32.const 15 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - call $~lib/rt/__typeinfo - i32.const 16 - i32.and - i32.eqz - if - local.get $0 - i32.const -2147483648 - i32.const 805306368 - i32.or - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - if - local.get $0 - call $~lib/rt/pure/appendRoot - end - else - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end + i32.sub + call $~lib/rt/pure/increment end + local.get $0 ) - (func $~lib/rt/pure/__release (; 61 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 48 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -3326,20 +1551,20 @@ call $~lib/rt/pure/decrement end ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|0 (; 62 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|0 (; 49 ;) i32.const 0 global.set $assembly/__tests__/unreachable.spec/counter ) - (func $assembly/internal/Test/beforeEach (; 63 ;) (param $0 i32) + (func $assembly/internal/Test/beforeEach (; 50 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportBeforeEach ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|1 (; 64 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|1 (; 51 ;) i32.const 1 global.set $assembly/__tests__/unreachable.spec/counter unreachable ) - (func $assembly/internal/Test/throws (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $assembly/internal/Test/throws (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3355,12 +1580,12 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|2~anonymous|0 (; 66 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|2~anonymous|0 (; 53 ;) i32.const 1 global.set $assembly/__tests__/unreachable.spec/counter unreachable ) - (func "$assembly/internal/Expectation/Expectation<() => void>#constructor" (; 67 ;) (param $0 i32) (param $1 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<() => void>#constructor" (; 54 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3381,12 +1606,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expectFn (; 68 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expectFn (; 55 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call "$assembly/internal/Expectation/Expectation<() => void>#constructor" ) - (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 69 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report<~lib/string/String> (; 56 ;) (param $0 i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3412,7 +1637,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 70 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report<~lib/string/String> (; 57 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3440,15 +1665,70 @@ call $~lib/rt/pure/__release end local.get $2 - global.set $assembly/internal/report/Expected/Expected.reference - i32.const 1 - global.set $assembly/internal/report/Expected/Expected.isManaged - i32.const 5 - global.set $assembly/internal/report/Expected/Expected.type - local.get $0 + global.set $assembly/internal/report/Expected/Expected.reference + i32.const 1 + global.set $assembly/internal/report/Expected/Expected.isManaged + i32.const 5 + global.set $assembly/internal/report/Expected/Expected.type + local.get $0 + call $~lib/rt/pure/__release + ) + (func $assembly/internal/comparison/assert/assert (; 58 ;) (param $0 i32) (param $1 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + local.get $1 + i32.const 624 + i32.const 9 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + ) + (func "$assembly/internal/comparison/tryCallComparison/tryCallComparison<() => void>" (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.set $3 + local.get $3 + call $assembly/internal/comparison/tryCallComparison/tryCall + i32.eqz + local.set $4 + local.get $4 + if (result i32) + i32.const 544 + call $~lib/rt/pure/__retain + local.tee $5 + else + i32.const 576 + call $~lib/rt/pure/__retain + local.tee $6 + end + call $assembly/internal/report/Actual/Actual.report<~lib/string/String> + i32.const 544 + local.get $1 + call $assembly/internal/report/Expected/Expected.report<~lib/string/String> + local.get $1 + local.get $4 + i32.xor + local.get $2 + call $assembly/internal/comparison/assert/assert + local.get $2 call $~lib/rt/pure/__release ) - (func $assembly/internal/report/Actual/Actual.clear (; 71 ;) + (func $assembly/internal/report/Actual/Actual.clear (; 60 ;) i32.const 0 global.set $assembly/internal/report/Actual/Actual.type global.get $assembly/internal/report/Actual/Actual.reference @@ -3468,7 +1748,7 @@ i32.const -1 global.set $assembly/internal/report/Actual/Actual.stackTrace ) - (func $assembly/internal/report/Expected/Expected.clear (; 72 ;) + (func $assembly/internal/report/Expected/Expected.clear (; 61 ;) i32.const 0 global.set $assembly/internal/report/Expected/Expected.type global.get $assembly/internal/report/Expected/Expected.reference @@ -3486,87 +1766,32 @@ global.set $assembly/internal/report/Expected/Expected.isManaged end ) - (func "$assembly/internal/Expectation/Expectation<() => void>#toThrow" (; 73 ;) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) + (func "$assembly/internal/Expectation/Expectation<() => void>#toThrow" (; 62 ;) (param $0 i32) (param $1 i32) local.get $1 call $~lib/rt/pure/__retain local.set $1 local.get $0 i32.load offset=4 - local.set $4 local.get $0 i32.load - local.set $3 local.get $1 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - local.set $5 - local.get $5 - call $assembly/internal/comparison/tryCallComparison/tryCall - i32.eqz - local.set $6 - local.get $6 - if (result i32) - i32.const 656 - call $~lib/rt/pure/__retain - local.tee $7 - else - i32.const 688 - call $~lib/rt/pure/__retain - local.tee $8 - end - call $assembly/internal/report/Actual/Actual.report<~lib/string/String> - i32.const 656 - local.get $3 - call $assembly/internal/report/Expected/Expected.report<~lib/string/String> - local.get $3 - local.get $6 - i32.xor - local.set $10 - local.get $2 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - i32.eqz - if - local.get $9 - call $~lib/rt/pure/__release - local.get $9 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release + call "$assembly/internal/comparison/tryCallComparison/tryCallComparison<() => void>" call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|2 (; 74 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|2 (; 63 ;) (local $0 i32) i32.const 3 call $assembly/internal/Expectation/expectFn local.tee $0 - i32.const 560 + i32.const 448 call "$assembly/internal/Expectation/Expectation<() => void>#toThrow" local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/it (; 75 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Test/it (; 64 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3576,18 +1801,18 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|3~anonymous|0 (; 76 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|3~anonymous|0 (; 65 ;) i32.const 1 global.set $assembly/__tests__/unreachable.spec/counter ) - (func "$assembly/internal/Expectation/Expectation<() => void>#get:not" (; 77 ;) (param $0 i32) (result i32) + (func "$assembly/internal/Expectation/Expectation<() => void>#get:not" (; 66 ;) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.store local.get $0 call $~lib/rt/pure/__retain ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|3 (; 78 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|3 (; 67 ;) (local $0 i32) (local $1 i32) i32.const 5 @@ -3595,19 +1820,19 @@ local.tee $0 call "$assembly/internal/Expectation/Expectation<() => void>#get:not" local.tee $1 - i32.const 560 + i32.const 448 call "$assembly/internal/Expectation/Expectation<() => void>#toThrow" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4~anonymous|0~anonymous|0 (; 79 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4~anonymous|0~anonymous|0 (; 68 ;) i32.const 1 global.set $assembly/__tests__/unreachable.spec/counter unreachable ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4~anonymous|0 (; 80 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4~anonymous|0 (; 69 ;) (local $0 i32) (local $1 i32) i32.const 7 @@ -3615,48 +1840,48 @@ local.tee $0 call "$assembly/internal/Expectation/Expectation<() => void>#get:not" local.tee $1 - i32.const 1008 + i32.const 896 call "$assembly/internal/Expectation/Expectation<() => void>#toThrow" local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4 (; 81 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|4 (; 70 ;) (local $0 i32) i32.const 8 call $assembly/internal/Expectation/expectFn local.tee $0 - i32.const 1024 + i32.const 912 call "$assembly/internal/Expectation/Expectation<() => void>#toThrow" local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5~anonymous|0~anonymous|0 (; 82 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5~anonymous|0~anonymous|0 (; 71 ;) i32.const 1 global.set $assembly/__tests__/unreachable.spec/counter ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5~anonymous|0 (; 83 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5~anonymous|0 (; 72 ;) (local $0 i32) i32.const 10 call $assembly/internal/Expectation/expectFn local.tee $0 - i32.const 1008 + i32.const 896 call "$assembly/internal/Expectation/Expectation<() => void>#toThrow" local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5 (; 84 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|5 (; 73 ;) (local $0 i32) i32.const 11 call $assembly/internal/Expectation/expectFn local.tee $0 - i32.const 1296 + i32.const 1184 call "$assembly/internal/Expectation/Expectation<() => void>#toThrow" local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Expectation/Expectation#constructor (; 85 ;) (param $0 i32) (param $1 i32) (result i32) + (func $assembly/internal/Expectation/Expectation#constructor (; 74 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -3677,12 +1902,12 @@ i32.store offset=4 local.get $0 ) - (func $assembly/internal/Expectation/expect (; 86 ;) (param $0 i32) (result i32) + (func $assembly/internal/Expectation/expect (; 75 ;) (param $0 i32) (result i32) i32.const 0 local.get $0 call $assembly/internal/Expectation/Expectation#constructor ) - (func $assembly/internal/report/Actual/Actual.report (; 87 ;) (param $0 i32) + (func $assembly/internal/report/Actual/Actual.report (; 76 ;) (param $0 i32) call $assembly/internal/report/Actual/getStackTrace global.set $assembly/internal/report/Actual/Actual.stackTrace i32.const 3 @@ -3708,7 +1933,7 @@ local.get $0 global.set $assembly/internal/report/Actual/Actual.integer ) - (func $assembly/internal/report/Expected/Expected.report (; 88 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/report/Expected/Expected.report (; 77 ;) (param $0 i32) (param $1 i32) global.get $assembly/internal/report/Expected/Expected.ready i32.eqz if @@ -3742,103 +1967,82 @@ local.get $0 global.set $assembly/internal/report/Expected/Expected.integer ) - (func $assembly/internal/Expectation/Expectation#toBe (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + (func $assembly/internal/comparison/exactComparison/exactComparison (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + local.get $3 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 local.get $0 - i32.load offset=4 - local.set $6 + call $assembly/internal/report/Actual/Actual.report local.get $1 - local.set $5 - local.get $0 - i32.load - local.set $4 local.get $2 - call $~lib/rt/pure/__retain - local.set $3 - local.get $6 - call $assembly/internal/report/Actual/Actual.report - local.get $5 - local.get $4 call $assembly/internal/report/Expected/Expected.report - local.get $4 - local.get $5 - local.get $6 + local.get $2 + local.get $1 + local.get $0 i32.eq i32.xor - local.set $8 local.get $3 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - i32.eqz - if - local.get $7 - call $~lib/rt/pure/__release - local.get $7 - i32.const 736 - i32.const 11 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release + call $assembly/internal/comparison/assert/assert local.get $3 call $~lib/rt/pure/__release + ) + (func $assembly/internal/Expectation/Expectation#toBe (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + local.get $0 + i32.load + local.get $2 + call $assembly/internal/comparison/exactComparison/exactComparison call $assembly/internal/report/Actual/Actual.clear call $assembly/internal/report/Expected/Expected.clear local.get $2 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|6 (; 90 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0~anonymous|6 (; 80 ;) (local $0 i32) global.get $assembly/__tests__/unreachable.spec/counter call $assembly/internal/Expectation/expect local.tee $0 i32.const 1 - i32.const 1008 + i32.const 896 call $assembly/internal/Expectation/Expectation#toBe local.get $0 call $~lib/rt/pure/__release ) - (func $assembly/internal/Test/afterEach (; 91 ;) (param $0 i32) + (func $assembly/internal/Test/afterEach (; 81 ;) (param $0 i32) local.get $0 call $assembly/internal/Test/reportAfterEach ) - (func $start:assembly/__tests__/unreachable.spec~anonymous|0 (; 92 ;) + (func $start:assembly/__tests__/unreachable.spec~anonymous|0 (; 82 ;) i32.const 1 call $assembly/internal/Test/beforeEach - i32.const 352 + i32.const 240 i32.const 2 - i32.const 432 + i32.const 320 call $assembly/internal/Test/throws - i32.const 496 + i32.const 384 i32.const 4 call $assembly/internal/Test/it - i32.const 832 + i32.const 720 i32.const 6 call $assembly/internal/Test/it - i32.const 896 + i32.const 784 i32.const 9 call $assembly/internal/Test/it - i32.const 1168 + i32.const 1056 i32.const 12 call $assembly/internal/Test/it i32.const 13 call $assembly/internal/Test/afterEach ) - (func $start:assembly/internal/noOp~anonymous|0 (; 93 ;) + (func $start:assembly/internal/noOp~anonymous|0 (; 83 ;) nop ) - (func $assembly/internal/Describe/describe (; 94 ;) (param $0 i32) (param $1 i32) + (func $assembly/internal/Describe/describe (; 84 ;) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -3852,22 +2056,22 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:assembly/__tests__/unreachable.spec (; 95 ;) - i32.const 304 + (func $start:assembly/__tests__/unreachable.spec (; 85 ;) + i32.const 192 i32.const 14 call $assembly/internal/Describe/describe ) - (func $assembly/index/__ready (; 96 ;) + (func $assembly/index/__ready (; 86 ;) i32.const 1 global.set $assembly/internal/report/Expected/Expected.ready ) - (func $assembly/internal/call/__call (; 97 ;) (param $0 i32) + (func $assembly/internal/call/__call (; 87 ;) (param $0 i32) i32.const 0 global.set $~argumentsLength local.get $0 call_indirect (type $none_=>_none) ) - (func $assembly/internal/report/Actual/__sendActual (; 98 ;) + (func $assembly/internal/report/Actual/__sendActual (; 88 ;) (local $0 i32) block $break|0 block $case9|0 @@ -3975,7 +2179,7 @@ br $break|0 end ) - (func $assembly/internal/report/Expected/__sendExpected (; 99 ;) + (func $assembly/internal/report/Expected/__sendExpected (; 89 ;) (local $0 i32) block $break|0 block $case11|0 @@ -4114,24 +2318,24 @@ call $assembly/internal/report/Expected/reportExpectedFunction end ) - (func $assembly/internal/log/__ignoreLogs (; 100 ;) (param $0 i32) + (func $assembly/internal/log/__ignoreLogs (; 90 ;) (param $0 i32) local.get $0 i32.const 0 i32.ne global.set $assembly/internal/log/ignoreLogs ) - (func $assembly/internal/RTrace/__disableRTrace (; 101 ;) + (func $assembly/internal/RTrace/__disableRTrace (; 91 ;) i32.const 0 global.set $assembly/internal/RTrace/RTrace.enabled ) - (func $assembly/internal/RTrace/__getUsizeArrayId (; 102 ;) (result i32) + (func $assembly/internal/RTrace/__getUsizeArrayId (; 92 ;) (result i32) i32.const 5 ) - (func $assembly/internal/Expectation/__cleanup (; 103 ;) + (func $assembly/internal/Expectation/__cleanup (; 93 ;) call $assembly/internal/report/Expected/Expected.clear call $assembly/internal/report/Actual/Actual.clear ) - (func $~start (; 104 ;) + (func $~start (; 94 ;) global.get $~started if return @@ -4141,140 +2345,130 @@ end call $start:assembly/__tests__/unreachable.spec ) - (func $~lib/array/Array#__visit_impl (; 105 ;) (param $0 i32) (param $1 i32) - nop + (func $~lib/rt/pure/__collect (; 95 ;) + return ) - (func $~lib/rt/pure/__visit (; 106 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 96 ;) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end + local.get $1 + call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/pure/decrement (; 97 ;) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 16 - i32.sub + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and local.set $2 - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - local.set $3 - local.get $3 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $3 - i32.const 2 - i32.eq - br_if $case1|0 - local.get $3 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $3 - i32.const 4 - i32.eq - br_if $case3|0 - local.get $3 - i32.const 5 - i32.eq - br_if $case4|0 - br $case5|0 - end - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - end - local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray - br $break|0 - end - local.get $2 - call $~lib/rt/pure/scan - br $break|0 - end - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const -268435456 - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end - br $break|0 - end - local.get $2 - call $~lib/rt/pure/collectWhite - br $break|0 + local.get $0 + call $~lib/rt/rtrace/ondecrement + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 122 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 126 + i32.const 17 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + local.get $2 i32.const 0 + i32.gt_u i32.eqz if i32.const 0 i32.const 144 - i32.const 97 - i32.const 24 + i32.const 136 + i32.const 15 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (; 98 ;) (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return end + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 69 + i32.const 15 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (; 99 ;) (param $0 i32) (param $1 i32) + nop ) - (func $~lib/rt/__visit_members (; 107 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 100 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/packages/assembly/assembly/internal/RTrace.ts b/packages/assembly/assembly/internal/RTrace.ts index a81a260d..753acdca 100644 --- a/packages/assembly/assembly/internal/RTrace.ts +++ b/packages/assembly/assembly/internal/RTrace.ts @@ -61,13 +61,27 @@ declare function getRTraceTestFrees(): i32; // @ts-ignore @external("__aspect", "getRTraceBlocks") declare function getRTraceBlocks(): usize[]; + // @ts-ignore @external("__aspect", "getRTraceGroupBlocks") declare function getRTraceGroupBlocks(): usize[]; + // @ts-ignore @external("__aspect", "getRTraceTestBlocks") declare function getRTraceTestBlocks(): usize[]; +// @ts-ignore +@external("__aspect", "getRTraceReallocs") +declare function getRTraceReallocs(): i32; + +// @ts-ignore +@external("__aspect", "getRTraceTestReallocs") +declare function getRTraceTestReallocs(): i32; + +// @ts-ignore +@external("__aspect", "getRTraceGroupReallocs") +declare function getRTraceGroupReallocs(): i32; + @global export class RTrace { @@ -273,6 +287,27 @@ export class RTrace { public static refCountOf(ptr: usize): u32 { return load(ptr - 12) & 268435455; // bitmask the refCount bits } + + /** + * Gets the current number of reallocations over the course of the TestContext module. + */ + public static reallocations(): i32 { + return getRTraceReallocs(); + } + + /** + * Gets the current number of reallocations over the course of the TestGroup. + */ + public static groupReallocations(): i32 { + return getRTraceGroupReallocs(); + } + + /** + * Gets the current number of reallocations over the couse of the TestResult. + */ + public static testReallocations(): i32 { + return getRTraceTestReallocs(); + } } export function __disableRTrace(): void { diff --git a/packages/assembly/assembly/internal/comparison/arrayComparison.ts b/packages/assembly/assembly/internal/comparison/arrayComparison.ts index 51e7ba0a..12262ca9 100644 --- a/packages/assembly/assembly/internal/comparison/arrayComparison.ts +++ b/packages/assembly/assembly/internal/comparison/arrayComparison.ts @@ -13,8 +13,6 @@ import { ArrayBufferView } from "arraybuffer"; * @param {i32} negated - The indicator that the array assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here -@inline export function arrayComparison(actual: T, expected: T, negated: i32, message: string): void { // @ts-ignore T extends ArrayBufferView if (isManaged>()) { diff --git a/packages/assembly/assembly/internal/comparison/assert.ts b/packages/assembly/assembly/internal/comparison/assert.ts index 363dd62f..53350ecd 100644 --- a/packages/assembly/assembly/internal/comparison/assert.ts +++ b/packages/assembly/assembly/internal/comparison/assert.ts @@ -5,8 +5,6 @@ * assertion. * @param {string} message - The message that is thrown in the Error. */ -// @ts-ignore: Decorators *are* valid here -@inline export function assert(condition: i32, message: string): void { if (!condition) throw new Error(message); } diff --git a/packages/assembly/assembly/internal/comparison/blockComparison.ts b/packages/assembly/assembly/internal/comparison/blockComparison.ts index 9b99bda8..b4709d95 100644 --- a/packages/assembly/assembly/internal/comparison/blockComparison.ts +++ b/packages/assembly/assembly/internal/comparison/blockComparison.ts @@ -14,8 +14,6 @@ import { BLOCK_OVERHEAD, BLOCK } from "rt/common"; * @param {i32} negated - The indicator if the assertion is negated. * @param {string} message - The message describing the assertion. */ -// @ts-ignore inline is valid here in AssemblyScript -@inline export function blockComparison(actual: T, expected: T, negated: i32, message: string): void { /** diff --git a/packages/assembly/assembly/internal/comparison/closeToComparison.ts b/packages/assembly/assembly/internal/comparison/closeToComparison.ts index 700d6213..bc5ffa3b 100644 --- a/packages/assembly/assembly/internal/comparison/closeToComparison.ts +++ b/packages/assembly/assembly/internal/comparison/closeToComparison.ts @@ -12,8 +12,6 @@ import { assert } from "./assert"; * @param {i32} negated - The value indicating that assertion is negated. * @param {string} message - The message describing the assertion. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function closeToComparison(actual: T, expected: T, decimalPlaces: i32, negated: i32, message: string): void { // T must not be a reference if (!isFloat()) { diff --git a/packages/assembly/assembly/internal/comparison/exactComparison.ts b/packages/assembly/assembly/internal/comparison/exactComparison.ts index d21cb38c..0e998066 100644 --- a/packages/assembly/assembly/internal/comparison/exactComparison.ts +++ b/packages/assembly/assembly/internal/comparison/exactComparison.ts @@ -12,8 +12,6 @@ import { assert } from "./assert"; * @param {i32} negated - The value indicating that assertion is negated. * @param {string} message - The message describing the assertion. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function exactComparison(actual: T, expected: T, negated: i32, message: string): void { Actual.report(actual); Expected.report(expected, negated); diff --git a/packages/assembly/assembly/internal/comparison/falsyComparison.ts b/packages/assembly/assembly/internal/comparison/falsyComparison.ts index e49ad3b5..6d12557c 100644 --- a/packages/assembly/assembly/internal/comparison/falsyComparison.ts +++ b/packages/assembly/assembly/internal/comparison/falsyComparison.ts @@ -12,8 +12,6 @@ import { ValueType } from "../report/ValueType"; * @param {i32} negated - The value indicating that assertion is negated. * @param {string} message - The message describing the assertion. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function falsyComparison(actual: T, negated: i32, message: string): void { Actual.report(actual); Expected.type = ValueType.Falsy; diff --git a/packages/assembly/assembly/internal/comparison/finiteComparison.ts b/packages/assembly/assembly/internal/comparison/finiteComparison.ts index 1ddaa5ca..14b61354 100644 --- a/packages/assembly/assembly/internal/comparison/finiteComparison.ts +++ b/packages/assembly/assembly/internal/comparison/finiteComparison.ts @@ -13,8 +13,6 @@ import { ValueType } from "../report/ValueType"; * @param {i32} negated - The value indicating that assertion is negated. * @param {string} message - The message describing the assertion. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function finiteComparison(actual: T, negated: i32, message: string): void { if (!isFloat()) { ERROR("Expectation#toBeFinite must be called with a Float value type T."); diff --git a/packages/assembly/assembly/internal/comparison/greaterThanComparison.ts b/packages/assembly/assembly/internal/comparison/greaterThanComparison.ts index 15baf5fd..b3cd4dba 100644 --- a/packages/assembly/assembly/internal/comparison/greaterThanComparison.ts +++ b/packages/assembly/assembly/internal/comparison/greaterThanComparison.ts @@ -11,8 +11,6 @@ import { assert } from "./assert"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function greaterThanComparison(actual: T, expected: T, negated: i32, message: string): void { Actual.report(actual); Expected.report(expected, negated); diff --git a/packages/assembly/assembly/internal/comparison/greaterThanOrEqualToComparison.ts b/packages/assembly/assembly/internal/comparison/greaterThanOrEqualToComparison.ts index 5ef1d125..a05ea4ef 100644 --- a/packages/assembly/assembly/internal/comparison/greaterThanOrEqualToComparison.ts +++ b/packages/assembly/assembly/internal/comparison/greaterThanOrEqualToComparison.ts @@ -11,8 +11,6 @@ import { assert } from "./assert"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function greaterThanOrEqualToComparison(actual: T, expected: T, negated: i32, message: string): void { Actual.report(actual); Expected.report(expected, negated); diff --git a/packages/assembly/assembly/internal/comparison/isNaNComparison.ts b/packages/assembly/assembly/internal/comparison/isNaNComparison.ts index 40ceceb6..d5e2c289 100644 --- a/packages/assembly/assembly/internal/comparison/isNaNComparison.ts +++ b/packages/assembly/assembly/internal/comparison/isNaNComparison.ts @@ -12,8 +12,6 @@ import { ValueType } from "../report/ValueType"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function isNaNComparison(actual: T, negated: i32, message: string): void { // toBeNaN must not be called on a reference type. if (!isFloat()) { diff --git a/packages/assembly/assembly/internal/comparison/lengthComparison.ts b/packages/assembly/assembly/internal/comparison/lengthComparison.ts index 829b4ed9..50495e2b 100644 --- a/packages/assembly/assembly/internal/comparison/lengthComparison.ts +++ b/packages/assembly/assembly/internal/comparison/lengthComparison.ts @@ -13,8 +13,6 @@ import { nullComparison } from "./nullComparison"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function lengthComparison(actual: T, expected: i32, negated: i32, message: string): void { if (!isReference()) { ERROR("Expectation#toHaveLength must be called with a Reference type T.") diff --git a/packages/assembly/assembly/internal/comparison/lessThanComparison.ts b/packages/assembly/assembly/internal/comparison/lessThanComparison.ts index 6ada9a6e..56a85c7d 100644 --- a/packages/assembly/assembly/internal/comparison/lessThanComparison.ts +++ b/packages/assembly/assembly/internal/comparison/lessThanComparison.ts @@ -11,8 +11,6 @@ import { assert } from "./assert"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function lessThanComparison(actual: T, expected: T, negated: i32, message: string): void { Actual.report(actual); Expected.report(expected, negated); diff --git a/packages/assembly/assembly/internal/comparison/lessThanOrEqualToComparison.ts b/packages/assembly/assembly/internal/comparison/lessThanOrEqualToComparison.ts index 0371e9f4..9b2d7d80 100644 --- a/packages/assembly/assembly/internal/comparison/lessThanOrEqualToComparison.ts +++ b/packages/assembly/assembly/internal/comparison/lessThanOrEqualToComparison.ts @@ -11,8 +11,6 @@ import { assert } from "./assert"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function lessThanOrEqualToComparison(actual: T, expected: T, negated: i32, message: string): void { Actual.report(actual); Expected.report(expected, negated); diff --git a/packages/assembly/assembly/internal/comparison/nullComparison.ts b/packages/assembly/assembly/internal/comparison/nullComparison.ts index 303e316c..7c10cf76 100644 --- a/packages/assembly/assembly/internal/comparison/nullComparison.ts +++ b/packages/assembly/assembly/internal/comparison/nullComparison.ts @@ -2,19 +2,11 @@ import { Actual } from "../report/Actual"; import { assert } from "./assert"; import { Expected } from "../report/Expected"; - -// @ts-ignore: Decorators *are* valid here! -@inline export function nullComparison(actual: T, negated: i32, message: string): void { - if (!isReference()) { - ERROR("Expectation#toBeNull must be called with a Reference type T."); - } - - if (!isNullable()) { - ERROR("Expectation#toBeNull assertion must be called with nullable type T."); - } - Actual.report(actual); - // @ts-ignore + if (!isReference()) ERROR("Expectation#toBeNull must be called with a Reference type T."); + if (!isNullable()) ERROR("Expectation#toBeNull assertion must be called with nullable type T."); + Actual.report(actual); + // @ts-ignore: T is nullable and a reference Expected.report(null, negated); assert(negated ^ i32(actual === null), message); } diff --git a/packages/assembly/assembly/internal/comparison/referenceComparison.ts b/packages/assembly/assembly/internal/comparison/referenceComparison.ts index 4f591004..5d512ff2 100644 --- a/packages/assembly/assembly/internal/comparison/referenceComparison.ts +++ b/packages/assembly/assembly/internal/comparison/referenceComparison.ts @@ -14,10 +14,8 @@ import { exactComparison } from "./exactComparison"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here -@inline + export function referenceComparison(actual: T, expected: T, negated: i32, message: string): void { - if (isFunction(actual)) { const iactual = changetype(actual); const iexpected = changetype(expected); @@ -27,8 +25,8 @@ export function referenceComparison(actual: T, expected: T, negated: i32, mes return; } // report the actual and expected values - Actual.report(actual); - Expected.report(expected, negated); + Actual.report(actual); + Expected.report(expected, negated); // fast path, the value is itself, operator overload comparison passes, or both values are null if (expected == actual) { diff --git a/packages/assembly/assembly/internal/comparison/toIncludeComparison.ts b/packages/assembly/assembly/internal/comparison/toIncludeComparison.ts index bb5dccc9..5887322f 100644 --- a/packages/assembly/assembly/internal/comparison/toIncludeComparison.ts +++ b/packages/assembly/assembly/internal/comparison/toIncludeComparison.ts @@ -12,15 +12,13 @@ import { assert } from "./assert"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore decorators *are* valid here -@inline // @ts-ignore expected is valueof or it will be a compiler error export function toIncludeComparison(actual: T, expected: valueof, negated: i32, message: string): void { /** * Always report that the comparison is looking for an included value. It will be negated by the * Expected.negated property later. */ - Expected.report("Included", negated); + Expected.report("Included", negated); /** * This loop inspects each item and validates if the expected value is included in the array. @@ -29,7 +27,7 @@ export function toIncludeComparison(actual: T, expected: valueof, negated: // @ts-ignore: if T does not have a length property, it will throw a compiler error. for (let i: indexof = 0; i < >actual.length; i++) { // @ts-ignore: if this expression does not work, it will throw a compiler error. - let val: valueof = actual[i]; + let val = actual[i]; if (val === expected) { includes = true; break; @@ -39,6 +37,6 @@ export function toIncludeComparison(actual: T, expected: valueof, negated: /** * If the item is included, report "Included", otherwise report "Not Included". */ - Actual.report(includes ? "Included" : "Not Included"); + Actual.report(includes ? "Included" : "Not Included"); assert(negated ^ i32(includes), message); } diff --git a/packages/assembly/assembly/internal/comparison/toIncludeEqualComparison.ts b/packages/assembly/assembly/internal/comparison/toIncludeEqualComparison.ts index 9c9759fd..59cd83bd 100644 --- a/packages/assembly/assembly/internal/comparison/toIncludeEqualComparison.ts +++ b/packages/assembly/assembly/internal/comparison/toIncludeEqualComparison.ts @@ -13,8 +13,6 @@ import { assert } from "./assert"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore Decorators *are* valid here -@inline // @ts-ignore expected is valueof or it will be a compiler error export function toIncludeEqualComparison(actual: T, expected: valueof, negated: i32, message: string): void { /** @@ -30,7 +28,7 @@ export function toIncludeEqualComparison(actual: T, expected: valueof, neg * Always report "Included Reference" because it will be negated by the `Expectated.negated` * property later. */ - Expected.report("Included Reference", negated); + Expected.report("Included Reference", negated); /** * This loop validates that a reference of type `U` exists with the same shape as the expected @@ -83,6 +81,6 @@ export function toIncludeEqualComparison(actual: T, expected: valueof, neg } } - Actual.report(included ? "Included Reference" : "Not Included Reference"); + Actual.report(included ? "Included Reference" : "Not Included Reference"); assert(i32(included) ^ negated, message); } diff --git a/packages/assembly/assembly/internal/comparison/truthyComparison.ts b/packages/assembly/assembly/internal/comparison/truthyComparison.ts index 3cd24ffa..ff8281a5 100644 --- a/packages/assembly/assembly/internal/comparison/truthyComparison.ts +++ b/packages/assembly/assembly/internal/comparison/truthyComparison.ts @@ -11,8 +11,6 @@ import { ValueType } from "../report/ValueType"; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here -@inline export function truthyComparison(actual: T, negated: i32, message: string): void { Actual.report(actual); Expected.type = ValueType.Truthy; diff --git a/packages/assembly/assembly/internal/comparison/tryCallComparison.ts b/packages/assembly/assembly/internal/comparison/tryCallComparison.ts index 1ef4c0f1..d36274e4 100644 --- a/packages/assembly/assembly/internal/comparison/tryCallComparison.ts +++ b/packages/assembly/assembly/internal/comparison/tryCallComparison.ts @@ -15,8 +15,6 @@ declare function tryCall(func: () => void): bool; * @param {i32} negated - The indicator that the assertion is negated. * @param {string} message - The message provided to the TestResult if the comparison fails. */ -// @ts-ignore: Decorators *are* valid here! -@inline export function tryCallComparison(actual: T, negated: i32, message: string): void { if (!isFunction()) { ERROR("Expectation#toThrow must be called with a Function type T."); @@ -25,11 +23,11 @@ export function tryCallComparison(actual: T, negated: i32, message: string): //todo: make this const when AS supports it let func: () => void = changetype<() => void>(actual); let throws = !tryCall(func); - Actual.report(throws ? "Throws" : "Not Throws"); + Actual.report(throws ? "Throws" : "Not Throws"); /** * The expectation should throw by default, and will be negated by `Expectation.negated` later. */ - Expected.report("Throws", negated); + Expected.report("Throws", negated); assert(negated ^ i32(throws), message); } diff --git a/packages/assembly/assembly/internal/report/Actual.ts b/packages/assembly/assembly/internal/report/Actual.ts index 058de774..f3252c6c 100644 --- a/packages/assembly/assembly/internal/report/Actual.ts +++ b/packages/assembly/assembly/internal/report/Actual.ts @@ -231,8 +231,6 @@ export function __sendActual(): void { } } -// @ts-ignore: Decorators *are* valid here -@inline export function reportActualReference(ptr: usize, offset: i32): void { Actual.type = ValueType.Reference; if (isManaged()) __retain(ptr); diff --git a/packages/assembly/assembly/internal/report/Expected.ts b/packages/assembly/assembly/internal/report/Expected.ts index 864862ee..21582670 100644 --- a/packages/assembly/assembly/internal/report/Expected.ts +++ b/packages/assembly/assembly/internal/report/Expected.ts @@ -138,9 +138,8 @@ export class Expected { } } - let ptr = changetype(expected); - + if (isFunction()){ Expected.type = ValueType.Function; Expected.reference = ptr; @@ -239,8 +238,6 @@ export function __sendExpected(): void { } } -// @ts-ignore: Decorators *are* valid here -@inline export function reportExpectedReference(ptr: usize, offset: i32, negated: i32): void { Expected.type = ValueType.Reference; if (isManaged()) __retain(ptr); diff --git a/packages/assembly/package-lock.json b/packages/assembly/package-lock.json index 4058e408..f964954a 100644 --- a/packages/assembly/package-lock.json +++ b/packages/assembly/package-lock.json @@ -4,6 +4,103 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@npmcli/ci-detect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.1.1.tgz", + "integrity": "sha512-h5eW3DljLypyhvfK94FkSSm4qtSUFddth/xW+7vnkVCEUJR38MYvctCSZkxqrzmXZSzpfImuAwwKvRqkEuDvCQ==", + "dev": true + }, + "@npmcli/installed-package-contents": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz", + "integrity": "sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1", + "read-package-json-fast": "^1.1.1", + "readdir-scoped-modules": "^1.1.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, + "agentkeepalive": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", + "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -13,13 +110,19 @@ "sprintf-js": "~1.0.2" } }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, "assemblyscript": { - "version": "0.8.1-nightly.20200114", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1-nightly.20200114.tgz", - "integrity": "sha512-8accd9rrGBJo5VzG8mUFyebUqAXwccxXAzxtJSf+Mp320oJHSu3CmSwDwi35clIB6IMXahfRr7OQEepyovErig==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.9.0.tgz", + "integrity": "sha512-HDDoaDfdnp0Ki/k272ib12sKz3ytVlXsIDise5meamInLC1qZAcmwwO+aqNyiVksmPYyLhQlaVZRPKWibHqo3g==", "dev": true, "requires": { - "binaryen": "90.0.0-nightly.20200101", + "binaryen": "90.0.0-nightly.20200111", "long": "^4.0.0" } }, @@ -30,11 +133,79 @@ "dev": true }, "binaryen": { - "version": "90.0.0-nightly.20200101", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200101.tgz", - "integrity": "sha512-64lgruunUnkJD4YVD0DLCSRskqfo3xhoErM1H22GfkkWNT16/7tPTLG+MYqKLMALTiIyLL6L9UqmDaxOxDv0rw==", + "version": "90.0.0-nightly.20200111", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200111.tgz", + "integrity": "sha512-2uihf1tqfkG2OJB54LjIDu5/fqbGgbj9VSwnj8hYtsRfML61y0uHeMkPfWctyl99m7hsgyDu7xUbJ7iyqBz6BA==", "dev": true }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -45,6 +216,156 @@ "concat-map": "0.0.1" } }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "cacache": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-14.0.0.tgz", + "integrity": "sha512-+Nr/BnA/tjAUXza9gH8F+FSP+1HvWqCKt4c95dQr4EDVJVafbzmPZpLKCkLYexs6vSd2B/1TOXrAoNnqVPfvRA==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "tar": "^6.0.0", + "unique-filename": "^1.1.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cint": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cint/-/cint-8.2.1.tgz", + "integrity": "sha1-cDhrG0jidz0NYxZqVa/5TvRFahI=", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, "commander": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", @@ -60,24 +381,290 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-extend": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", "dev": true }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -90,6 +677,12 @@ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", "dev": true }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -104,72 +697,441 @@ "path-is-absolute": "^1.0.0" } }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, "graceful-readlink": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", "dev": true }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "ansi-regex": "^2.0.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "hosted-git-info": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", + "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "lru-cache": "^5.1.1" } }, - "jsonc-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", - "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==", + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", "dev": true }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "http-proxy-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz", + "integrity": "sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==", "dev": true, "requires": { - "uc.micro": "^1.0.1" + "agent-base": "5", + "debug": "4" } }, - "lodash.differencewith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", - "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=", - "dev": true - }, - "lodash.flatten": { + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.0.1.tgz", + "integrity": "sha512-XFY2Mbnmg+8r7MRsxfArVkZcfjxGlF/NjM3LsPXVeCX/GBF/1FTCv+idHBYC4qLPtK7q8HC8bapLoWqnhP/bXw==", + "dev": true + }, + "json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", + "dev": true, + "requires": { + "jju": "^1.1.0" + } + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonc-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", + "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "libnpmconfig": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz", + "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.differencewith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", + "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=", + "dev": true + }, + "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", @@ -181,6 +1143,61 @@ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", "dev": true }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-7.1.1.tgz", + "integrity": "sha512-7fNjiOXNZhNGQzG5P15nU97aZQtzPU2GVgVd7pnqnl5gnpLzMAD8bAe5YG4iW2s0PTqaZy9xGv4Wfqe872kRNQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.0", + "cacache": "^14.0.0", + "http-cache-semantics": "^4.0.3", + "http-proxy-agent": "^3.0.0", + "https-proxy-agent": "^4.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.1.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^7.0.1" + } + }, "markdown-it": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", @@ -236,6 +1253,12 @@ "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -251,64 +1274,1125 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "dev": true, "requires": { - "wrappy": "1" + "yallist": "^4.0.0" } }, - "path-is-absolute": { + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", + "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-pipeline": "^1.2.2", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", "dev": true }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" }, "dependencies": { - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } } } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "strip-json-comments": { + "nested-error-stacks": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", "dev": true }, - "wrappy": { + "node-alias": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-alias/-/node-alias-1.0.4.tgz", + "integrity": "sha1-HxuRa1a56iQcATX5fO1pQPVW8pI=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "lodash": "^4.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-check-updates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-4.0.1.tgz", + "integrity": "sha512-rDrKAqhQuTYq2EkndroPMZGA9N6tpTotOVOIJoxRa3ZKnb/mOcq2TZv4A4LLSM8+9kZlP+sBwE+XAGh8wWZw/w==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cint": "^8.2.1", + "cli-table": "^0.3.1", + "commander": "^4.0.1", + "fast-diff": "^1.2.0", + "find-up": "4.1.0", + "get-stdin": "^7.0.0", + "json-parse-helpfulerror": "^1.0.3", + "libnpmconfig": "^1.2.1", + "lodash": "^4.17.15", + "node-alias": "^1.0.4", + "pacote": "^10.2.0", + "progress": "^2.0.3", + "prompts": "^2.3.0", + "rc-config-loader": "^3.0.0", + "requireg": "^0.2.2", + "semver": "^6.3.0", + "semver-utils": "^1.1.4", + "spawn-please": "^0.3.0", + "update-notifier": "^3.0.1" + }, + "dependencies": { + "commander": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", + "dev": true + }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + } + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", + "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-packlist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.0.3.tgz", + "integrity": "sha512-geT5P1y+58INE/jlxBHNsucRX7jpZAgW+XkxAe1NWN7N9SNwpueWTUPRoVdJH+hFpqcdAChRUE/HWsXQI+8JaQ==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-5.0.0.tgz", + "integrity": "sha512-YUW9xObM7Y1OkQ/gSmU5VQyI3vCkG5lwOrdycw0dpj9/3dE8h9CKY8tVyHTIp50+mV8jOAGH4m4Lts7zz2rN4Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-registry-fetch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-6.0.0.tgz", + "integrity": "sha512-TSzEzudrky0ArPskchM/7F5SrawBY5acMNtRqFuacEI2lCKEyfBjaENuuIU5Uq2CyHfJ+gWp5QlCprolKa5wKg==", + "dev": true, + "requires": { + "@npmcli/ci-detect": "^1.0.0", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^7.1.0", + "minipass": "^3.0.0", + "minipass-fetch": "^1.1.2", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0", + "safe-buffer": "^5.2.0", + "semver": "^7.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "pacote": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-10.3.1.tgz", + "integrity": "sha512-rCChFkLK9aqmk34ewjVmoUL3MD0yxzj3xkknS7MtDO5rx5z4d4bB+GxsAu4zoYc9r3ynQyEfc2GNtpL94yZaEw==", + "dev": true, + "requires": { + "@npmcli/installed-package-contents": "^1.0.5", + "cacache": "^14.0.0", + "chownr": "^1.1.3", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.1", + "minipass-fetch": "^1.2.1", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.0", + "npm-packlist": "^2.0.3", + "npm-pick-manifest": "^5.0.0", + "npm-registry-fetch": "^6.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "semver": "^7.1.1", + "ssri": "^7.1.0", + "tar": "^6.0.0", + "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "prompts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", + "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.3" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + } + } + }, + "rc-config-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", + "integrity": "sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "js-yaml": "^3.12.0", + "json5": "^2.1.1", + "require-from-string": "^2.0.2" + } + }, + "read-package-json-fast": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz", + "integrity": "sha512-MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dev": true, + "requires": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + } + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-utils": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.4.tgz", + "integrity": "sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sisteransi": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", + "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "spawn-please": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-0.3.0.tgz", + "integrity": "sha1-2zOOxM/2Orxp8dDgjO6euL69nRE=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "dev": true, + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } } diff --git a/packages/assembly/package.json b/packages/assembly/package.json index 2e0efb22..9b7611ec 100644 --- a/packages/assembly/package.json +++ b/packages/assembly/package.json @@ -7,6 +7,7 @@ "asp:ci": "node ../cli/lib/test --summary", "asp": "node ../cli/lib/test --verbose", "mdlint": "markdownlint *.md", + "package:version-update": "ncu -u", "test:ci": "run-s asp:ci mdlint", "test": "run-s asp mdlint", "tsc:all": "exit 0" @@ -32,7 +33,8 @@ "types/" ], "devDependencies": { - "assemblyscript": "0.8.1-nightly.20200114", - "markdownlint-cli": "^0.21.0" + "assemblyscript": "^0.9.0", + "markdownlint-cli": "^0.21.0", + "npm-check-updates": "^4.0.1" } } diff --git a/packages/assembly/types/as-pect.d.ts b/packages/assembly/types/as-pect.d.ts index 0a5912a6..aa68d418 100644 --- a/packages/assembly/types/as-pect.d.ts +++ b/packages/assembly/types/as-pect.d.ts @@ -772,6 +772,21 @@ declare class RTrace { */ public static testFrees(): i32; + /** + * Gets the current number of reallocations over the course of the TestContext module. + */ + public static reallocations(): i32; + + /** + * Gets the current number of reallocations over the course of the TestGroup. + */ + public static groupReallocations(): i32; + + /** + * Gets the current number of reallocations over the couse of the TestResult. + */ + public static testReallocations(): i32; + /** * This method triggers a garbage collection. */ diff --git a/packages/assembly/types/env.d.ts b/packages/assembly/types/env.d.ts index 8d9ce045..f57ee8e4 100644 --- a/packages/assembly/types/env.d.ts +++ b/packages/assembly/types/env.d.ts @@ -1 +1 @@ -/// +/// diff --git a/packages/cli/init/env.d.ts b/packages/cli/init/env.d.ts index 4cc677ec..9721f33e 100644 --- a/packages/cli/init/env.d.ts +++ b/packages/cli/init/env.d.ts @@ -1,2 +1,2 @@ -/// -/// \ No newline at end of file +/// +/// \ No newline at end of file diff --git a/packages/cli/init/init-types.d.ts b/packages/cli/init/init-types.d.ts index 384dc761..6101ea23 100644 --- a/packages/cli/init/init-types.d.ts +++ b/packages/cli/init/init-types.d.ts @@ -1 +1 @@ -/// +/// diff --git a/packages/cli/init/portable-types.d.ts b/packages/cli/init/portable-types.d.ts index ece19290..bc632ff7 100644 --- a/packages/cli/init/portable-types.d.ts +++ b/packages/cli/init/portable-types.d.ts @@ -1 +1 @@ -/// +/// diff --git a/packages/cli/lib/as-pect.cli.amd.d.ts b/packages/cli/lib/as-pect.cli.amd.d.ts index 163dbb2a..7098cdc6 100644 --- a/packages/cli/lib/as-pect.cli.amd.d.ts +++ b/packages/cli/lib/as-pect.cli.amd.d.ts @@ -75,6 +75,7 @@ declare module "util/CommandLineArg" { group: string; test: string; outputBinary: boolean; + memory_size: number; norun: boolean; nortrace: boolean; reporter: string; diff --git a/packages/cli/lib/as-pect.cli.amd.d.ts.map b/packages/cli/lib/as-pect.cli.amd.d.ts.map index 2bbd3a5c..282dc356 100644 --- a/packages/cli/lib/as-pect.cli.amd.d.ts.map +++ b/packages/cli/lib/as-pect.cli.amd.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"as-pect.cli.amd.d.ts","sourceRoot":"","sources":["../src/help.ts","../src/util/strings.ts","../src/util/CommandLineArg.ts","../src/index.ts","../src/init.ts","../src/portable.ts","../src/util/IConfiguration.ts","../src/util/collectReporter.ts","../src/util/getTestEntryFiles.ts","../src/util/writeFile.ts","../src/worklets/ICommand.ts","../src/run.ts","../src/test.ts","../src/types.ts","../src/util/asciiArt.ts","../src/worklets/compiler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"as-pect.cli.amd.d.ts","sourceRoot":"","sources":["../src/help.ts","../src/util/strings.ts","../src/util/CommandLineArg.ts","../src/index.ts","../src/init.ts","../src/portable.ts","../src/util/IConfiguration.ts","../src/util/collectReporter.ts","../src/util/getTestEntryFiles.ts","../src/util/writeFile.ts","../src/worklets/ICommand.ts","../src/run.ts","../src/test.ts","../src/types.ts","../src/util/asciiArt.ts","../src/worklets/compiler.ts"],"names":[],"mappings":";IAEA;;;;OAIG;IACH,MAAM,UAAU,IAAI,SA+DnB;;;ICtED;;;;;OAKG;IACH,MAAM,UAAU,UAAU,CAAC,MAAM,MAAM,GAAG,MAAM,CAE/C;IAED;;;;;;OAMG;IACH,MAAM,UAAU,WAAW,CAAC,KAAK,MAAM,EAAE,OAAM,MAAY,GAAG,MAAM,CAKnE;;;ICtBD,OAAO,EAAE,yBAAyB,EAAE,sDAAyD;IAG7F;;;;OAIG;IACH,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAErE;;;;OAIG;IACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAEjH;;;;OAIG;IACH,MAAM,WAAW,KAAK;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,IAAI,CAAC;KACb;IAED;;;;OAIG;IACH,MAAM,WAAW,eAAe;QAC9B,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC/B,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;QACxB,KAAK,EAAE,QAAQ,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAED;;OAEG;IACH,MAAM,WAAW,OAAO;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,yBAAyB,CAAC;QACvC,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1B,4CAA4C;QAC5C,MAAM,EAAE,OAAO,CAAC;QAChB,6CAA6C;QAC7C,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB;IAED;;;;OAIG;IACH,MAAM,OAAO,cAAe,YAAW,eAAe;QAQjC,MAAM,MAAM;QAP/B,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC/B,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,QAAQ,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;oBAEG,MAAM,MAAM,EAAE,SAAS,eAAe;QAQzD,KAAK,CAAC,MAAM,MAAM,GAAG,QAAQ;KAuB9B;IAED;;;;OAIG;IACH,MAAM,WAAW,eAAe;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAChC;IA2OD;;;;OAIG;IACH,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,MAAM,UAAU,UAAU,CAAC,OAAM,eAAuB,GAAG,MAAM,CAehE;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,cAAc,QAAoB,CAAC;IAWhD;;;;;;OAMG;IACH,MAAM,UAAU,KAAK,CAAC,UAAU,MAAM,EAAE,EAAE,UAAS,MAAuB,GAAG,OAAO,CAuEnF;;;IC1dD;;OAEG;IACH,MAAM,CAAC,MAAM,OAAO,KAAc,CAAC;IAEnC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA8B;IAEvE;;;;OAIG;IACH,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,EAAE,QAyCjC;;;IC1DD;;;;;OAKG;IACH,MAAM,UAAU,IAAI,SAsDnB;;;IC5DD;;;;;OAKG;IACH,MAAM,UAAU,QAAQ,SA+BvB;;;ICzCD,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;IAExE;;OAEG;IACH,MAAM,WAAW,cAAc;QAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC1B;IAED;;;OAGG;IACH,MAAM,WAAW,cAAc;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf;;WAEG;QACH,KAAK,CAAC,EAAE,cAAc,CAAC;QACvB;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB;;WAEG;QACH,OAAO,CAAC,EAAE,GAAG,CAAC;QACd;;WAEG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACjD;;;WAGG;QACH,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB;;WAEG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;;;IC7DD,OAAO,EAAE,YAAY,EAAwC,MAAM,eAAe,CAAC;IACnF,OAAO,EAAE,OAAO,EAAE,4BAAyB;IAI3C;;;;;OAKG;IACH,MAAM,UAAU,eAAe,CAAC,YAAY,OAAO,GAAG,YAAY,CAwFjE;;;IClGD,OAAO,EAAE,OAAO,EAAE,4BAAyB;IAE3C;;;;;;;OAOG;IACH,MAAM,UAAU,iBAAiB,CAC/B,YAAY,OAAO,EACnB,SAAS,MAAM,EAAE,EACjB,UAAU,MAAM,EAAE,GACjB,GAAG,CAAC,MAAM,CAAC,CAkBb;;;IC/BD;;;;;;OAMG;IACH,MAAM,UAAU,SAAS,CAAC,MAAM,MAAM,EAAE,UAAU,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E;;;IChBD;;;;OAIG;IACH,MAAM,WAAW,QAAQ;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;KACZ;;;ICED,OAAO,EAAE,OAAO,EAAE,4BAA8B;IAKhD;;;;;;OAMG;IACH,MAAM,UAAU,GAAG,CAAC,YAAY,OAAO,EAAE,cAAc,MAAM,EAAE,GAAG,IAAI,CAshBrE;;;IExiBD;;;;;OAKG;IACH,MAAM,UAAU,KAAK,IAAI,IAAI,CA8B5B;;;ICtCD;;;;;OAKG;IACH,MAAM,UAAU,aAAa,CAAC,SAAS,MAAM,GAAG,IAAI,CAUnD"} \ No newline at end of file diff --git a/packages/cli/lib/as-pect.cli.amd.js b/packages/cli/lib/as-pect.cli.amd.js index d98b20e2..ddd5f5b8 100644 --- a/packages/cli/lib/as-pect.cli.amd.js +++ b/packages/cli/lib/as-pect.cli.amd.js @@ -30,7 +30,7 @@ define("help", ["require", "exports", "chalk"], function (require, exports, chal * This method prints the help text. */ function help() { - console.log(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "], ["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "])))); + console.log(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --memory_size=[number] Initial size of imported memory in bytes. {yellow (Default: 10 Bytes)}\n {bold.green asp} -m\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "], ["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --memory_size=[number] Initial size of imported memory in bytes. {yellow (Default: 10 Bytes)}\n {bold.green asp} -m\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "])))); } exports.help = help; var templateObject_1; @@ -161,6 +161,12 @@ define("util/CommandLineArg", ["require", "exports", "util/strings"], function ( type: "bs", value: false, }, + memory_size: { + description: "Set the initial size of imported memory in bytes.", + type: "i", + alias: { name: "m" }, + value: 10 + }, "max-samples": { description: "Set the maximum number of samples to run for each test.", type: "i", @@ -893,9 +899,12 @@ define("run", ["require", "exports", "fs", "perf_hooks", "path", "chalk", "@as-p } } } + /** If the export table flag exists on the cli options, use the export table flag. */ if (exportTable) { flags["--exportTable"] = []; } + /** Always import the memory now so that we expose the WebAssembly.Memory object to imports. */ + flags["--importMemory"] = []; /** It's useful to notify the user that optimizations will make test compile times slower. */ if (flags.hasOwnProperty("-O3") || flags.hasOwnProperty("-O2") || @@ -988,6 +997,7 @@ define("run", ["require", "exports", "fs", "perf_hooks", "path", "chalk", "@as-p console.log(""); var finalCompilerArguments = __spreadArrays(Array.from(addedTestEntryFiles), flagList); function runBinary(error, file, binary) { + var _a; // if there are any compilation errors, stop the test suite if (error) { console.error(chalk_5.default(templateObject_38 || (templateObject_38 = __makeTemplateObject(["{red [Error]} There was a compilation error when trying to create the wasm binary for file: ", "."], ["{red [Error]} There was a compilation error when trying to create the wasm binary for file: ", "."])), file)); @@ -1011,9 +1021,15 @@ define("run", ["require", "exports", "fs", "perf_hooks", "path", "chalk", "@as-p }); // detect custom imports var customImportFileLocation = path.resolve(path.join(path.dirname(file), path.basename(file, path.extname(file)) + ".imports.js")); - var imports = runner.createImports((fs.existsSync(customImportFileLocation) + var configurationImports = fs.existsSync(customImportFileLocation) ? require(customImportFileLocation) - : configuration.imports) || {}); + : (_a = configuration.imports, (_a !== null && _a !== void 0 ? _a : {})); + var memory = new WebAssembly.Memory({ initial: 10 }); + var stagedImports = typeof configurationImports === "function" + ? configurationImports(memory) + : configurationImports; + var imports = runner.createImports(stagedImports); + imports.env.memory = memory; // instantiate the module var wasm = instantiateSync(binary, imports); if (runner.errors.length > 0) { @@ -1044,8 +1060,8 @@ define("run", ["require", "exports", "fs", "perf_hooks", "path", "chalk", "@as-p console.log(chalk_5.default(templateObject_43 || (templateObject_43 = __makeTemplateObject(["\n [Result]: ", "\n [Files]: ", " total\n [Groups]: ", " count, ", " pass\n [Tests]: ", " pass, ", " fail, ", " total\n [Time]: ", "ms"], ["\n [Result]: ", "\n [Files]: ", " total\n [Groups]: ", " count, ", " pass\n [Tests]: ", " pass, ", " fail, ", " total\n [Time]: ", "ms"])), result, testEntryFiles.size.toString(), groupCount.toString(), groupSuccessCount.toString(), successCount.toString(), (testCount - successCount).toString(), testCount.toString(), timeDifference_1.timeDifference(end, start).toString())); if (worklets.length > 0) { - for (var _a = 0, worklets_1 = worklets; _a < worklets_1.length; _a++) { - var worklet = worklets_1[_a]; + for (var _b = 0, worklets_1 = worklets; _b < worklets_1.length; _b++) { + var worklet = worklets_1[_b]; worklet.terminate(); } } @@ -1300,4 +1316,4 @@ define("worklets/compiler", ["require", "exports", "fs", "path", "worker_threads } worker_threads_1.parentPort.on("message", run); }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtcGVjdC5jbGkuYW1kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QudHMiLCIuLi9zcmMvaGVscC50cyIsIi4uL3NyYy91dGlsL3N0cmluZ3MudHMiLCIuLi9zcmMvdXRpbC9Db21tYW5kTGluZUFyZy50cyIsIi4uL3NyYy9pbmRleC50cyIsIi4uL3NyYy9pbml0LnRzIiwiLi4vc3JjL3BvcnRhYmxlLnRzIiwiLi4vc3JjL3V0aWwvSUNvbmZpZ3VyYXRpb24udHMiLCIuLi9zcmMvdXRpbC9jb2xsZWN0UmVwb3J0ZXIudHMiLCIuLi9zcmMvdXRpbC9nZXRUZXN0RW50cnlGaWxlcy50cyIsIi4uL3NyYy91dGlsL3dyaXRlRmlsZS50cyIsIi4uL3NyYy93b3JrbGV0cy9JQ29tbWFuZC50cyIsIi4uL3NyYy9ydW4udHMiLCIuLi9zcmMvdHlwZXMudHMiLCIuLi9zcmMvdXRpbC9hc2NpaUFydC50cyIsIi4uL3NyYy93b3JrbGV0cy9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0VBOzs7O09BSUc7SUFDSCxTQUFnQixJQUFJO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSywyaElBQUEsdzlIQTREaEIsS0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTlERCxvQkE4REM7Ozs7OztJQ3JFRDs7Ozs7T0FLRztJQUNILFNBQWdCLFVBQVUsQ0FBQyxJQUFZO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRkQsZ0NBRUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFnQixXQUFXLENBQUMsR0FBVyxFQUFFLElBQWtCO1FBQWxCLHFCQUFBLEVBQUEsVUFBa0I7UUFDekQsT0FBTyxHQUFHO2FBQ1AsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLEdB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtcGVjdC5jbGkuYW1kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QudHMiLCIuLi9zcmMvaGVscC50cyIsIi4uL3NyYy91dGlsL3N0cmluZ3MudHMiLCIuLi9zcmMvdXRpbC9Db21tYW5kTGluZUFyZy50cyIsIi4uL3NyYy9pbmRleC50cyIsIi4uL3NyYy9pbml0LnRzIiwiLi4vc3JjL3BvcnRhYmxlLnRzIiwiLi4vc3JjL3V0aWwvSUNvbmZpZ3VyYXRpb24udHMiLCIuLi9zcmMvdXRpbC9jb2xsZWN0UmVwb3J0ZXIudHMiLCIuLi9zcmMvdXRpbC9nZXRUZXN0RW50cnlGaWxlcy50cyIsIi4uL3NyYy91dGlsL3dyaXRlRmlsZS50cyIsIi4uL3NyYy93b3JrbGV0cy9JQ29tbWFuZC50cyIsIi4uL3NyYy9ydW4udHMiLCIuLi9zcmMvdHlwZXMudHMiLCIuLi9zcmMvdXRpbC9hc2NpaUFydC50cyIsIi4uL3NyYy93b3JrbGV0cy9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0VBOzs7O09BSUc7SUFDSCxTQUFnQixJQUFJO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSywrcUlBQUEsNG1JQTZEaEIsS0FBQyxDQUFDO0lBQ0wsQ0FBQztJQS9ERCxvQkErREM7Ozs7OztJQ3RFRDs7Ozs7T0FLRztJQUNILFNBQWdCLFVBQVUsQ0FBQyxJQUFZO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRkQsZ0NBRUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFnQixXQUFXLENBQUMsR0FBVyxFQUFFLElBQWtCO1FBQWxCLHFCQUFBLEVBQUEsVUFBa0I7UUFDekQsT0FBTyxHQUFHO2FBQ1AsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLEdB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 \ No newline at end of file diff --git a/packages/cli/lib/help.js b/packages/cli/lib/help.js index bfa0edf5..9b2c1925 100644 --- a/packages/cli/lib/help.js +++ b/packages/cli/lib/help.js @@ -23,9 +23,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) { * This method prints the help text. */ function help() { - console.log(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "], ["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "])))); + console.log(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --memory_size=[number] Initial size of imported memory in bytes. {yellow (Default: 10 Bytes)}\n {bold.green asp} -m\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "], ["\n {bold.blueBright SYNTAX}\n {bold.green asp} --init Create a test config, an assembly/__tests__ folder and exit.\n {bold.green asp} -i\n {bold.green asp} --config=as-pect.config.js Use a specified configuration\n {bold.green asp} -c as-pect.config.js\n {bold.green asp} --version View the version.\n {bold.green asp} -v\n {bold.green asp} --help Show this help screen.\n {bold.green asp} -h\n {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts\n {bold.green asp} -t\n {bold.green asp} --memory_size=[number] Initial size of imported memory in bytes. {yellow (Default: 10 Bytes)}\n {bold.green asp} -m\n {bold.green asp} --nologo Suppress ASCII art from printing.\n {bold.green asp} --compiler Path to folder relative to project root which contains\n {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)}\n\n {bold.blueBright TEST OPTIONS}\n {bold.green --file=[regex]} Run the tests of each file that matches this regex. {yellow (Default: /./)}\n {bold.green --files=[regex]}\n {bold.green -f=[regex]}\n\n {bold.green --group=[regex]} Run each describe block that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --groups=[regex]}\n {bold.green -g=[regex]}\n\n {bold.green --test=[regex]} Run each test that matches this regex {yellow (Default: /(:?)/)}\n {bold.green --tests=[regex]}\n {bold.green -t=[regex]}\n\n {bold.green --output-binary} Create a (.wasm) file can contains all the tests to be run later.\n {bold.green -o}\n\n {bold.green --norun} Skip running tests and output the compiler files.\n {bold.green -n}\n\n {bold.green --nortrace} Skip rtrace reference counting calculations.\n {bold.green -nr}\n\n {bold.green asp} --workers 3 Enable the experimental worker worklets {yellow (default: 0 {gray [disabled]})}\n {bold.green asp} -w\n\n {bold.blueBright REPORTER OPTIONS}\n --summary Use the summary reporter. {yellow (This is the default if no reporter is specified.)}\n --verbose Use a more verbose reporter.\n --csv Use the csv reporter (output results to csv files.)\n --json Use the json reporter (output results to json files.)\n --reporter Define a custom reporter (path or module)\n\n {bold.blueBright PERFORMANCE OPTIONS}\n {bold.green --performance} Enable performance statistics for {bold every} test. {yellow (Default: false)}\n {bold.green --max-samples=[number]} Set the maximum number of samples to run for each test. {yellow (Default: 10000 samples)}\n {bold.green --max-test-run-time=[number]} Set the maximum test run time in milliseconds. {yellow (Default: 2000ms)}\n {bold.green --round-decimal-places=[number]} Set the number of decimal places to round to. {yellow (Default: 3)}\n {bold.green --report-median(=false)?} Enable/Disable reporting of the median time. {yellow (Default: true)}\n {bold.green --report-average(=false)?} Enable/Disable reporting of the average time. {yellow (Default: true)}\n {bold.green --report-standard-deviation(=false)?} Enable/Disable reporting of the standard deviation. {yellow (Default: false)}\n {bold.green --report-max(=false)?} Enable/Disable reporting of the largest run time. {yellow (Default: false)}\n {bold.green --report-min(=false)?} Enable/Disable reporting of the smallest run time. {yellow (Default: false)}\n {bold.green --report-variance(=false)?} Enable/Disable reporting of the variance. {yellow (Default: false)}\n "])))); } exports.help = help; var templateObject_1; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLGdEQUEwQjtJQUUxQjs7OztPQUlHO0lBQ0gsU0FBZ0IsSUFBSTtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssMmhJQUFBLHc5SEE0RGhCLEtBQUMsQ0FBQztJQUNMLENBQUM7SUE5REQsb0JBOERDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLGdEQUEwQjtJQUUxQjs7OztPQUlHO0lBQ0gsU0FBZ0IsSUFBSTtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssK3FJQUFBLDRtSUE2RGhCLEtBQUMsQ0FBQztJQUNMLENBQUM7SUEvREQsb0JBK0RDIn0= \ No newline at end of file diff --git a/packages/cli/lib/run.js b/packages/cli/lib/run.js index 3411355b..92371e6b 100644 --- a/packages/cli/lib/run.js +++ b/packages/cli/lib/run.js @@ -194,9 +194,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { } } } + /** If the export table flag exists on the cli options, use the export table flag. */ if (exportTable) { flags["--exportTable"] = []; } + /** Always import the memory now so that we expose the WebAssembly.Memory object to imports. */ + flags["--importMemory"] = []; /** It's useful to notify the user that optimizations will make test compile times slower. */ if (flags.hasOwnProperty("-O3") || flags.hasOwnProperty("-O2") || @@ -289,6 +292,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { console.log(""); var finalCompilerArguments = __spreadArrays(Array.from(addedTestEntryFiles), flagList); function runBinary(error, file, binary) { + var _a; // if there are any compilation errors, stop the test suite if (error) { console.error(chalk_1.default(templateObject_20 || (templateObject_20 = __makeTemplateObject(["{red [Error]} There was a compilation error when trying to create the wasm binary for file: ", "."], ["{red [Error]} There was a compilation error when trying to create the wasm binary for file: ", "."])), file)); @@ -312,9 +316,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }); // detect custom imports var customImportFileLocation = path.resolve(path.join(path.dirname(file), path.basename(file, path.extname(file)) + ".imports.js")); - var imports = runner.createImports((fs.existsSync(customImportFileLocation) + var configurationImports = fs.existsSync(customImportFileLocation) ? require(customImportFileLocation) - : configuration.imports) || {}); + : (_a = configuration.imports, (_a !== null && _a !== void 0 ? _a : {})); + var memory = new WebAssembly.Memory({ initial: 10 }); + var stagedImports = typeof configurationImports === "function" + ? configurationImports(memory) + : configurationImports; + var imports = runner.createImports(stagedImports); + imports.env.memory = memory; // instantiate the module var wasm = instantiateSync(binary, imports); if (runner.errors.length > 0) { @@ -345,8 +355,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { console.log(chalk_1.default(templateObject_25 || (templateObject_25 = __makeTemplateObject(["\n [Result]: ", "\n [Files]: ", " total\n [Groups]: ", " count, ", " pass\n [Tests]: ", " pass, ", " fail, ", " total\n [Time]: ", "ms"], ["\n [Result]: ", "\n [Files]: ", " total\n [Groups]: ", " count, ", " pass\n [Tests]: ", " pass, ", " fail, ", " total\n [Time]: ", "ms"])), result, testEntryFiles.size.toString(), groupCount.toString(), groupSuccessCount.toString(), successCount.toString(), (testCount - successCount).toString(), testCount.toString(), timeDifference_1.timeDifference(end, start).toString())); if (worklets.length > 0) { - for (var _a = 0, worklets_1 = worklets; _a < worklets_1.length; _a++) { - var worklet = worklets_1[_a]; + for (var _b = 0, worklets_1 = worklets; _b < worklets_1.length; _b++) { + var worklet = worklets_1[_b]; worklet.terminate(); } } @@ -439,4 +449,4 @@ var __importDefault = (this && this.__importDefault) || function (mod) { exports.run = run; var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUNBLHFDQUF5QjtJQUN6Qix5Q0FBeUM7SUFDekMseUNBQTZCO0lBQzdCLGdEQUEwQjtJQUMxQixzQ0FBb0Y7SUFFcEYsOENBQXdCO0lBQ3hCLDBEQUF5RDtJQUN6RCw4REFBNkQ7SUFFN0QsOENBQTZDO0lBRTdDLHdFQUF5RTtJQUV6RTs7Ozs7O09BTUc7SUFDSCxTQUFnQixHQUFHLENBQUMsVUFBbUIsRUFBRSxZQUFzQjtRQUM3RCxJQUFNLEtBQUssR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQU0sUUFBUSxHQUFVLEVBQUUsQ0FBQztRQUUzQiw4Q0FBOEM7UUFDOUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDOUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQU0sUUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUVoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDakMsT0FBTyxDQUFDLEtBQUssQ0FDWCxlQUFLLDhIQUFBLHNEQUF1RCxFQUE2QixHQUFHLEtBQWhDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQzFGLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtZQUVELElB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUNBLHFDQUF5QjtJQUN6Qix5Q0FBeUM7SUFDekMseUNBQTZCO0lBQzdCLGdEQUEwQjtJQUMxQixzQ0FBb0Y7SUFFcEYsOENBQXdCO0lBQ3hCLDBEQUF5RDtJQUN6RCw4REFBNkQ7SUFFN0QsOENBQTZDO0lBRTdDLHdFQUF5RTtJQUV6RTs7Ozs7O09BTUc7SUFDSCxTQUFnQixHQUFHLENBQUMsVUFBbUIsRUFBRSxZQUFzQjtRQUM3RCxJQUFNLEtBQUssR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQU0sUUFBUSxHQUFVLEVBQUUsQ0FBQztRQUUzQiw4Q0FBOEM7UUFDOUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDOUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQU0sUUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUVoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDakMsT0FBTyxDQUFDLEtBQUssQ0FDWCxlQUFLLDhIQUFBLHNEQUF1RCxFQUE2QixHQUFHLEtBQWhDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQzFGLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtZQUVELElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0MsSUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFNLENBQUMsV0FBVyxFQUFFO29CQUN0QyxVQUFVLEVBQUU7d0JBQ1Ysb0JBQW9CLHNCQUFBO3FCQUNyQjtpQkFDRixDQUFDLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QjtZQUVELE9BQU8sQ0FBQyxHQUFHLENBQ1QsZUFBSyx1SkFBQSxzRUFBdUUsRUFBMEIsWUFBWSxLQUF0QyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUN2RyxDQUFDO1NBQ0g7UUFFRDs7Ozs7V0FLRztRQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSywrR0FBQSw0Q0FBNEMsS0FBQyxDQUFDO1FBQy9ELElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxlQUFvQixDQUFDO1FBQ3pCLElBQUksS0FBVSxDQUFDO1FBQ2YsSUFBSSxXQUFXLEdBQVksS0FBSyxDQUFDO1FBQ2pDLElBQUk7WUFDRixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSTtnQkFDSixvRUFBb0U7Z0JBQ3BFLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM1RDtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNYLElBQUk7b0JBQ0YsVUFBVSxHQUFHLE1BQU0sQ0FBQztvQkFDcEIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUMvRDtnQkFBQyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxNQUFNLEVBQUUsQ0FBQztpQkFDVjthQUNGO1lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixNQUFNLElBQUksS0FBSyxDQUFJLFVBQVUsQ0FBQyxRQUFRLFNBQUksVUFBVSx5QkFBc0IsQ0FBQyxDQUFDO2FBQzdFO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDVixVQUFVLENBQUMsUUFBUSxTQUFJLFVBQVUsNENBQXlDLENBQzlFLENBQUM7YUFDSDtZQUVELDZFQUE2RTtZQUM3RSxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUksVUFBVSxDQUFDLFFBQVEsZ0NBQTZCLENBQUMsQ0FBQzthQUN0RTtZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUNWLFVBQVUsQ0FBQyxRQUFRLDZEQUEwRCxDQUNqRixDQUFDO2FBQ0g7WUFDRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUV6Qyw0REFBNEQ7WUFDNUQsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzdCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsQ0FDVixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUksVUFBVSxDQUFDLFFBQVEsbUNBQWdDLENBQUMsQ0FBQzthQUN6RTtZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUNWLFVBQVUsQ0FBQyxRQUFRLHdEQUFxRCxDQUM1RSxDQUFDO2FBQ0g7WUFFRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUMzQixXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1lBQ0QsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDdkI7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQ1gsZUFBSywySUFBQSxpRUFBa0UsRUFBbUIsS0FBSyxLQUF4QixVQUFVLENBQUMsUUFBUSxFQUMzRixDQUFDO1lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLDhIQUFBLG1EQUFvRDtZQUc3QyxNQUFNLEtBSHVDLCtCQUFjLENBQ3JFLHdCQUFXLENBQUMsR0FBRyxFQUFFLEVBQ2pCLEtBQUssQ0FDTixDQUFDLFFBQVEsRUFBRSxFQUNiLENBQUM7UUFFRixnQ0FBZ0M7UUFDaEMsSUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLDRIQUFBLG9EQUFxRCxFQUFpQixHQUFHLEtBQXBCLGlCQUFpQixFQUM1RSxDQUFDO1FBRUYsSUFBSSxhQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUV2QyxJQUFJO1lBQ0YsYUFBYSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNsRDtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQixPQUFPLENBQUMsS0FBSyxDQUNYLGVBQUssMklBQUEsaUVBQWtFLEVBQWlCLEtBQUssS0FBdEIsaUJBQWlCLEVBQ3pGLENBQUM7WUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPLENBQUMsS0FBSyxDQUNYLGVBQUsseUpBQUEsc0RBQXVELEVBQWlCLDhCQUE4QixLQUEvQyxpQkFBaUIsRUFDOUUsQ0FBQztZQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxJQUFNLE9BQU8sR0FBYSxhQUFhLENBQUMsT0FBTyxJQUFJO1lBQ2pELGlDQUFpQztTQUNsQyxDQUFDO1FBQ0YsSUFBTSxHQUFHLEdBQWEsYUFBYSxDQUFDLEdBQUcsSUFBSTtZQUN6QyxvQ0FBb0M7U0FDckMsQ0FBQztRQUVGLG9GQUFvRjtRQUNwRixJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELHlEQUF5RDtZQUN6RCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLEtBQUssQ0FDWCxlQUFLLGlKQUFBLHVFQUF3RTtvQkFFNUUsS0FBSyxLQUZ1RSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDOUYsSUFBSSxDQUNMLEVBQ0YsQ0FBQztnQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pCO1NBQ0Y7UUFFRCw0QkFBNEI7UUFDNUIsSUFBTSxLQUFLLEdBQW1CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDbkUsWUFBWSxFQUFFLEVBQUU7WUFDaEIsU0FBUyxFQUFFLEVBQUU7WUFDYixjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDL0IsaUJBQWlCLEVBQUUsRUFBRTtTQUN0QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNILElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUN2QixhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUMvQjtRQUVELGdGQUFnRjtRQUNoRixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUN4RyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDbEMsNkNBQTZDO2lCQUM5QztxQkFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtvQkFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7aUJBQzdDO2FBQ0Y7U0FDRjtRQUVELHFGQUFxRjtRQUNyRixJQUFJLFdBQVcsRUFBRTtZQUNmLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDN0I7UUFFRCwrRkFBK0Y7UUFDL0YsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTdCLDZGQUE2RjtRQUM3RixJQUNFLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO1lBQ2xDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzVCLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzVCLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQ25DO1lBQ0EsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLDhKQUFBLHlGQUF5RixLQUMvRixDQUFDO1NBQ0g7UUFFRCxJQUFNLFFBQVEsR0FBYSxhQUFhLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV4RCxzRUFBc0U7UUFDdEUsSUFBTSxRQUFRLEdBQ1osYUFBYSxDQUFDLFFBQVEsSUFBSSxpQ0FBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhELElBQUksYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUM3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLE1BQU07Z0JBQ2xFLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxFQUFFO29CQUNuRCxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxXQUFZLENBQUMsTUFBTSxDQUFFLENBQUM7aUJBQ3RFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUV4RCw2QkFBNkI7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLGtIQUFBLHlDQUEwQyxFQUFrQixFQUFFLEtBQXBCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ2xFLENBQUM7UUFFRixxQ0FBcUM7UUFDckMsSUFBTSxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxhQUFhLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNwQyxPQUFPLENBQUMsR0FBRyxDQUNULGVBQUssb0lBQUEsMERBQTJELEVBQWdCLEdBQUcsS0FBbkIsU0FBUyxDQUFDLE1BQU0sRUFDakYsQ0FBQztRQUVGLElBQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsYUFBYSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLHFJQUFBLDJEQUE0RCxFQUFpQixHQUFHLEtBQXBCLFVBQVUsQ0FBQyxNQUFNLEVBQ25GLENBQUM7UUFFRjs7V0FFRztRQUNILElBQU0sWUFBWSxHQUFZLENBQUMsQ0FBQyxDQUM5QixVQUFVLENBQUMsWUFBWSxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQ3RELENBQUM7UUFDRixJQUFJLFlBQVksRUFBRTtZQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssMkhBQUEsc0RBQXNELEtBQUMsQ0FBQztTQUMxRTtRQUVEOztXQUVHO1FBQ0gsSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSywySEFBQSxzREFBc0QsS0FBQyxDQUFDO1NBQzFFO1FBRUQ7O1dBRUc7UUFDSCxJQUFNLFFBQVEsR0FBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZUFBSyxzSUFBQSxpRUFBaUUsS0FDdkUsQ0FBQztTQUNIO1FBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixPQUFPLENBQUMsR0FBRyxDQUNULGVBQUssd0hBQUEsbURBQW1EO2dCQUN0RCxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUN6QixDQUFDO1NBQ0g7UUFFRCxJQUFNLG1CQUFtQixHQUFnQixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRTNELG9DQUFvQztRQUNwQyxJQUFNLGNBQWMsR0FBRyxxQ0FBaUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXhFLEtBQXNCLFVBQUcsRUFBSCxXQUFHLEVBQUgsaUJBQUcsRUFBSCxJQUFHLEVBQUU7WUFBdEIsSUFBTSxPQUFPLFlBQUE7WUFDaEIseURBQXlEO1lBQ3pELEtBQW9CLFVBQWtCLEVBQWxCLEtBQUEsY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBbEIsY0FBa0IsRUFBbEIsSUFBa0IsRUFBRTtnQkFBbkMsSUFBTSxLQUFLLFNBQUE7Z0JBQ2QsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hDO1NBQ0Y7UUFFRCwwRUFBMEU7UUFDMUUsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pFLElBQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFbEUsbUZBQW1GO1FBQ25GLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTNDLDBDQUEwQztRQUMxQyxJQUFJLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBRWhDLDJEQUEyRDtRQUMzRCxJQUFNLFFBQVEsR0FBYSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FDckQsVUFBQyxJQUFjLEVBQUUsRUFBZTtnQkFBZCxZQUFJLEVBQUUsZUFBTztZQUFNLE9BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQTFCLENBQTBCLEVBQy9ELEVBQUUsQ0FDSCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2QixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLE1BQU0sR0FBZSxFQUFFLENBQUM7UUFDNUIsSUFBSSxZQUFZLEdBQW9CLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7UUFDOUMsSUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLHlIQUFBLG9EQUFvRCxLQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLGlIQUFBLGtDQUFtQztZQUU3QixJQUFLLEVBQWtCLEVBQUUsS0FGSSxLQUFLLENBQUMsSUFBSSxDQUNoRCxtQkFBbUIsQ0FDcEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDbkMsQ0FBQztRQUVGLDJEQUEyRDtRQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWhCLElBQU0sc0JBQXNCLGtCQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQy9CLFFBQVEsQ0FDWixDQUFDO1FBRUYsU0FBUyxTQUFTLENBQ2hCLEtBQW1CLEVBQ25CLElBQVksRUFDWixNQUFrQjs7WUFFbEIsMkRBQTJEO1lBQzNELElBQUksS0FBSyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQ1gsZUFBSyx3S0FBQSw4RkFBK0YsRUFBSSxHQUFHLEtBQVAsSUFBSSxFQUN6RyxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4QjtZQUVELG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxLQUFLLENBQ1gsZUFBSyx5TEFBQSxpREFBa0QsRUFBSSxpRUFBaUUsS0FBckUsSUFBSSxFQUM1RCxDQUFDO2dCQUNGLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4QjtZQUVELElBQUksUUFBUSxFQUFFO2dCQUNaLHVCQUF1QjtnQkFDdkIsSUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBVyxDQUFDO29CQUM3QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxVQUFVLEVBQUUsYUFBYSxDQUFDLFVBQVU7b0JBQ3BDLFNBQVMsRUFBRSxhQUFhLENBQUMsU0FBUztvQkFDbEMsd0JBQXdCLDBCQUFBO29CQUN4QixRQUFRLFVBQUE7b0JBQ1IsTUFBTSxRQUFBO2lCQUNQLENBQUMsQ0FBQztnQkFFSCx3QkFBd0I7Z0JBQ3hCLElBQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FDM0MsSUFBSSxDQUFDLElBQUksQ0FDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUN4RCxDQUNGLENBQUM7Z0JBRUYsSUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO29CQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDO29CQUNuQyxDQUFDLE9BQUMsYUFBYyxDQUFDLE9BQU8sdUNBQUksRUFBRSxFQUFBLENBQUM7Z0JBRWpDLElBQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxJQUFNLGFBQWEsR0FBRyxPQUFPLG9CQUFvQixLQUFLLFVBQVU7b0JBQzVELENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDM0IsSUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUU1Qix5QkFBeUI7Z0JBQ3pCLElBQU0sSUFBSSxHQUFtQixlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUU5RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDNUIsTUFBTSxDQUFDLElBQUksT0FBWCxNQUFNLEVBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRTtpQkFDL0I7cUJBQU07b0JBQ0wsZ0RBQWdEO29CQUNoRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNqQixTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ25DLFVBQUMsSUFBSSxFQUFFLEtBQUssSUFBSyxPQUFBLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBekIsQ0FBeUIsRUFDMUMsQ0FBQyxDQUNGLENBQUM7b0JBQ0YsWUFBWSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUN0QyxVQUFDLElBQUksRUFBRSxLQUFLLElBQUssT0FBQSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQyxDQUFDLE1BQU0sRUFBN0MsQ0FBNkMsRUFDOUQsQ0FBQyxDQUNGLENBQUM7b0JBQ0YsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO29CQUN2QyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDMUMsVUFBQyxJQUFJLEVBQUUsS0FBSyxJQUFLLE9BQUEsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBM0IsQ0FBMkIsRUFDNUMsaUJBQWlCLENBQ2xCLENBQUM7b0JBQ0YsTUFBTSxDQUFDLElBQUksT0FBWCxNQUFNLEVBQVMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLHNEQUFzRDtpQkFDdEY7YUFDRjtZQUVELEtBQUssSUFBSSxDQUFDLENBQUM7WUFFWCxpREFBaUQ7WUFDakQsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUNmLElBQUksUUFBUSxFQUFFO29CQUNaLElBQU0sR0FBRyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzlCLE1BQU0sR0FBRyxTQUFTLEtBQUssWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUN6RCxJQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQUssd0ZBQUEsbUJBQWMsS0FBQyxDQUFDLENBQUMsZUFBSywwRkFBQSxxQkFBZ0IsSUFBQSxDQUFDO29CQUNwRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUVuRSxLQUFvQixVQUFNLEVBQU4saUJBQU0sRUFBTixvQkFBTSxFQUFOLElBQU0sRUFBRTt3QkFBdkIsSUFBTSxPQUFLLGVBQUE7d0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLDhIQUFBLG1CQUNWLEVBQVUsS0FBTSxFQUFhLHNCQUMxQixFQUFtRCxLQUN0RSxLQUZnQixPQUFLLENBQUMsSUFBSSxFQUFNLE9BQUssQ0FBQyxPQUFPLEVBQzFCLE9BQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyRSxDQUFDO3FCQUNNO29CQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxzTkFBQSxnQkFDWCxFQUFNLGdCQUNOLEVBQThCLHNCQUM5QixFQUFxQixVQUFXLEVBQTRCLHFCQUM1RCxFQUF1QixTQUFVO3dCQUUzQixTQUFVLEVBQW9CLHNCQUNwQyxFQUFxQyxJQUFJLEtBTnpDLE1BQU0sRUFDTixjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUM5QixVQUFVLENBQUMsUUFBUSxFQUFFLEVBQVcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEVBQzVELFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBVSxDQUNyQyxTQUFTLEdBQUcsWUFBWSxDQUN6QixDQUFDLFFBQVEsRUFBRSxFQUFVLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFDcEMsK0JBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUssQ0FBQztvQkFFakQsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDdkIsS0FBc0IsVUFBUSxFQUFSLHFCQUFRLEVBQVIsc0JBQVEsRUFBUixJQUFRLEVBQUU7NEJBQTNCLElBQU0sT0FBTyxpQkFBQTs0QkFDaEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO3lCQUNyQjtxQkFDRjtpQkFDRjtnQkFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDN0IsSUFBSSxNQUFNO3dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLElBQUksUUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDN0IsS0FBb0IsVUFBMEIsRUFBMUIsS0FBQSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUExQixjQUEwQixFQUExQixJQUEwQixFQUFFO2dCQUEzQyxJQUFNLEtBQUssU0FBQTtnQkFDZCxJQUFNLFFBQVEsR0FBYTtvQkFDekIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFO3dCQUNMLElBQUksRUFBRSxLQUFLO3dCQUNYLElBQUksa0JBQUcsS0FBSyxHQUFLLHNCQUFzQixDQUFDO3dCQUN4QyxZQUFZLGNBQUE7cUJBQ2I7aUJBQ0YsQ0FBQztnQkFFRixRQUFRLENBQUMsQ0FBQyxHQUFHLFFBQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM1QztZQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQSxPQUFPO2dCQUN0QixPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFDLENBQVc7b0JBQ2hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLDZDQUE2QztZQUM3QyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLElBQVk7Z0JBQzlDLElBQUksTUFBa0IsQ0FBQztnQkFFdkIsR0FBRyxDQUFDLElBQUksaUJBQ0wsSUFBSSxHQUFLLHNCQUFzQixHQUNoQztvQkFDRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQWE7b0JBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBYTtvQkFDN0IsU0FBUyxFQUFULFVBQVUsT0FBZSxFQUFFLE9BQWU7d0JBQ3hDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUMzQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3pCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQzt5QkFDL0I7d0JBRUQsSUFBSTs0QkFDRixJQUFNLE9BQU8sR0FBRyxFQUFFO2lDQUNmLFdBQVcsQ0FBQyxNQUFNLENBQUM7aUNBQ25CLE1BQU0sQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBbkMsQ0FBbUMsQ0FBQyxDQUFDOzRCQUN2RCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzs0QkFDL0IsT0FBTyxPQUFPLENBQUM7eUJBQ2hCO3dCQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUNWLE9BQU8sRUFBRSxDQUFDO3lCQUNYO29CQUNILENBQUM7b0JBQ0QsUUFBUSxFQUFSLFVBQVMsUUFBZ0IsRUFBRSxPQUFlO3dCQUN4QyxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFDOUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFOzRCQUN6QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFFLENBQUM7eUJBQy9CO3dCQUVELElBQUk7NEJBQ0YsSUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzs0QkFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7NEJBQ2hDLE9BQU8sUUFBUSxDQUFDO3lCQUNqQjt3QkFBQyxPQUFPLENBQUMsRUFBRTs0QkFDVixPQUFPLElBQUksQ0FBQzt5QkFDYjtvQkFDSCxDQUFDO29CQUNELFNBQVMsRUFBVCxVQUFVLElBQVksRUFBRSxRQUFvQixFQUFFLE9BQW9CO3dCQUFwQix3QkFBQSxFQUFBLGFBQW9CO3dCQUNoRSxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUUvQixvQkFBb0I7d0JBQ3BCLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTs0QkFDbkIsTUFBTSxHQUFHLFFBQVEsQ0FBQzs0QkFDbEIsSUFBSSxDQUFDLFlBQVk7Z0NBQUUsT0FBTzt5QkFDM0I7NkJBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFOzRCQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQzs0QkFDakUsT0FBTzt5QkFDUjt3QkFFRCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUM5QyxDQUFDO3dCQUNGLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQVMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDdEQsQ0FBQztpQkFDRixFQUNELFVBQUMsS0FBVSxJQUFLLE9BQUEsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQTlCLENBQThCLENBQy9DLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQXRoQkQsa0JBc2hCQyJ9 \ No newline at end of file diff --git a/packages/cli/lib/util/CommandLineArg.d.ts b/packages/cli/lib/util/CommandLineArg.d.ts index 62088fb2..715f6792 100644 --- a/packages/cli/lib/util/CommandLineArg.d.ts +++ b/packages/cli/lib/util/CommandLineArg.d.ts @@ -49,6 +49,7 @@ export interface Options { group: string; test: string; outputBinary: boolean; + memory_size: number; norun: boolean; nortrace: boolean; reporter: string; diff --git a/packages/cli/lib/util/CommandLineArg.js b/packages/cli/lib/util/CommandLineArg.js index 8d1417c1..cc8174b5 100644 --- a/packages/cli/lib/util/CommandLineArg.js +++ b/packages/cli/lib/util/CommandLineArg.js @@ -104,6 +104,12 @@ type: "bs", value: false, }, + memory_size: { + description: "Set the initial size of imported memory in bytes.", + type: "i", + alias: { name: "m" }, + value: 10 + }, "max-samples": { description: "Set the maximum number of samples to run for each test.", type: "i", @@ -363,4 +369,4 @@ } exports.parse = parse; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZExpbmVBcmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9Db21tYW5kTGluZUFyZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUNBLHFDQUF3QztJQXVFeEM7Ozs7T0FJRztJQUNIO1FBUUUsd0JBQW1CLElBQVksRUFBRSxPQUF3QjtZQUF0QyxTQUFJLEdBQUosSUFBSSxDQUFRO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQy9CLENBQUM7UUFDRCw4QkFBSyxHQUFMLFVBQU0sSUFBWTtZQUNoQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLEtBQUssR0FBRztvQkFDTixPQUFPLElBQUksQ0FBQztnQkFDZCxLQUFLLElBQUk7b0JBQ1AsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxHQUFHO29CQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsS0FBSyxHQUFHO29CQUNOLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO3dCQUN2QyxNQUFNLElBQUksS0FBSyxDQUNiLGVBQWEsSUFBSSxrQ0FBNkIsSUFBSSxDQUFDLElBQU0sQ0FDMUQsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQ3pCLEtBQUssR0FBRztvQkFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZExpbmVBcmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9Db21tYW5kTGluZUFyZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUNBLHFDQUF3QztJQXdFeEM7Ozs7T0FJRztJQUNIO1FBUUUsd0JBQW1CLElBQVksRUFBRSxPQUF3QjtZQUF0QyxTQUFJLEdBQUosSUFBSSxDQUFRO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQy9CLENBQUM7UUFDRCw4QkFBSyxHQUFMLFVBQU0sSUFBWTtZQUNoQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLEtBQUssR0FBRztvQkFDTixPQUFPLElBQUksQ0FBQztnQkFDZCxLQUFLLElBQUk7b0JBQ1AsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxHQUFHO29CQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsS0FBSyxHQUFHO29CQUNOLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO3dCQUN2QyxNQUFNLElBQUksS0FBSyxDQUNiLGVBQWEsSUFBSSxrQ0FBNkIsSUFBSSxDQUFDLElBQU0sQ0FDMUQsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQ3pCLEtBQUssR0FBRztvQkFD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 \ No newline at end of file diff --git a/packages/cli/package-lock.json b/packages/cli/package-lock.json index e5000d72..31b2e5dc 100644 --- a/packages/cli/package-lock.json +++ b/packages/cli/package-lock.json @@ -4,11 +4,86 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@npmcli/ci-detect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.1.1.tgz", + "integrity": "sha512-h5eW3DljLypyhvfK94FkSSm4qtSUFddth/xW+7vnkVCEUJR38MYvctCSZkxqrzmXZSzpfImuAwwKvRqkEuDvCQ==", + "dev": true + }, + "@npmcli/installed-package-contents": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz", + "integrity": "sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1", + "read-package-json-fast": "^1.1.1", + "readdir-scoped-modules": "^1.1.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, + "agentkeepalive": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", + "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", @@ -18,19 +93,40 @@ "color-convert": "^2.0.1" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, "arg": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.2.tgz", "integrity": "sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==", "dev": true }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, "assemblyscript": { - "version": "0.8.1-nightly.20200114", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1-nightly.20200114.tgz", - "integrity": "sha512-8accd9rrGBJo5VzG8mUFyebUqAXwccxXAzxtJSf+Mp320oJHSu3CmSwDwi35clIB6IMXahfRr7OQEepyovErig==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.9.0.tgz", + "integrity": "sha512-HDDoaDfdnp0Ki/k272ib12sKz3ytVlXsIDise5meamInLC1qZAcmwwO+aqNyiVksmPYyLhQlaVZRPKWibHqo3g==", "dev": true, "requires": { - "binaryen": "90.0.0-nightly.20200101", + "binaryen": "90.0.0-nightly.20200111", "long": "^4.0.0" } }, @@ -40,11 +136,79 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "binaryen": { - "version": "90.0.0-nightly.20200101", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200101.tgz", - "integrity": "sha512-64lgruunUnkJD4YVD0DLCSRskqfo3xhoErM1H22GfkkWNT16/7tPTLG+MYqKLMALTiIyLL6L9UqmDaxOxDv0rw==", + "version": "90.0.0-nightly.20200111", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200111.tgz", + "integrity": "sha512-2uihf1tqfkG2OJB54LjIDu5/fqbGgbj9VSwnj8hYtsRfML61y0uHeMkPfWctyl99m7hsgyDu7xUbJ7iyqBz6BA==", "dev": true }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -60,6 +224,77 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "cacache": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-14.0.0.tgz", + "integrity": "sha512-+Nr/BnA/tjAUXza9gH8F+FSP+1HvWqCKt4c95dQr4EDVJVafbzmPZpLKCkLYexs6vSd2B/1TOXrAoNnqVPfvRA==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "tar": "^6.0.0", + "unique-filename": "^1.1.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -69,6 +304,54 @@ "supports-color": "^7.1.0" } }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cint": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cint/-/cint-8.2.1.tgz", + "integrity": "sha1-cDhrG0jidz0NYxZqVa/5TvRFahI=", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -82,22 +365,318 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "commander": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -111,11 +690,164 @@ "path-is-absolute": "^1.0.0" } }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hosted-git-info": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", + "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } + }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "dev": true + }, + "http-proxy-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz", + "integrity": "sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -130,42 +862,1101 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "ci-info": "^2.0.0" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, "requires": { - "wrappy": "1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, - "path-is-absolute": { + "is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.0.1.tgz", + "integrity": "sha512-XFY2Mbnmg+8r7MRsxfArVkZcfjxGlF/NjM3LsPXVeCX/GBF/1FTCv+idHBYC4qLPtK7q8HC8bapLoWqnhP/bXw==", + "dev": true + }, + "json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", + "dev": true, + "requires": { + "jju": "^1.1.0" + } + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "libnpmconfig": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz", + "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-fetch-happen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-7.1.1.tgz", + "integrity": "sha512-7fNjiOXNZhNGQzG5P15nU97aZQtzPU2GVgVd7pnqnl5gnpLzMAD8bAe5YG4iW2s0PTqaZy9xGv4Wfqe872kRNQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.0", + "cacache": "^14.0.0", + "http-cache-semantics": "^4.0.3", + "http-proxy-agent": "^3.0.0", + "https-proxy-agent": "^4.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.1.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^7.0.1" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", + "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-pipeline": "^1.2.2", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "dev": true + }, + "node-alias": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-alias/-/node-alias-1.0.4.tgz", + "integrity": "sha1-HxuRa1a56iQcATX5fO1pQPVW8pI=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "lodash": "^4.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-check-updates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-4.0.1.tgz", + "integrity": "sha512-rDrKAqhQuTYq2EkndroPMZGA9N6tpTotOVOIJoxRa3ZKnb/mOcq2TZv4A4LLSM8+9kZlP+sBwE+XAGh8wWZw/w==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cint": "^8.2.1", + "cli-table": "^0.3.1", + "commander": "^4.0.1", + "fast-diff": "^1.2.0", + "find-up": "4.1.0", + "get-stdin": "^7.0.0", + "json-parse-helpfulerror": "^1.0.3", + "libnpmconfig": "^1.2.1", + "lodash": "^4.17.15", + "node-alias": "^1.0.4", + "pacote": "^10.2.0", + "progress": "^2.0.3", + "prompts": "^2.3.0", + "rc-config-loader": "^3.0.0", + "requireg": "^0.2.2", + "semver": "^6.3.0", + "semver-utils": "^1.1.4", + "spawn-please": "^0.3.0", + "update-notifier": "^3.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", + "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-packlist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.0.3.tgz", + "integrity": "sha512-geT5P1y+58INE/jlxBHNsucRX7jpZAgW+XkxAe1NWN7N9SNwpueWTUPRoVdJH+hFpqcdAChRUE/HWsXQI+8JaQ==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-5.0.0.tgz", + "integrity": "sha512-YUW9xObM7Y1OkQ/gSmU5VQyI3vCkG5lwOrdycw0dpj9/3dE8h9CKY8tVyHTIp50+mV8jOAGH4m4Lts7zz2rN4Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-registry-fetch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-6.0.0.tgz", + "integrity": "sha512-TSzEzudrky0ArPskchM/7F5SrawBY5acMNtRqFuacEI2lCKEyfBjaENuuIU5Uq2CyHfJ+gWp5QlCprolKa5wKg==", + "dev": true, + "requires": { + "@npmcli/ci-detect": "^1.0.0", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^7.1.0", + "minipass": "^3.0.0", + "minipass-fetch": "^1.1.2", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0", + "safe-buffer": "^5.2.0", + "semver": "^7.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "pacote": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-10.3.1.tgz", + "integrity": "sha512-rCChFkLK9aqmk34ewjVmoUL3MD0yxzj3xkknS7MtDO5rx5z4d4bB+GxsAu4zoYc9r3ynQyEfc2GNtpL94yZaEw==", + "dev": true, + "requires": { + "@npmcli/installed-package-contents": "^1.0.5", + "cacache": "^14.0.0", + "chownr": "^1.1.3", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.1", + "minipass-fetch": "^1.2.1", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.0", + "npm-packlist": "^2.0.3", + "npm-pick-manifest": "^5.0.0", + "npm-registry-fetch": "^6.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "semver": "^7.1.1", + "ssri": "^7.1.0", + "tar": "^6.0.0", + "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "prompts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", + "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.3" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "rc-config-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", + "integrity": "sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "js-yaml": "^3.12.0", + "json5": "^2.1.1", + "require-from-string": "^2.0.2" + } + }, + "read-package-json-fast": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz", + "integrity": "sha512-MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dev": true, + "requires": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + } + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-utils": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.4.tgz", + "integrity": "sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sisteransi": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", + "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, @@ -179,6 +1970,86 @@ "source-map": "^0.6.0" } }, + "spawn-please": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-0.3.0.tgz", + "integrity": "sha1-2zOOxM/2Orxp8dDgjO6euL69nRE=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -187,6 +2058,35 @@ "has-flag": "^4.0.0" } }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "dev": true, + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "ts-node": { "version": "8.6.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz", @@ -200,11 +2100,208 @@ "yn": "3.1.1" } }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/packages/cli/package.json b/packages/cli/package.json index 3cb43f19..a2d1dc74 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -9,6 +9,7 @@ "mdlint": "markdownlint *.md", "prettier": "prettier --write \"src/**/*.ts\" \"./__tests__/*.ts\" \"./__tests__/setup/*.ts\" \"./*.md\"", "rimraf": "rimraf lib/*", + "package:version-update": "ncu -u", "test:ci": "run-s jest mdlint", "test": "run-s jest mdlint", "tsc:all": "run-p tsc:default tsc:amd", @@ -42,7 +43,8 @@ "glob": "^7.1.6" }, "devDependencies": { - "assemblyscript": "0.8.1-nightly.20200114", + "assemblyscript": "^0.9.0", + "npm-check-updates": "4.0.1", "ts-node": "^8.6.2" }, "files": [ diff --git a/packages/cli/src/help.ts b/packages/cli/src/help.ts index 9a418e81..9d4f95f5 100644 --- a/packages/cli/src/help.ts +++ b/packages/cli/src/help.ts @@ -18,6 +18,8 @@ export function help() { {bold.green asp} -h {bold.green asp} --types Copy the types file to assembly/__tests__/as-pect.d.ts {bold.green asp} -t + {bold.green asp} --memory_size=[number] Initial size of imported memory in bytes. {yellow (Default: 10 Bytes)} + {bold.green asp} -m {bold.green asp} --nologo Suppress ASCII art from printing. {bold.green asp} --compiler Path to folder relative to project root which contains {italic.magenta folder}/dist/asc for the compiler and {italic.magenta folder}/lib/loader for loader. {yellow (Default: assemblyscript)} diff --git a/packages/cli/src/run.ts b/packages/cli/src/run.ts index 84f8792e..78015ca2 100644 --- a/packages/cli/src/run.ts +++ b/packages/cli/src/run.ts @@ -212,10 +212,14 @@ export function run(cliOptions: Options, compilerArgs: string[]): void { } } + /** If the export table flag exists on the cli options, use the export table flag. */ if (exportTable) { flags["--exportTable"] = []; } + /** Always import the memory now so that we expose the WebAssembly.Memory object to imports. */ + flags["--importMemory"] = []; + /** It's useful to notify the user that optimizations will make test compile times slower. */ if ( flags.hasOwnProperty("-O3") || @@ -390,11 +394,17 @@ export function run(cliOptions: Options, compilerArgs: string[]): void { path.basename(file, path.extname(file)) + ".imports.js", ), ); - const imports = runner.createImports( - (fs.existsSync(customImportFileLocation) - ? require(customImportFileLocation) - : configuration!.imports) || {}, - ); + + const configurationImports = fs.existsSync(customImportFileLocation) + ? require(customImportFileLocation) + : configuration!.imports ?? {}; + + const memory = new WebAssembly.Memory({ initial: 10 }); + const stagedImports = typeof configurationImports === "function" + ? configurationImports(memory) + : configurationImports; + const imports = runner.createImports(stagedImports); + imports.env.memory = memory; // instantiate the module const wasm: IAspectExports = instantiateSync(binary, imports); diff --git a/packages/cli/src/util/CommandLineArg.ts b/packages/cli/src/util/CommandLineArg.ts index e0536c6c..fdf55e29 100644 --- a/packages/cli/src/util/CommandLineArg.ts +++ b/packages/cli/src/util/CommandLineArg.ts @@ -53,6 +53,7 @@ export interface Options { group: string; test: string; outputBinary: boolean; + memory_size: number, norun: boolean; nortrace: boolean; reporter: string; @@ -189,6 +190,13 @@ const _Args: CommandLineArgs = { value: false, }, + memory_size: { + description: "Set the initial size of imported memory in bytes.", + type: "i", + alias: { name: "m" }, + value: 10 + }, + "max-samples": { description: "Set the maximum number of samples to run for each test.", type: "i", diff --git a/packages/core/__tests__/RTrace.spec.ts b/packages/core/__tests__/RTrace.spec.ts index 2db46cb9..bd55f098 100644 --- a/packages/core/__tests__/RTrace.spec.ts +++ b/packages/core/__tests__/RTrace.spec.ts @@ -30,6 +30,7 @@ describe("RTrace output", () => { expect(group.allocationCount).toMatchSnapshot(`allocationCount`); expect(group.incrementCount).toMatchSnapshot(`incrementCount`); expect(group.decrementCount).toMatchSnapshot(`decrementCount`); + expect(group.reallocationCount).toMatchSnapshot(`reallocationCount`); expect(group.rtraceStart).toMatchSnapshot(`rtraceStart`); expect(group.rtraceEnd).toMatchSnapshot(`rtraceEnd`); expect(group.rtraceDelta).toMatchSnapshot(`rtraceDelta`); @@ -43,6 +44,7 @@ describe("RTrace output", () => { expect(groupTest.allocationCount).toMatchSnapshot(`allocationCount`); expect(groupTest.incrementCount).toMatchSnapshot(`incrementCount`); expect(groupTest.decrementCount).toMatchSnapshot(`decrementCount`); + expect(groupTest.reallocationCount).toMatchSnapshot(`reallocationCount`); expect(groupTest.rtraceStart).toMatchSnapshot(`rtraceStart`); expect(groupTest.rtraceEnd).toMatchSnapshot(`rtraceEnd`); expect(groupTest.rtraceDelta).toMatchSnapshot(`rtraceDelta`); diff --git a/packages/core/__tests__/__snapshots__/RTrace.spec.ts.snap b/packages/core/__tests__/__snapshots__/RTrace.spec.ts.snap index e291aace..89c60c79 100644 --- a/packages/core/__tests__/__snapshots__/RTrace.spec.ts.snap +++ b/packages/core/__tests__/__snapshots__/RTrace.spec.ts.snap @@ -1,14 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): allocationCount 1`] = `6`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): allocationCount 1`] = `2`; -exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): decrementCount 1`] = `3`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): decrementCount 1`] = `1`; exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): errors 1`] = `Array []`; exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): freeCount 1`] = `0`; -exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): incrementCount 1`] = `3`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): incrementCount 1`] = `1`; + +exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): rtraceDelta 1`] = `2`; @@ -16,15 +18,17 @@ exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): rtraceEnd exports[`RTrace output Group: RTrace api Test: RTrace.activeBlocks(): rtraceStart 1`] = `10`; -exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): allocationCount 1`] = `4`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): allocationCount 1`] = `2`; -exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): decrementCount 1`] = `2`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): decrementCount 1`] = `1`; exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): errors 1`] = `Array []`; exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): freeCount 1`] = `0`; -exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): incrementCount 1`] = `2`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): incrementCount 1`] = `1`; + +exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.activeGroupBlocks(): rtraceDelta 1`] = `2`; @@ -42,6 +46,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.activeTestBlocks(): freeCo exports[`RTrace output Group: RTrace api Test: RTrace.activeTestBlocks(): incrementCount 1`] = `1`; +exports[`RTrace output Group: RTrace api Test: RTrace.activeTestBlocks(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.activeTestBlocks(): rtraceDelta 1`] = `2`; exports[`RTrace output Group: RTrace api Test: RTrace.activeTestBlocks(): rtraceEnd 1`] = `8`; @@ -58,21 +64,25 @@ exports[`RTrace output Group: RTrace api Test: RTrace.allocations(): freeCount 1 exports[`RTrace output Group: RTrace api Test: RTrace.allocations(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.allocations(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.allocations(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.allocations(): rtraceEnd 1`] = `6`; exports[`RTrace output Group: RTrace api Test: RTrace.allocations(): rtraceStart 1`] = `6`; -exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): allocationCount 1`] = `7`; +exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): allocationCount 1`] = `1`; -exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): decrementCount 1`] = `5`; +exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): decrementCount 1`] = `2`; exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): errors 1`] = `Array []`; exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): freeCount 1`] = `1`; -exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): incrementCount 1`] = `5`; +exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): incrementCount 1`] = `2`; + +exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.classIdOf(pointer: usize): rtraceDelta 1`] = `0`; @@ -90,6 +100,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.count(): freeCount 1`] = ` exports[`RTrace output Group: RTrace api Test: RTrace.count(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.count(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.count(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.count(): rtraceEnd 1`] = `6`; @@ -106,6 +118,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.decrements(): freeCount 1` exports[`RTrace output Group: RTrace api Test: RTrace.decrements(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.decrements(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.decrements(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.decrements(): rtraceEnd 1`] = `6`; @@ -122,6 +136,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.frees(): freeCount 1`] = ` exports[`RTrace output Group: RTrace api Test: RTrace.frees(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.frees(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.frees(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.frees(): rtraceEnd 1`] = `6`; @@ -138,6 +154,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.groupAllocations(): freeCo exports[`RTrace output Group: RTrace api Test: RTrace.groupAllocations(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.groupAllocations(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.groupAllocations(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.groupAllocations(): rtraceEnd 1`] = `6`; @@ -154,6 +172,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.groupDecrements(): freeCou exports[`RTrace output Group: RTrace api Test: RTrace.groupDecrements(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.groupDecrements(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.groupDecrements(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.groupDecrements(): rtraceEnd 1`] = `6`; @@ -170,6 +190,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.groupFrees(): freeCount 1` exports[`RTrace output Group: RTrace api Test: RTrace.groupFrees(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.groupFrees(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.groupFrees(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.groupFrees(): rtraceEnd 1`] = `6`; @@ -186,12 +208,32 @@ exports[`RTrace output Group: RTrace api Test: RTrace.groupIncrements(): freeCou exports[`RTrace output Group: RTrace api Test: RTrace.groupIncrements(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.groupIncrements(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.groupIncrements(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.groupIncrements(): rtraceEnd 1`] = `6`; exports[`RTrace output Group: RTrace api Test: RTrace.groupIncrements(): rtraceStart 1`] = `6`; +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): allocationCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): decrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): errors 1`] = `Array []`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): freeCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): incrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): reallocationCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): rtraceDelta 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): rtraceEnd 1`] = `12`; + +exports[`RTrace output Group: RTrace api Test: RTrace.groupReallocations(): rtraceStart 1`] = `12`; + exports[`RTrace output Group: RTrace api Test: RTrace.increments(): allocationCount 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.increments(): decrementCount 1`] = `0`; @@ -202,21 +244,43 @@ exports[`RTrace output Group: RTrace api Test: RTrace.increments(): freeCount 1` exports[`RTrace output Group: RTrace api Test: RTrace.increments(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.increments(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.increments(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.increments(): rtraceEnd 1`] = `6`; exports[`RTrace output Group: RTrace api Test: RTrace.increments(): rtraceStart 1`] = `6`; -exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): allocationCount 1`] = `8`; +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): allocationCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): decrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): decrementCount 1`] = `8`; +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): freeCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): incrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): reallocationCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): rtraceDelta 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): rtraceEnd 1`] = `12`; + +exports[`RTrace output Group: RTrace api Test: RTrace.reallocations(): rtraceStart 1`] = `12`; + +exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): allocationCount 1`] = `1`; + +exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): decrementCount 1`] = `3`; exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): freeCount 1`] = `2`; +exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): freeCount 1`] = `1`; + +exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): incrementCount 1`] = `3`; -exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): incrementCount 1`] = `8`; +exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.sizeOf(pointer: usize): rtraceDelta 1`] = `0`; @@ -234,6 +298,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.testAllocations(): freeCou exports[`RTrace output Group: RTrace api Test: RTrace.testAllocations(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.testAllocations(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.testAllocations(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.testAllocations(): rtraceEnd 1`] = `6`; @@ -250,6 +316,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.testDecrements(): freeCoun exports[`RTrace output Group: RTrace api Test: RTrace.testDecrements(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.testDecrements(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.testDecrements(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.testDecrements(): rtraceEnd 1`] = `6`; @@ -266,6 +334,8 @@ exports[`RTrace output Group: RTrace api Test: RTrace.testFrees(): freeCount 1`] exports[`RTrace output Group: RTrace api Test: RTrace.testFrees(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.testFrees(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.testFrees(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.testFrees(): rtraceEnd 1`] = `6`; @@ -282,12 +352,32 @@ exports[`RTrace output Group: RTrace api Test: RTrace.testIncrements(): freeCoun exports[`RTrace output Group: RTrace api Test: RTrace.testIncrements(): incrementCount 1`] = `0`; +exports[`RTrace output Group: RTrace api Test: RTrace.testIncrements(): reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api Test: RTrace.testIncrements(): rtraceDelta 1`] = `0`; exports[`RTrace output Group: RTrace api Test: RTrace.testIncrements(): rtraceEnd 1`] = `6`; exports[`RTrace output Group: RTrace api Test: RTrace.testIncrements(): rtraceStart 1`] = `6`; +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): allocationCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): decrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): errors 1`] = `Array []`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): freeCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): incrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): reallocationCount 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): rtraceDelta 1`] = `0`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): rtraceEnd 1`] = `12`; + +exports[`RTrace output Group: RTrace api Test: RTrace.testReallocations(): rtraceStart 1`] = `12`; + exports[`RTrace output Group: RTrace api: allocationCount 1`] = `8`; exports[`RTrace output Group: RTrace api: decrementCount 1`] = `8`; @@ -298,21 +388,25 @@ exports[`RTrace output Group: RTrace api: freeCount 1`] = `2`; exports[`RTrace output Group: RTrace api: incrementCount 1`] = `8`; +exports[`RTrace output Group: RTrace api: reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace api: rtraceDelta 1`] = `6`; exports[`RTrace output Group: RTrace api: rtraceEnd 1`] = `12`; exports[`RTrace output Group: RTrace api: rtraceStart 1`] = `6`; -exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: allocationCount 1`] = `4`; +exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: allocationCount 1`] = `3`; -exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: decrementCount 1`] = `7`; +exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: decrementCount 1`] = `6`; exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: freeCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: freeCount 1`] = `0`; -exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: incrementCount 1`] = `10`; +exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: incrementCount 1`] = `9`; + +exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should allocate a bunch of objects: rtraceDelta 1`] = `3`; @@ -330,21 +424,25 @@ exports[`RTrace output Group: RTrace tests Test: should allocate an object: free exports[`RTrace output Group: RTrace tests Test: should allocate an object: incrementCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should allocate an object: reallocationCount 1`] = `0`; + exports[`RTrace output Group: RTrace tests Test: should allocate an object: rtraceDelta 1`] = `1`; exports[`RTrace output Group: RTrace tests Test: should allocate an object: rtraceEnd 1`] = `4`; exports[`RTrace output Group: RTrace tests Test: should allocate an object: rtraceStart 1`] = `3`; -exports[`RTrace output Group: RTrace tests Test: should count references: allocationCount 1`] = `4`; +exports[`RTrace output Group: RTrace tests Test: should count references: allocationCount 1`] = `0`; -exports[`RTrace output Group: RTrace tests Test: should count references: decrementCount 1`] = `7`; +exports[`RTrace output Group: RTrace tests Test: should count references: decrementCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should count references: errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace tests Test: should count references: freeCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should count references: freeCount 1`] = `0`; -exports[`RTrace output Group: RTrace tests Test: should count references: incrementCount 1`] = `10`; +exports[`RTrace output Group: RTrace tests Test: should count references: incrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace tests Test: should count references: reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should count references: rtraceDelta 1`] = `0`; @@ -352,15 +450,17 @@ exports[`RTrace output Group: RTrace tests Test: should count references: rtrace exports[`RTrace output Group: RTrace tests Test: should count references: rtraceStart 1`] = `6`; -exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: allocationCount 1`] = `5`; +exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: allocationCount 1`] = `0`; -exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: decrementCount 1`] = `13`; +exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: decrementCount 1`] = `4`; exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: freeCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: freeCount 1`] = `0`; + +exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: incrementCount 1`] = `4`; -exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: incrementCount 1`] = `17`; +exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: rtraceDelta 1`] = `0`; @@ -368,7 +468,7 @@ exports[`RTrace output Group: RTrace tests Test: should deallocate all the objec exports[`RTrace output Group: RTrace tests Test: should deallocate all the objects: rtraceStart 1`] = `7`; -exports[`RTrace output Group: RTrace tests Test: should deallocate an object: allocationCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should deallocate an object: allocationCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should deallocate an object: decrementCount 1`] = `1`; @@ -376,7 +476,9 @@ exports[`RTrace output Group: RTrace tests Test: should deallocate an object: er exports[`RTrace output Group: RTrace tests Test: should deallocate an object: freeCount 1`] = `1`; -exports[`RTrace output Group: RTrace tests Test: should deallocate an object: incrementCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should deallocate an object: incrementCount 1`] = `0`; + +exports[`RTrace output Group: RTrace tests Test: should deallocate an object: reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should deallocate an object: rtraceDelta 1`] = `-1`; @@ -384,15 +486,17 @@ exports[`RTrace output Group: RTrace tests Test: should deallocate an object: rt exports[`RTrace output Group: RTrace tests Test: should deallocate an object: rtraceStart 1`] = `4`; -exports[`RTrace output Group: RTrace tests Test: should start a label: allocationCount 1`] = `5`; +exports[`RTrace output Group: RTrace tests Test: should start a label: allocationCount 1`] = `1`; -exports[`RTrace output Group: RTrace tests Test: should start a label: decrementCount 1`] = `9`; +exports[`RTrace output Group: RTrace tests Test: should start a label: decrementCount 1`] = `2`; exports[`RTrace output Group: RTrace tests Test: should start a label: errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace tests Test: should start a label: freeCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests Test: should start a label: freeCount 1`] = `0`; + +exports[`RTrace output Group: RTrace tests Test: should start a label: incrementCount 1`] = `3`; -exports[`RTrace output Group: RTrace tests Test: should start a label: incrementCount 1`] = `13`; +exports[`RTrace output Group: RTrace tests Test: should start a label: reallocationCount 1`] = `0`; exports[`RTrace output Group: RTrace tests Test: should start a label: rtraceDelta 1`] = `1`; @@ -400,15 +504,35 @@ exports[`RTrace output Group: RTrace tests Test: should start a label: rtraceEnd exports[`RTrace output Group: RTrace tests Test: should start a label: rtraceStart 1`] = `6`; -exports[`RTrace output Group: RTrace tests: allocationCount 1`] = `5`; +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: allocationCount 1`] = `6`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: decrementCount 1`] = `5`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: errors 1`] = `Array []`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: freeCount 1`] = `6`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: incrementCount 1`] = `5`; -exports[`RTrace output Group: RTrace tests: decrementCount 1`] = `13`; +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: reallocationCount 1`] = `1`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: rtraceDelta 1`] = `0`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: rtraceEnd 1`] = `7`; + +exports[`RTrace output Group: RTrace tests Test: trigger a reallocation: rtraceStart 1`] = `7`; + +exports[`RTrace output Group: RTrace tests: allocationCount 1`] = `11`; + +exports[`RTrace output Group: RTrace tests: decrementCount 1`] = `18`; exports[`RTrace output Group: RTrace tests: errors 1`] = `Array []`; -exports[`RTrace output Group: RTrace tests: freeCount 1`] = `1`; +exports[`RTrace output Group: RTrace tests: freeCount 1`] = `7`; + +exports[`RTrace output Group: RTrace tests: incrementCount 1`] = `22`; -exports[`RTrace output Group: RTrace tests: incrementCount 1`] = `17`; +exports[`RTrace output Group: RTrace tests: reallocationCount 1`] = `1`; exports[`RTrace output Group: RTrace tests: rtraceDelta 1`] = `4`; @@ -426,6 +550,8 @@ exports[`RTrace output Group: a group reference counting error Test: empty: free exports[`RTrace output Group: a group reference counting error Test: empty: incrementCount 1`] = `0`; +exports[`RTrace output Group: a group reference counting error Test: empty: reallocationCount 1`] = `0`; + exports[`RTrace output Group: a group reference counting error Test: empty: rtraceDelta 1`] = `0`; exports[`RTrace output Group: a group reference counting error Test: empty: rtraceEnd 1`] = `0`; @@ -442,14 +568,16 @@ exports[`RTrace output Group: a group reference counting error: freeCount 1`] = exports[`RTrace output Group: a group reference counting error: incrementCount 1`] = `0`; +exports[`RTrace output Group: a group reference counting error: reallocationCount 1`] = `0`; + exports[`RTrace output Group: a group reference counting error: rtraceDelta 1`] = `0`; exports[`RTrace output Group: a group reference counting error: rtraceEnd 1`] = `0`; exports[`RTrace output Group: a group reference counting error: rtraceStart 1`] = `7`; -exports[`RTrace output Overall Statistics: allocationCount 1`] = `16`; +exports[`RTrace output Overall Statistics: allocationCount 1`] = `22`; exports[`RTrace output Overall Statistics: errors 1`] = `Array []`; -exports[`RTrace output Overall Statistics: freeCount 1`] = `4`; +exports[`RTrace output Overall Statistics: freeCount 1`] = `10`; diff --git a/packages/core/__tests__/__snapshots__/TestContext.log.spec.ts.snap b/packages/core/__tests__/__snapshots__/TestContext.log.spec.ts.snap index 1db9c79d..86b4100a 100644 --- a/packages/core/__tests__/__snapshots__/TestContext.log.spec.ts.snap +++ b/packages/core/__tests__/__snapshots__/TestContext.log.spec.ts.snap @@ -111,13 +111,13 @@ exports[`log output Group: logs Test: logs: offset 13`] = `0`; exports[`log output Group: logs Test: logs: offset 14`] = `0`; -exports[`log output Group: logs Test: logs: snapshot 1`] = `512`; +exports[`log output Group: logs Test: logs: snapshot 1`] = `464`; exports[`log output Group: logs Test: logs: snapshot 2`] = `42`; exports[`log output Group: logs Test: logs: snapshot 3`] = `null`; -exports[`log output Group: logs Test: logs: snapshot 4`] = `2576`; +exports[`log output Group: logs Test: logs: snapshot 4`] = `2528`; exports[`log output Group: logs Test: logs: snapshot 5`] = `null`; @@ -256,13 +256,13 @@ exports[`log output Group: logs: todo 2`] = `"two"`; exports[`log output Group: logs: todo 3`] = `"three"`; -exports[`log output Group: logs: value 1`] = `512`; +exports[`log output Group: logs: value 1`] = `464`; exports[`log output Group: logs: value 2`] = `42`; exports[`log output Group: logs: value 3`] = `null`; -exports[`log output Group: logs: value 4`] = `2576`; +exports[`log output Group: logs: value 4`] = `2528`; exports[`log output Group: logs: value 5`] = `null`; diff --git a/packages/core/__tests__/__snapshots__/TestContext.pass-fail.spec.ts.snap b/packages/core/__tests__/__snapshots__/TestContext.pass-fail.spec.ts.snap index 24a17253..17edabd9 100644 --- a/packages/core/__tests__/__snapshots__/TestContext.pass-fail.spec.ts.snap +++ b/packages/core/__tests__/__snapshots__/TestContext.pass-fail.spec.ts.snap @@ -168,7 +168,7 @@ exports[`pass-fail output Group: pass-fail Test: should expect strings: actual m exports[`pass-fail output Group: pass-fail Test: should expect strings: actual offset 1`] = `0`; -exports[`pass-fail output Group: pass-fail Test: should expect strings: actual value 1`] = `896`; +exports[`pass-fail output Group: pass-fail Test: should expect strings: actual value 1`] = `784`; exports[`pass-fail output Group: pass-fail Test: should expect strings: actual values 1`] = `Array []`; @@ -180,7 +180,7 @@ exports[`pass-fail output Group: pass-fail Test: should expect strings: expected exports[`pass-fail output Group: pass-fail Test: should expect strings: expected offset 1`] = `0`; -exports[`pass-fail output Group: pass-fail Test: should expect strings: expected value 1`] = `928`; +exports[`pass-fail output Group: pass-fail Test: should expect strings: expected value 1`] = `816`; exports[`pass-fail output Group: pass-fail Test: should expect strings: expected values 1`] = `Array []`; @@ -366,7 +366,7 @@ exports[`pass-fail output Group: pass-fail Test: should report invalid strings: exports[`pass-fail output Group: pass-fail Test: should report invalid strings: actual offset 1`] = `0`; -exports[`pass-fail output Group: pass-fail Test: should report invalid strings: actual value 1`] = `2352`; +exports[`pass-fail output Group: pass-fail Test: should report invalid strings: actual value 1`] = `2304`; exports[`pass-fail output Group: pass-fail Test: should report invalid strings: actual values 1`] = `Array []`; @@ -378,7 +378,7 @@ exports[`pass-fail output Group: pass-fail Test: should report invalid strings: exports[`pass-fail output Group: pass-fail Test: should report invalid strings: expected offset 1`] = `0`; -exports[`pass-fail output Group: pass-fail Test: should report invalid strings: expected value 1`] = `2384`; +exports[`pass-fail output Group: pass-fail Test: should report invalid strings: expected value 1`] = `2336`; exports[`pass-fail output Group: pass-fail Test: should report invalid strings: expected values 1`] = `Array []`; @@ -505,7 +505,7 @@ exports[`pass-fail output Group: pass-fail Test: should report reference values: exports[`pass-fail output Group: pass-fail Test: should report reference values: actual offset 1`] = `24`; -exports[`pass-fail output Group: pass-fail Test: should report reference values: actual value 1`] = `5392`; +exports[`pass-fail output Group: pass-fail Test: should report reference values: actual value 1`] = `5344`; exports[`pass-fail output Group: pass-fail Test: should report reference values: actual values 1`] = `Array []`; @@ -544,7 +544,7 @@ exports[`pass-fail output Group: pass-fail Test: should report reference values: exports[`pass-fail output Group: pass-fail Test: should report reference values: expected offset 1`] = `24`; -exports[`pass-fail output Group: pass-fail Test: should report reference values: expected value 1`] = `5472`; +exports[`pass-fail output Group: pass-fail Test: should report reference values: expected value 1`] = `5424`; exports[`pass-fail output Group: pass-fail Test: should report reference values: expected values 1`] = `Array []`; diff --git a/packages/core/assembly/index.ts b/packages/core/assembly/index.ts index e39ed0aa..4c4503ad 100644 --- a/packages/core/assembly/index.ts +++ b/packages/core/assembly/index.ts @@ -1,2 +1,3 @@ /// /// +/// diff --git a/packages/core/assembly/jest-rtrace.ts b/packages/core/assembly/jest-rtrace.ts index 5bf7ddcd..e80abf3c 100644 --- a/packages/core/assembly/jest-rtrace.ts +++ b/packages/core/assembly/jest-rtrace.ts @@ -87,6 +87,21 @@ describe("RTrace tests", () => { last = globalVecArray.pop(); } }); + + test("trigger a reallocation", () => { + // create a reference that will be reallocated + let a = __retain(__alloc(100, idof())); + + // add some things to the heap so tlsf must allocate a new block for "a" + let b = new Vec3(1, 2, 3); + let c = new Vec3(1, 2, 3); + let d = new Vec3(1, 2, 3); + let e = new Vec3(1, 2, 3); + + // manually trigger a reallocation + a = __realloc(changetype(a), 10000); + __release(a); + }); }); let dummyReference: Vec3 = new Vec3(1, 2, 3); @@ -163,4 +178,16 @@ describe("RTrace api", () => { RTrace.sizeOf(ref); log(ref); }); + + test("RTrace.reallocations()", () => { + log(RTrace.reallocations()); + }); + + test("RTrace.groupReallocations()", () => { + log(RTrace.groupReallocations()); + }); + + test("RTrace.testReallocations()", () => { + log(RTrace.testReallocations()); + }); }); diff --git a/packages/core/lib/as-pect.core.amd.d.ts b/packages/core/lib/as-pect.core.amd.d.ts index 9161ee4c..075197ba 100644 --- a/packages/core/lib/as-pect.core.amd.d.ts +++ b/packages/core/lib/as-pect.core.amd.d.ts @@ -263,6 +263,11 @@ declare module "test/TestResult" { * the test's exection. */ incrementCount: number; + /** + * If the test did not error, this is the number of block increments that occurred during + * the test's exection. + */ + reallocationCount: number; /** * This is the number of allocations currently on the heap when the `TestResult` execution starts. */ @@ -373,6 +378,11 @@ declare module "test/TestGroup" { * the group's exection. */ incrementCount: number; + /** + * If the test group did not error, this is the number of block reallocations that occurred during + * the group's exection. + */ + reallocationCount: number; /** * This is the number of allocations currently on the heap when the `TestGroup` execution starts. */ @@ -1156,6 +1166,18 @@ declare module "test/TestCollector" { * This is the current number of net decrements that occurred during `TestResult` execution. */ protected testDecrementCount: number; + /** + * This is the current number of net reallocations during the `TestContext` execution. + */ + protected reallocationCount: number; + /** + * This is the current number of net reallocations during the `TestGroup` execution. + */ + protected groupReallocationCount: number; + /** + * This is the current number of net reallocations during the `TestResult` execution. + */ + protected testReallocationCount: number; /** * This map is responsible for keeping track of which blocks are currently allocated by their id. */ @@ -1192,6 +1214,7 @@ declare module "test/TestCollector" { * @param {number} block - This is a unique identifier for the affected block. */ private ondecrement; + private onrealloc; /** * This method reports an error to the current logTarget and the `TestContext`. * @@ -1247,6 +1270,18 @@ declare module "test/TestCollector" { * This linked method gets all the RTrace allocations for the current test up until this point. */ private getRTraceTestFrees; + /** + * This linked method gets all the RTrace reallocations for the current TestContext. + */ + private getRTraceReallocs; + /** + * This linked method gets all the RTrace reallocations for the current TestGroup. + */ + private getRTraceGroupReallocs; + /** + * This linked method gets all the RTrace reallocations for the current TestResult. + */ + private getRTraceTestReallocs; /** * This linked method gets all the current RTrace allocations and adds them to an array. */ diff --git a/packages/core/lib/as-pect.core.amd.d.ts.map b/packages/core/lib/as-pect.core.amd.d.ts.map index fa3fcade..3e3c60ca 100644 --- a/packages/core/lib/as-pect.core.amd.d.ts.map +++ b/packages/core/lib/as-pect.core.amd.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"as-pect.core.amd.d.ts","sourceRoot":"","sources":["../src/test/IWarning.ts","../src/util/ILogTarget.ts","../src/util/LogValue.ts","../src/util/ActualValue.ts","../src/test/PerformanceLimits.ts","../src/math/mean.ts","../src/math/round.ts","../src/math/median.ts","../src/math/variance.ts","../src/test/TestResult.ts","../src/test/TestGroup.ts","../src/util/IWriteable.ts","../src/reporter/util/createReferenceString.ts","../src/reporter/VerboseReporter.ts","../src/util/timeDifference.ts","../src/util/IAspectExports.ts","../src/util/IPerformanceConfiguration.ts","../src/util/wasmTools.ts","../src/test/TestCollector.ts","../src/test/TestContext.ts","../src/test/TestReporter.ts","../src/reporter/CombinationReporter.ts","../src/reporter/CSVReporter.ts","../src/reporter/EmptyReporter.ts","../src/reporter/JSONReporter.ts","../src/reporter/SummaryReporter.ts","../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"as-pect.core.amd.d.ts","sourceRoot":"","sources":["../src/test/IWarning.ts","../src/util/ILogTarget.ts","../src/util/LogValue.ts","../src/util/ActualValue.ts","../src/test/PerformanceLimits.ts","../src/math/mean.ts","../src/math/round.ts","../src/math/median.ts","../src/math/variance.ts","../src/test/TestResult.ts","../src/test/TestGroup.ts","../src/util/IWriteable.ts","../src/reporter/util/createReferenceString.ts","../src/reporter/VerboseReporter.ts","../src/util/timeDifference.ts","../src/util/IAspectExports.ts","../src/util/IPerformanceConfiguration.ts","../src/util/wasmTools.ts","../src/test/TestCollector.ts","../src/test/TestContext.ts","../src/test/TestReporter.ts","../src/reporter/CombinationReporter.ts","../src/reporter/CSVReporter.ts","../src/reporter/EmptyReporter.ts","../src/reporter/JSONReporter.ts","../src/reporter/SummaryReporter.ts","../src/index.ts"],"names":[],"mappings":";;IAAA;;OAEG;IACH,MAAM,WAAW,QAAQ;QACvB,uCAAuC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,6CAA6C;QAC7C,OAAO,EAAE,MAAM,CAAC;QAChB,+BAA+B;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB;;;ICVD,OAAO,EAAE,QAAQ,EAAE,sBAAmB;IACtC,OAAO,EAAE,QAAQ,EAAE,sBAAyB;IAE5C;;OAEG;IACH,MAAM,WAAW,UAAU;QACzB,IAAI,EAAE,QAAQ,EAAE,CAAC;QACjB,MAAM,EAAE,QAAQ,EAAE,CAAC;QACnB,QAAQ,EAAE,QAAQ,EAAE,CAAC;KACtB;;;ICVD,OAAO,EAAE,UAAU,EAAE,wBAAqB;IAE1C;;OAEG;IACH,MAAM,OAAO,QAAQ;QACnB;;;WAGG;QACI,OAAO,EAAE,MAAM,CAAK;QAE3B;;;WAGG;QACI,MAAM,EAAE,MAAM,CAAK;QAE1B;;;WAGG;QACI,KAAK,EAAE,MAAM,EAAE,CAAM;QAE5B;;WAEG;QACI,MAAM,EAAE,MAAM,EAAE,CAAM;QAE7B;;WAEG;QACI,OAAO,EAAE,MAAM,CAAM;QAE5B;;WAEG;QACI,KAAK,EAAE,MAAM,CAAM;QAE1B;;WAEG;QACI,MAAM,EAAE,UAAU,GAAG,IAAI,CAAQ;QAExC;;WAEG;QACI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;QAEnC;;WAEG;QACI,SAAS,EAAE,MAAM,CAAM;KAC/B;;;ICrDD,OAAO,EAAE,QAAQ,EAAE,sBAAmB;IAEtC;;;OAGG;IACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;QACvC;;WAEG;QACI,OAAO,EAAE,OAAO,CAAS;KACjC;;;ICXD;;;;OAIG;IACH,MAAM,CAAC,KAAK,MAAM,iBAAiB;QACjC,UAAU,QAAQ;QAClB,cAAc,OAAO;QACrB,oBAAoB,IAAI;QACxB,oBAAoB,IAAI;KACzB;;;ICVD;;;;;OAKG;IACH,MAAM,UAAU,IAAI,CAAC,OAAO,MAAM,EAAE,GAAG,MAAM,CAO5C;;;ICbD;;;;;;OAMG;IACH,MAAM,UAAU,KAAK,CAAC,OAAO,MAAM,EAAE,QAAQ,MAAM,GAAG,MAAM,CAG3D;;;ICVD;;;;;OAKG;IACH,MAAM,UAAU,MAAM,CAAC,OAAO,MAAM,EAAE,GAAG,MAAM,CAI9C;;;ICRD;;;;;;OAMG;IACH,MAAM,UAAU,QAAQ,CAAC,OAAO,MAAM,EAAE,GAAG,MAAM,CAkBhD;;;IC3BD,OAAO,EAAE,QAAQ,EAAE,sBAAyB;IAC5C,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAClD,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAEhD,OAAO,EAAE,QAAQ,EAAE,sBAAmB;IAMtC;;;OAGG;IACH,MAAM,OAAO,UAAW,YAAW,UAAU;QAC3C,yCAAyC;QAClC,eAAe,EAAE,MAAM,CAAM;QACpC,6CAA6C;QACtC,IAAI,EAAE,MAAM,CAAM;QACzB,+CAA+C;QACxC,IAAI,EAAE,OAAO,CAAS;QAC7B,mDAAmD;QAC5C,GAAG,EAAE,OAAO,CAAS;QAC5B,8EAA8E;QACvE,KAAK,EAAE,MAAM,EAAE,CAAM;QAC5B,6CAA6C;QACtC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;QACzC,+CAA+C;QACxC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAQ;QAC3C,8EAA8E;QACvE,OAAO,EAAE,MAAM,CAAM;QAC5B,kDAAkD;QAC3C,IAAI,EAAE,QAAQ,EAAE,CAAM;QAC7B,qDAAqD;QAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;QACnC,kEAAkE;QAC3D,OAAO,EAAE,OAAO,CAAS;QAChC,mFAAmF;QAC5E,WAAW,EAAE,OAAO,CAAS;QACpC,qEAAqE;QAC9D,UAAU,EAAE,MAAM,CAAgC;QACzD,qDAAqD;QAC9C,UAAU,EAAE,MAAM,CAAoC;QAC7D,sDAAsD;QAC/C,aAAa,EAAE,MAAM,CAA0C;QACtE,8DAA8D;QACvD,qBAAqB,EAAE,OAAO,CAAS;QAC9C,yDAAyD;QAClD,UAAU,EAAE,OAAO,CAAS;QACnC,wCAAwC;QACjC,OAAO,EAAE,MAAM,CAAK;QAC3B,gEAAgE;QACzD,iBAAiB,EAAE,OAAO,CAAS;QAC1C,oDAAoD;QAC7C,MAAM,EAAE,OAAO,CAAS;QAC/B,4BAA4B;QACrB,GAAG,EAAE,MAAM,CAAK;QACvB,mEAAmE;QAC5D,oBAAoB,EAAE,OAAO,CAAS;QAC7C,6DAA6D;QACtD,SAAS,EAAE,OAAO,CAAS;QAClC,0CAA0C;QACnC,MAAM,EAAE,MAAM,CAAK;QAC1B,gEAAgE;QACzD,iBAAiB,EAAE,OAAO,CAAS;QAC1C,0DAA0D;QACnD,MAAM,EAAE,OAAO,CAAS;QAC/B,uCAAuC;QAChC,GAAG,EAAE,MAAM,CAAK;QACvB,+EAA+E;QACxE,+BAA+B,EAAE,OAAO,CAAS;QACxD,yEAAyE;QAClE,SAAS,EAAE,OAAO,CAAS;QAClC,wEAAwE;QACjE,MAAM,EAAE,MAAM,CAAK;QAC1B,iEAAiE;QAC1D,sBAAsB,EAAE,OAAO,CAAS;QAC/C,2DAA2D;QACpD,WAAW,EAAE,OAAO,CAAS;QACpC,gEAAgE;QACzD,WAAW,EAAE,MAAM,CAAK;QAC/B,6FAA6F;QACtF,QAAQ,EAAE,MAAM,CAAK;QAC5B,uEAAuE;QAChE,KAAK,EAAE,MAAM,CAAK;QACzB,qEAAqE;QAC9D,GAAG,EAAE,MAAM,CAAK;QACvB,yDAAyD;QAClD,OAAO,EAAE,MAAM,CAAK;QAG3B;;WAEG;QACI,gBAAgB,IAAI,IAAI;QAK/B;;WAEG;QACI,YAAY,IAAI,IAAI;QAK3B;;WAEG;QACI,eAAe,IAAI,IAAI;QAK9B;;WAEG;QACI,YAAY,IAAI,IAAI;QAK3B;;WAEG;QACI,0BAA0B,IAAI,IAAI;QAQzC;;WAEG;QACI,iBAAiB,IAAI,IAAI;QAOhC;;;WAGG;QACI,eAAe,EAAE,MAAM,CAAK;QAEnC;;;WAGG;QACI,SAAS,EAAE,MAAM,CAAK;QAE7B;;;WAGG;QACI,cAAc,EAAE,MAAM,CAAK;QAElC;;;WAGG;QACI,cAAc,EAAE,MAAM,CAAK;QAElC;;;WAGG;QACI,iBAAiB,EAAE,MAAM,CAAK;QAGrC;;WAEG;QACI,WAAW,EAAE,MAAM,CAAK;QAE/B;;;WAGG;QACI,SAAS,EAAE,MAAM,CAAK;QAE7B;;;WAGG;QACI,WAAW,EAAE,MAAM,CAAK;QAE/B;;WAEG;QACI,MAAM,EAAE,QAAQ,EAAE,CAAM;QAE/B;;WAEG;QACI,QAAQ,EAAE,QAAQ,EAAE,CAAM;KAClC;;;ICzMD,OAAO,EAAE,QAAQ,EAAE,sBAAyB;IAC5C,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAChD,OAAO,EAAE,UAAU,EAAE,wBAAqB;IAC1C,OAAO,EAAE,QAAQ,EAAE,sBAAmB;IAEtC;;;OAGG;IACH,MAAM,OAAO,SAAU,YAAW,UAAU;QAC1C;;WAEG;QACI,kBAAkB,EAAE,MAAM,EAAE,CAAM;QAEzC;;WAEG;QACI,iBAAiB,EAAE,MAAM,EAAE,CAAM;QAExC;;WAEG;QACI,iBAAiB,EAAE,MAAM,EAAE,CAAM;QAExC;;WAEG;QACI,gBAAgB,EAAE,MAAM,EAAE,CAAM;QAEvC;;WAEG;QACI,KAAK,EAAE,UAAU,EAAE,CAAM;QAEhC;;WAEG;QACI,KAAK,EAAE,MAAM,EAAE,CAAM;QAE5B;;WAEG;QACI,IAAI,EAAE,QAAQ,EAAE,CAAM;QAE7B;;WAEG;QACI,IAAI,EAAE,MAAM,CAAM;QAEzB;;WAEG;QACI,IAAI,EAAE,OAAO,CAAQ;QAE5B;;WAEG;QACI,MAAM,EAAE,MAAM,CAAM;QAE3B;;WAEG;QACI,IAAI,EAAE,MAAM,CAAK;QAExB;;WAEG;QACI,OAAO,EAAE,OAAO,CAAQ;QAE/B;;WAEG;QACI,KAAK,EAAE,MAAM,CAAK;QACzB;;WAEG;QACI,GAAG,EAAE,MAAM,CAAK;QAEvB;;;WAGG;QACI,eAAe,EAAE,MAAM,CAAK;QAEnC;;;WAGG;QACI,SAAS,EAAE,MAAM,CAAK;QAE7B;;;WAGG;QACI,cAAc,EAAE,MAAM,CAAK;QAElC;;;WAGG;QACI,cAAc,EAAE,MAAM,CAAK;QAElC;;;WAGG;QACI,iBAAiB,EAAE,MAAM,CAAK;QAErC;;WAEG;QACI,WAAW,EAAE,MAAM,CAAK;QAE/B;;;WAGG;QACI,SAAS,EAAE,MAAM,CAAK;QAE7B;;;WAGG;QACI,WAAW,EAAE,MAAM,CAAK;QAE/B;;WAEG;QACI,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;QAEhC,QAAQ,EAAE,SAAS,EAAE,CAAM;QAElC;;;WAGG;QACI,IAAI,IAAI,SAAS;QAOjB,MAAM,EAAE,QAAQ,EAAE,CAAM;QAE/B;;WAEG;QACI,QAAQ,EAAE,QAAQ,EAAE,CAAM;KAClC;;;ICtJD;;OAEG;IACH,MAAM,WAAW,SAAS;QACxB,qFAAqF;QACrF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B;;;ICND,OAAO,EAAE,QAAQ,EAAE,sBAA4B;IAI/C;;;;;;OAMG;IACH,MAAM,UAAU,qBAAqB,CAAC,OAAO,QAAQ,GAAG,MAAM,CA2B7D;;;ICtCD,OAAO,EAAE,SAAS,EAAE,uBAA0B;IAC9C,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAChD,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAClD,OAAO,EAAE,QAAQ,EAAE,sBAAyB;IAE5C,OAAO,EAAE,YAAY,EAAE,0BAA6B;IACpD,OAAO,EAAE,SAAS,EAAE,wBAA2B;IAiD/C;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;QACvD,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;oBAE9B,QAAQ,CAAC,EAAE,GAAG;QAI1B;;;;;WAKG;QACI,OAAO,CAAC,OAAO,WAAW,GAAG,IAAI;QAIxC;;;;WAIG;QACI,YAAY,CAAC,OAAO,SAAS,GAAG,IAAI;QAU3C;;;;WAIG;QACI,aAAa,CAAC,OAAO,SAAS,GAAG,IAAI;QAK5C,+CAA+C;QACxC,WAAW,CAAC,QAAQ,SAAS,EAAE,OAAO,UAAU,GAAG,IAAI;QAE9D;;;;;WAKG;QACI,YAAY,CAAC,QAAQ,SAAS,EAAE,MAAM,UAAU,GAAG,IAAI;QAoF9D;;;;WAIG;QACI,QAAQ,CAAC,OAAO,WAAW,GAAG,IAAI;QAgEzC;;;;;WAKG;QACI,MAAM,CAAC,QAAQ,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI;QAKpD;;;;WAIG;QACI,KAAK,CAAC,UAAU,QAAQ,GAAG,IAAI;KA+BvC;;;ICtTD;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,cAAc,wCACc,CAAC;;;ICV1C;;OAEG;IACH,MAAM,WAAW,cAAc;QAC7B;;;;WAIG;QACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B;;WAEG;QACH,OAAO,IAAI,IAAI,CAAC;QAEhB;;WAEG;QACH,YAAY,IAAI,IAAI,CAAC;QAErB;;WAEG;QACH,cAAc,IAAI,IAAI,CAAC;QAEvB;;;;;WAKG;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAEjC;;WAEG;QACH,eAAe,IAAI,IAAI,CAAC;QAExB;;WAEG;QACH,iBAAiB,IAAI,MAAM,CAAC;QAE5B;;WAEG;QACH,SAAS,IAAI,IAAI,CAAC;QAEjB,uFAAuF;QACxF,QAAQ,CAAC,MAAM,EAAE;YACf,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;SAC9B,CAAC;QACF,2DAA2D;QAC3D,OAAO,IAAI,IAAI,CAAC;QAChB,+BAA+B;QAC/B,MAAM,IAAI,IAAI,CAAC;QAEf,qEAAqE;QACrE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QACjC,4FAA4F;QAC5F,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACnD,sEAAsE;QACtE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAClC,yGAAyG;QACzG,SAAS,IAAI,IAAI,CAAC;QAClB,sCAAsC;QACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;KACpC;;;ICnED;;;OAGG;IACH,MAAM,WAAW,yBAAyB;QACxC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAChC,+CAA+C;QAC/C,OAAO,EAAE,OAAO,CAAC;QACjB,8EAA8E;QAC9E,UAAU,EAAE,MAAM,CAAC;QACnB,qDAAqD;QACrD,cAAc,EAAE,MAAM,CAAC;QACvB,sDAAsD;QACtD,YAAY,EAAE,OAAO,CAAC;QACtB,+CAA+C;QAC/C,aAAa,EAAE,OAAO,CAAC;QACvB,qCAAqC;QACrC,uBAAuB,EAAE,OAAO,CAAC;QACjC,mDAAmD;QACnD,SAAS,EAAE,OAAO,CAAC;QACnB,mDAAmD;QACnD,SAAS,EAAE,OAAO,CAAC;QACnB,2BAA2B;QAC3B,cAAc,EAAE,OAAO,CAAC;QACxB,oDAAoD;QACpD,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IAED,+DAA+D;IAC/D,MAAM,UAAU,qCAAqC,IAAI,yBAAyB,CAuBjF;;;ICpDD;;OAEG;IACH,MAAM,OAAO,UAAU;QAIF,SAAS,UAAU;QAHtC,oCAAoC;QACpC,GAAG,EAAE,MAAM,CAAK;oBAEG,SAAS,UAAU;QAEtC,qCAAqC;QACrC,WAAW,CAAC,MAAK,MAAiB;QAelC;;;WAGG;QACH,UAAU,CAAC,MAAK,MAAiB,GAAG,MAAM;QAO1C,wEAAwE;QACxE,UAAU,CAAC,KAAK,MAAM,GAAG,MAAM;KAMhC;IAED;;;OAGG;IACH,MAAM,OAAO,WAAW;QACtB,OAAO,EAAE,UAAU,CAAC;QAEpB,sCAAsC;QACtC,OAAO,CAAC,SAAS,CAAkC;oBAEvC,UAAU,UAAU;QAOhC,SAAS,CAAC,GAAG,MAAM,GAAG,MAAM;QAM5B,aAAa;QACb,OAAO,CAAC,YAAY;QAmBpB,qBAAqB;QACrB,IAAI,GAAG,IAAI,MAAM,CAEhB;QAED,oBAAoB;QACpB,IAAI,GAAG,CAAC,GAAG,MAAM,EAEhB;QAED,+DAA+D;QAC/D,WAAW,CAAC,MAAK,MAAiB,GAAG,MAAM;KAI5C;;;ICvGD,OAAO,EAAE,cAAc,EAAE,4BAA+B;IAExD,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAClD,OAAO,EAAE,SAAS,EAAE,uBAAoB;IACxC,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAChD,OAAO,EAAE,QAAQ,EAAE,sBAAmB;IACtC,OAAO,EACL,yBAAyB,EAE1B,uCAA0C;IAK3C,OAAO,EAAE,WAAW,EAAE,uBAA0B;IAUhD;;;OAGG;IACH,MAAM,WAAW,wBAAwB;QACvC,4CAA4C;QAC5C,wBAAwB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC9D,mHAAmH;QACnH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,yHAAyH;QACzH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;;;;;;;WASG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB;IAED;;;OAGG;IACH,MAAM,OAAO,aAAa;QACxB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAQ;QAC7C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;QAGjD,OAAO,CAAC,UAAU,CAAkC;QACpD,mGAAmG;QAC5F,UAAU,EAAE,SAAS,EAAE,CAAM;QAEpC,mCAAmC;QAC5B,aAAa,EAAE,SAAS,GAAG,IAAI,CAAQ;QAE9C,SAAS,CAAC,SAAS,EAAE,UAAU,CAAsB;QAErD,sEAAsE;QAC/D,MAAM,EAAE,QAAQ,EAAE,CAAM;QAC/B,wEAAwE;QACjE,QAAQ,EAAE,QAAQ,EAAE,CAAM;QAEjC,gDAAgD;QACzC,QAAQ,EAAE,MAAM,CAAM;QAG7B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAM;QAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAM;QAC/B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;QAC5C,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAQ;QAG9C,OAAO,CAAC,uBAAuB,CAAsB;QACrD,OAAO,CAAC,eAAe,CAAqB;QAC5C,OAAO,CAAC,mBAAmB,CAAqB;QAChD,OAAO,CAAC,uBAAuB,CAAqB;QACpD,OAAO,CAAC,kBAAkB,CAAsB;QAChD,OAAO,CAAC,iBAAiB,CAAsB;QAC/C,OAAO,CAAC,iBAAiB,CAAsB;QAC/C,OAAO,CAAC,cAAc,CAAsB;QAC5C,OAAO,CAAC,cAAc,CAAsB;QAC5C,OAAO,CAAC,cAAc,CAAsB;QAG5C,OAAO,CAAC,wBAAwB,CAEY;QAE5C;;;;;WAKG;QACH,SAAS,CAAC,KAAK,EAAE,OAAO,CAAS;QAEjC;;;WAGG;QACH,SAAS,CAAC,SAAS,EAAE,MAAM,CAAkB;QAC7C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAkB;QAE9C;;;;WAIG;QACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAQ;QAGxC,OAAO,CAAC,YAAY,CAAkC;oBAE1C,KAAK,CAAC,EAAE,wBAAwB;QAsG5C;;;WAGG;QACH,SAAS,CAAC,YAAY,IAAI,IAAI;QA+B9B;;;;;WAKG;QACI,aAAa,CAAC,GAAG,SAAS,GAAG,EAAE,GAAG,GAAG;QA2G5C;;WAEG;QAEH,OAAO,CAAC,KAAK;QAKb;;;;;;;;WAQG;QACH,SAAS,CAAC,OAAO,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC;QAczC;;WAEG;QACH,OAAO,CAAC,OAAO;QAUf;;WAEG;QACH,OAAO,CAAC,OAAO;QAcf;;;;WAIG;QACH,OAAO,CAAC,QAAQ;QAYhB;;;;;WAKG;QACH,OAAO,CAAC,YAAY;QAgBpB;;;;WAIG;QACH,OAAO,CAAC,SAAS;QAejB;;;;;WAKG;QACH,OAAO,CAAC,QAAQ;QAgBhB;;;;;WAKG;QACH,OAAO,CAAC,OAAO;QAiBf;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAuBnB;;;;;;;WAOG;QACH,OAAO,CAAC,cAAc;QAWtB;;;;WAIG;QACH,OAAO,CAAC,iBAAiB;QAgBzB;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QAKxB;;;;;;WAMG;QACH,OAAO,CAAC,eAAe;QAKvB;;;;WAIG;QACH,OAAO,CAAC,eAAe;QAKvB;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;QAKtB;;;;;;;;WAQG;QACH,OAAO,CAAC,UAAU;QA8ClB;;;;;;;WAOG;QACH,OAAO,CAAC,iBAAiB;QAwDzB;;;;WAIG;QACH,OAAO,CAAC,UAAU;QAKlB;;WAEG;QACH,OAAO,CAAC,gBAAgB;QASxB;;;;WAIG;QACH,OAAO,CAAC,kBAAkB;QAU1B;;;;;WAKG;QACH,OAAO,CAAC,iBAAiB;QAgBzB;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QASxB;;;;;;WAMG;QACH,OAAO,CAAC,mBAAmB;QAkB3B;;;;;;WAMG;QACH,OAAO,CAAC,kBAAkB;QAc1B;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QAkBxB;;;;;WAKG;QACH,OAAO,CAAC,qBAAqB;QAgB7B;;;;;;WAMG;QACH,OAAO,CAAC,uBAAuB;QAkB/B;;;;;;WAMG;QACH,OAAO,CAAC,kBAAkB;QAoB1B;;;;WAIG;QACH,OAAO,CAAC,oBAAoB;QAS5B;;;;WAIG;QACH,OAAO,CAAC,mBAAmB;QAS3B;;;;WAIG;QACH,OAAO,CAAC,oBAAoB;QAS5B;;;;WAIG;QACH,OAAO,CAAC,kBAAkB;QAU1B;;;;;WAKG;QACH,OAAO,CAAC,oBAAoB;QAe5B;;;;;;WAMG;QACH,OAAO,CAAC,sBAAsB;QA0B9B;;;;;;WAMG;QACH,OAAO,CAAC,oBAAoB;QAwB5B;;;;;;;;;WASG;QACH,OAAO,CAAC,KAAK;QAYb;;;;;WAKG;QACH,OAAO,CAAC,kBAAkB;QAI1B;;;;;WAKG;QACH,OAAO,CAAC,UAAU;QAsBlB;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAsBtB;;;;;WAKG;QACH,OAAO,CAAC,kBAAkB;QAyB1B;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAIrB;;;;;WAKG;QACH,OAAO,CAAC,YAAY;QAIpB;;;;;WAKG;QACH,OAAO,CAAC,YAAY;QAIpB;;;;;WAKG;QACH,OAAO,CAAC,SAAS;QAIjB;;;;;WAKG;QACH,OAAO,CAAC,SAAS;QAIjB;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAItB;;;WAGG;QACH,OAAO,CAAC,uBAAuB;QAQ/B;;;;WAIG;QACH,OAAO,CAAC,iBAAiB;QAUzB;;;;;WAKG;QACH,OAAO,CAAC,mBAAmB;QAU3B;;WAEG;QACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,KAAK,GAAG,MAAM;QAO/C;;WAEG;QACH,OAAO,CAAC,sBAAsB;QAa9B;;WAEG;QACH,OAAO,CAAC,gBAAgB;QASxB;;WAEG;QACH,OAAO,CAAC,cAAc;QAItB;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAInB;;;;;;WAMG;QACH,OAAO,CAAC,SAAS;QAMjB;;WAEG;QACI,eAAe,EAAE,MAAM,CAAK;QAEnC;;WAEG;QACH,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAK;QAE3C;;WAEG;QACH,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAK;QAE1C;;WAEG;QACI,SAAS,EAAE,MAAM,CAAK;QAE7B;;WAEG;QACH,SAAS,CAAC,cAAc,EAAE,MAAM,CAAK;QAErC;;WAEG;QACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;QAEpC;;WAEG;QACH,SAAS,CAAC,cAAc,EAAE,MAAM,CAAK;QAErC;;WAEG;QACH,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAK;QAE1C;;WAEG;QACH,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAK;QAEzC;;WAEG;QACH,SAAS,CAAC,cAAc,EAAE,MAAM,CAAK;QAErC;;WAEG;QACH,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAK;QAE1C;;WAEG;QACH,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAK;QAEzC;;WAEG;QACH,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;QAExC;;WAEG;QACH,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAK;QAE7C;;WAEG;QACH,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;QAE5C;;WAEG;QACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;QAElD;;WAEG;QACH,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;QAE9C;;WAEG;QACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;QAE/C;;;;WAIG;QACH,OAAO,CAAC,OAAO;QA2Bf;;;;WAIG;QACH,OAAO,CAAC,MAAM;QA2Bd;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAyBnB;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAyBnB,OAAO,CAAC,SAAS;QAiDjB;;;;WAIG;QACH,SAAS,CAAC,SAAS,CAAC,OAAO,QAAQ,GAAG,IAAI;QAS1C,SAAS,CAAC,WAAW,CAAC,SAAS,QAAQ,GAAG,IAAI;QAO9C;;WAEG;QACH,OAAO,CAAC,mBAAmB;QAI3B;;WAEG;QACH,OAAO,CAAC,mBAAmB;QAI3B;;WAEG;QACH,OAAO,CAAC,wBAAwB;QAIhC;;WAEG;QACH,OAAO,CAAC,wBAAwB;QAIhC;;WAEG;QACH,OAAO,CAAC,uBAAuB;QAI/B;;WAEG;QACH,OAAO,CAAC,uBAAuB;QAI/B;;WAEG;QACH,OAAO,CAAC,oBAAoB;QAI5B;;WAEG;QACH,OAAO,CAAC,cAAc;QAItB;;WAEG;QACH,OAAO,CAAC,yBAAyB;QAIjC;;WAEG;QACH,OAAO,CAAC,mBAAmB;QAI3B;;WAEG;QACH,OAAO,CAAC,wBAAwB;QAIhC;;WAEG;QACH,OAAO,CAAC,kBAAkB;QAI1B;;WAEG;QACH,OAAO,CAAC,iBAAiB;QAIzB;;WAEG;QACH,OAAO,CAAC,sBAAsB;QAG9B;;WAEG;QACH,OAAO,CAAC,qBAAqB;QAI7B;;WAEG;QACH,OAAO,CAAC,eAAe;QAOvB;;WAEG;QACH,OAAO,CAAC,oBAAoB;QAO5B;;WAEG;QACH,OAAO,CAAC,mBAAmB;QAO3B,OAAO,CAAC,OAAO,CAAa;QAC5B,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAuB;QAEjE;;;;WAIG;QACH,OAAO,CAAC,aAAa;QAOrB;;;WAGG;QACH,OAAO,CAAC,SAAS;QAIjB;;;;;;WAMG;QACH,OAAO,CAAC,KAAK;QAeb,OAAO,CAAC,QAAQ;KAMjB;;;ICl2DD,OAAO,EAAE,YAAY,EAAE,0BAAuB;IAK9C,OAAO,EAAE,cAAc,EAAE,4BAA+B;IACxD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,2BAAwB;IAC1E,OAAO,EAAE,SAAS,EAAE,wBAA2B;IAE/C,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;QACtE,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,SAAS,CAAC;QACnB,MAAM,CAAC,EAAE,SAAS,CAAC;KACpB;IAED,MAAM,OAAO,WAAY,SAAQ,aAAa;QACrC,IAAI,EAAE,MAAM,CAAK;QACjB,IAAI,EAAE,OAAO,CAAQ;QACrB,WAAW,EAAE,MAAM,CAAK;QACxB,QAAQ,EAAE,YAAY,CAA2B;QAGjD,MAAM,EAAE,SAAS,GAAG,IAAI,CAC0B;QAElD,MAAM,EAAE,SAAS,GAAG,IAAI,CAC0B;QAEzD,OAAO,CAAC,QAAQ,CAAkB;oBAEtB,KAAK,CAAC,EAAE,sBAAsB;QAc1C;;WAEG;QACI,GAAG,CAAC,MAAM,cAAc,GAAG,IAAI;QAyCtC,OAAO,CAAC,QAAQ;QA4EhB;;;;;;WAMG;QACH,OAAO,CAAC,OAAO;QA8Gf;;;;;;;WAOG;QACH,OAAO,CAAC,WAAW;QAmCnB;;;;;;WAMG;QACH,OAAO,CAAC,YAAY;QAuBpB;;;;;;WAMG;QACH,OAAO,CAAC,aAAa;QAuBrB;;;;;;WAMG;QACH,OAAO,CAAC,WAAW;QAmBnB;;;;;;WAMG;QACH,OAAO,CAAC,YAAY;KAgBrB;;;IClbD,OAAO,EAAE,WAAW,EAAE,yBAAsB;IAC5C,OAAO,EAAE,SAAS,EAAE,uBAAoB;IACxC,OAAO,EAAE,UAAU,EAAE,wBAAqB;IAE1C;;OAEG;IACH,MAAM,CAAC,QAAQ,OAAO,YAAY;QAChC;;;;WAIG;iBACa,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;QAEjD;;;;WAIG;iBACa,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;QAEpD;;;;WAIG;iBACa,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;QAErD;;;;;WAKG;iBACa,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;QAEvE;;;;;WAKG;iBACa,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;QAExE;;;;WAIG;iBACa,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;QAElD;;;;;WAKG;iBACa,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;KAC7D;;;IC3DD,OAAO,EAAE,YAAY,EAAE,0BAA6B;IACpD,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAClD,OAAO,EAAE,SAAS,EAAE,uBAA0B;IAC9C,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAEhD;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY;QAC/C,SAAS,CAAC,WAAW,YAAY,EAAE;oBAAzB,WAAW,YAAY,EAAE;QAI/C,QAAQ,CAAC,OAAO,WAAW,GAAG,IAAI;QAIlC,aAAa,CAAC,OAAO,SAAS,GAAG,IAAI;QAIrC,YAAY,CAAC,OAAO,SAAS,GAAG,IAAI;QAIpC,OAAO,CAAC,OAAO,WAAW,GAAG,IAAI;QAIjC,WAAW,CAAC,OAAO,SAAS,EAAE,QAAQ,UAAU,GAAG,IAAI;QAIvD,YAAY,CAAC,OAAO,SAAS,EAAE,QAAQ,UAAU,GAAG,IAAI;QAIxD,MAAM,CAAC,OAAO,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI;KAG7C;;;ICzCD,OAAO,EAAE,YAAY,EAAE,0BAA6B;IACpD,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAClD,OAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;IACvD,OAAO,EAAE,WAAW,EAAqB,MAAM,IAAI,CAAC;IAEpD,OAAO,EAAE,SAAS,EAAE,uBAA0B;IAC9C,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAuBhD;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;QACnD,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;QAC5C,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAQ;oBAElC,QAAQ,CAAC,EAAE,GAAG;QAInB,OAAO,CAAC,OAAO,WAAW,GAAG,IAAI;QAYjC,YAAY,IAAI,IAAI;QACpB,aAAa,IAAI,IAAI;QACrB,QAAQ,IAAI,IAAI;QAGhB,WAAW;QACX,YAAY,CAAC,OAAO,SAAS,EAAE,QAAQ,UAAU;QAmBjD,MAAM,CAAC,OAAO,SAAS,EAAE,MAAM,MAAM;KAkB7C;;;IChGD,OAAO,EAAE,YAAY,EAAE,0BAA6B;IAEpD;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;oBACzC,QAAQ,CAAC,EAAE,GAAG;QAG1B,QAAQ,IAAI,IAAI;QAChB,aAAa,IAAI,IAAI;QACrB,YAAY,IAAI,IAAI;QACpB,OAAO,IAAI,IAAI;QACf,YAAY,IAAI,IAAI;QACpB,WAAW,IAAI,IAAI;QACnB,MAAM,IAAI,IAAI;KACf;;;ICjBD,OAAO,EAAE,YAAY,EAAE,0BAA6B;IACpD,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAClD,OAAO,EAAE,WAAW,EAAqB,MAAM,IAAI,CAAC;IAEpD,OAAO,EAAE,SAAS,EAAE,uBAA0B;IAC9C,OAAO,EAAE,UAAU,EAAE,wBAA2B;IAEhD;;;OAGG;IACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;oBACxC,QAAQ,CAAC,EAAE,GAAG;QAI1B,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;QAE1C,OAAO,CAAC,KAAK,CAAiB;QACvB,OAAO,CAAC,OAAO,WAAW,GAAG,IAAI;QAUjC,YAAY,IAAI,IAAI;QACpB,aAAa,IAAI,IAAI;QACrB,QAAQ,IAAI,IAAI;QAIhB,WAAW;QAEX,YAAY,CAAC,OAAO,SAAS,EAAE,QAAQ,UAAU;QAuBjD,MAAM,CAAC,OAAO,SAAS,EAAE,MAAM,MAAM;KAsB7C;;;IClFD,OAAO,EAAE,YAAY,EAAE,0BAA6B;IACpD,OAAO,EAAE,WAAW,EAAE,yBAA4B;IAIlD,OAAO,EAAE,QAAQ,EAAE,sBAAyB;IAG5C;;;;OAIG;IACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;QACvD,OAAO,CAAC,aAAa,CAAiB;oBAE1B,OAAO,CAAC,EAAE,GAAG;QASlB,OAAO,IAAI,IAAI;QACf,YAAY,IAAI,IAAI;QACpB,aAAa,IAAI,IAAI;QACrB,WAAW,IAAI,IAAI;QACnB,YAAY,IAAI,IAAI;QACpB,MAAM,IAAI,IAAI;QAErB,OAAO,CAAC,MAAM,CAA0B;QAExC;;;;WAIG;QACI,QAAQ,CAAC,OAAO,WAAW,GAAG,IAAI;QA8GzC;;;;WAIG;QACI,KAAK,CAAC,UAAU,QAAQ,GAAG,IAAI;KA+BvC;;;ICzLD,OAAO,mBAAmB,qCAAuC;IACjE,OAAO,WAAW,6BAA+B;IACjD,OAAO,aAAa,+BAAiC;IACrD,OAAO,YAAY,8BAAgC;IACnD,OAAO,eAAe,iCAAmC;IACzD,OAAO,eAAe,iCAAmC;IAEzD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,8BAAgC;IAChC,iCAAmC;IACnC,+BAAiC;IACjC,kCAAoC;IACpC,gCAAkC;IAClC,iCAAmC;IACnC,oCAAsC;IACtC,gCAAkC;IAClC,+CAAiD;IACjD,8BAAgC"} \ No newline at end of file diff --git a/packages/core/lib/as-pect.core.amd.js b/packages/core/lib/as-pect.core.amd.js index 4bd37e22..b8e36ce4 100644 --- a/packages/core/lib/as-pect.core.amd.js +++ b/packages/core/lib/as-pect.core.amd.js @@ -292,6 +292,11 @@ define("test/TestResult", ["require", "exports", "math/mean", "math/round", "mat * the test's exection. */ this.incrementCount = 0; + /** + * If the test did not error, this is the number of block increments that occurred during + * the test's exection. + */ + this.reallocationCount = 0; /** * This is the number of allocations currently on the heap when the `TestResult` execution starts. */ @@ -452,6 +457,11 @@ define("test/TestGroup", ["require", "exports"], function (require, exports) { * the group's exection. */ this.incrementCount = 0; + /** + * If the test group did not error, this is the number of block reallocations that occurred during + * the group's exection. + */ + this.reallocationCount = 0; /** * This is the number of allocations currently on the heap when the `TestGroup` execution starts. */ @@ -1035,6 +1045,18 @@ define("test/TestCollector", ["require", "exports", "util/LogValue", "util/Actua * This is the current number of net decrements that occurred during `TestResult` execution. */ this.testDecrementCount = 0; + /** + * This is the current number of net reallocations during the `TestContext` execution. + */ + this.reallocationCount = 0; + /** + * This is the current number of net reallocations during the `TestGroup` execution. + */ + this.groupReallocationCount = 0; + /** + * This is the current number of net reallocations during the `TestResult` execution. + */ + this.testReallocationCount = 0; /** * This map is responsible for keeping track of which blocks are currently allocated by their id. */ @@ -1192,26 +1214,30 @@ define("test/TestCollector", ["require", "exports", "util/LogValue", "util/Actua getRTraceGroupDecrements: this.getRTraceGroupDecrements.bind(this), getRTraceGroupFrees: this.getRTraceGroupFrees.bind(this), getRTraceGroupIncrements: this.getRTraceGroupIncrements.bind(this), + getRTraceGroupReallocs: this.getRTraceGroupReallocs.bind(this), getRTraceIncrements: this.getRTraceIncrements.bind(this), + getRTraceReallocs: this.getRTraceReallocs.bind(this), getRTraceTestAllocations: this.getRTraceTestAllocations.bind(this), getRTraceTestBlocks: this.getRTraceTestBlocks.bind(this), getRTraceTestDecrements: this.getRTraceTestDecrements.bind(this), getRTraceTestFrees: this.getRTraceTestFrees.bind(this), getRTraceTestIncrements: this.getRTraceTestIncrements.bind(this), + getRTraceTestReallocs: this.getRTraceTestReallocs.bind(this), getStackTrace: this.getStackTrace.bind(this), logArray: this.logArray.bind(this), logBool: this.logBool.bind(this), + logFunction: this.logFunction.bind(this), logLong: this.logLong.bind(this), logNull: this.logNull.bind(this), logReference: this.logReference.bind(this), logString: this.logString.bind(this), logValue: this.logValue.bind(this), - logFunction: this.logFunction.bind(this), maxSamples: this.maxSamples.bind(this), maxTestRunTime: this.maxTestRunTime.bind(this), performanceEnabled: this.performanceEnabled.bind(this), reportActualArray: this.reportActualArray.bind(this), reportActualBool: this.reportActualBool.bind(this), + reportActualFunction: this.reportActualFunction.bind(this), reportActualLong: this.reportActualLong.bind(this), reportActualNull: this.reportActualNull.bind(this), reportActualReference: this.reportActualReference.bind(this), @@ -1228,14 +1254,13 @@ define("test/TestCollector", ["require", "exports", "util/LogValue", "util/Actua reportExpectedBool: this.reportExpectedBool.bind(this), reportExpectedFalsy: this.reportExpectedFalsy.bind(this), reportExpectedFinite: this.reportExpectedFinite.bind(this), + reportExpectedFunction: this.reportExpectedFunction.bind(this), reportExpectedLong: this.reportExpectedLong.bind(this), reportExpectedNull: this.reportExpectedNull.bind(this), reportExpectedReference: this.reportExpectedReference.bind(this), reportExpectedString: this.reportExpectedString.bind(this), reportExpectedTruthy: this.reportExpectedTruthy.bind(this), reportExpectedValue: this.reportExpectedValue.bind(this), - reportExpectedFunction: this.reportExpectedFunction.bind(this), - reportActualFunction: this.reportActualFunction.bind(this), reportInvalidExpectCall: this.reportInvalidExpectCall.bind(this), reportMax: this.reportMax.bind(this), reportMedian: this.reportMedian.bind(this), @@ -1257,6 +1282,7 @@ define("test/TestCollector", ["require", "exports", "util/LogValue", "util/Actua onfree: this.onfree.bind(this), onincrement: this.onincrement.bind(this), ondecrement: this.ondecrement.bind(this), + onrealloc: this.onrealloc.bind(this), }; /** add an env object */ result.env = result.env || {}; @@ -2274,6 +2300,54 @@ define("test/TestCollector", ["require", "exports", "util/LogValue", "util/Actua this.blocks.set(block, count - 1); } }; + TestCollector.prototype.onrealloc = function (oldBlock, newBlock) { + this.reallocationCount += 1; + this.groupReallocationCount += 1; + this.testReallocationCount += 1; + /** + * This is impossible to test, but follows exactly from the AssemblyScript example located + * at https://github.com/AssemblyScript/assemblyscript/blob/master/lib/rtrace/index.js. + * + * Please see this file for further information about how rtrace errors are reported. + */ + /* istanbul ignore next */ + if (!this.blocks.has(oldBlock)) { + /* istanbul ignore next */ + this.pushError({ + message: "An orphaned realloc has occurred at old block: " + oldBlock.toString(), + stackTrace: this.getLogStackTrace(), + type: "Orphaned Reallocation Error (old)", + }); + } + else { + /* istanbul ignore next */ + if (!this.blocks.has(newBlock)) { + /* istanbul ignore next */ + this.pushError({ + message: "An orphaned realloc has occurred at new block: " + newBlock.toString(), + stackTrace: this.getLogStackTrace(), + type: "Orphaned Reallocation Error (new)", + }); + } + else { + /* istanbul ignore next */ + var newRc = this.blocks.get(newBlock); + /* istanbul ignore next */ + if (newRc != 0) { + /* istanbul ignore next */ + this.pushError({ + message: "An invalid realloc error has occurred from " + oldBlock + " to " + newBlock + ".", + stackTrace: this.getLogStackTrace(), + type: "Invalid Reallocation Error", + }); + } + else { + var oldRc = this.blocks.get(oldBlock); + this.blocks.set(newBlock, oldRc); + } + } + } + }; /** * This method reports an error to the current logTarget and the `TestContext`. * @@ -2366,6 +2440,24 @@ define("test/TestCollector", ["require", "exports", "util/LogValue", "util/Actua TestCollector.prototype.getRTraceTestFrees = function () { return this.testFreeCount; }; + /** + * This linked method gets all the RTrace reallocations for the current TestContext. + */ + TestCollector.prototype.getRTraceReallocs = function () { + return this.reallocationCount; + }; + /** + * This linked method gets all the RTrace reallocations for the current TestGroup. + */ + TestCollector.prototype.getRTraceGroupReallocs = function () { + return this.groupReallocationCount; + }; + /** + * This linked method gets all the RTrace reallocations for the current TestResult. + */ + TestCollector.prototype.getRTraceTestReallocs = function () { + return this.testReallocationCount; + }; /** * This linked method gets all the current RTrace allocations and adds them to an array. */ @@ -2521,6 +2613,7 @@ define("test/TestContext", ["require", "exports", "reporter/VerboseReporter", "p this.groupFreeCount = 0; this.groupDecrementCount = 0; this.groupIncrementCount = 0; + this.groupReallocationCount = 0; group.rtraceStart = this.blocks.size; this.groupBlocks.clear(); } @@ -2561,6 +2654,7 @@ define("test/TestContext", ["require", "exports", "reporter/VerboseReporter", "p group.freeCount = this.groupFreeCount; group.decrementCount = this.groupDecrementCount; group.incrementCount = this.groupIncrementCount; + group.reallocationCount = this.groupReallocationCount; group.rtraceEnd = this.blocks.size; group.rtraceDelta = group.rtraceEnd - group.rtraceStart; } @@ -2587,6 +2681,7 @@ define("test/TestContext", ["require", "exports", "reporter/VerboseReporter", "p this.testFreeCount = 0; this.testDecrementCount = 0; this.testIncrementCount = 0; + this.testReallocationCount = 0; result.rtraceStart = this.blocks.size; this.testBlocks.clear(); } @@ -2656,11 +2751,12 @@ define("test/TestContext", ["require", "exports", "reporter/VerboseReporter", "p return; } if (this.rtraceEnabled) { - // calculate reference counts for the group - result.allocationCount = this.groupAllocationCount; - result.freeCount = this.groupFreeCount; - result.decrementCount = this.groupDecrementCount; - result.incrementCount = this.groupIncrementCount; + // calculate reference counts for the test + result.allocationCount = this.testAllocationCount; + result.freeCount = this.testFreeCount; + result.decrementCount = this.testDecrementCount; + result.incrementCount = this.testIncrementCount; + result.reallocationCount = this.testReallocationCount; result.rtraceEnd = this.blocks.size; result.rtraceDelta = result.rtraceEnd - result.rtraceStart; } @@ -3250,4 +3346,4 @@ define("index", ["require", "exports", "reporter/CombinationReporter", "reporter __export(IPerformanceConfiguration_2); __export(LogValue_3); }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtcGVjdC5jb3JlLmFtZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0L0lXYXJuaW5nLnRzIiwiLi4vc3JjL3V0aWwvSUxvZ1RhcmdldC50cyIsIi4uL3NyYy91dGlsL0xvZ1ZhbHVlLnRzIiwiLi4vc3JjL3V0aWwvQWN0dWFsVmFsdWUudHMiLCIuLi9zcmMvdGVzdC9QZXJmb3JtYW5jZUxpbWl0cy50cyIsIi4uL3NyYy9tYXRoL21lYW4udHMiLCIuLi9zcmMvbWF0aC9yb3VuZC50cyIsIi4uL3NyYy9tYXRoL21lZGlhbi50cyIsIi4uL3NyYy9tYXRoL3ZhcmlhbmNlLnRzIiwiLi4vc3JjL3Rlc3QvVGVzdFJlc3VsdC50cyIsIi4uL3NyYy90ZXN0L1Rlc3RHcm91cC50cyIsIi4uL3NyYy91dGlsL0lXcml0ZWFibGUudHMiLCIuLi9zcmMvcmVwb3J0ZXIvdXRpbC9jcmVhdGVSZWZlcmVuY2VTdHJpbmcudHMiLCIuLi9zcmMvcmVwb3J0ZXIvVmVyYm9zZVJlcG9ydGVyLnRzIiwiLi4vc3JjL3V0aWwvdGltZURpZmZlcmVuY2UudHMiLCIuLi9zcmMvdXRpbC9JQXNwZWN0RXhwb3J0cy50cyIsIi4uL3NyYy91dGlsL0lQZXJmb3JtYW5jZUNvbmZpZ3VyYXRpb24udHMiLCIuLi9zcmMvdXRpbC93YXNtVG9vbHMudHMiLCIuLi9zcmMvdGVzdC9UZXN0Q29sbGVjdG9yLnRzIiwiLi4vc3JjL3Rlc3QvVGVzdENvbnRleHQudHMiLCIuLi9zcmMvdGVzdC9UZXN0UmVwb3J0ZXIudHMiLCIuLi9zcmMvcmVwb3J0ZXIvQ29tYmluYXRpb25SZXBvcnRlci50cyIsIi4uL3NyYy9yZXBvcnRlci9DU1ZSZXBvcnRlci50cyIsIi4uL3NyYy9yZXBvcnRlci9FbXB0eVJlcG9ydGVyLnRzIiwiLi4vc3JjL3JlcG9ydGVyL0pTT05SZXBvcnRlci50cyIsIi4uL3NyYy9yZXBvcnRlci9TdW1tYXJ5UmVwb3J0ZXIudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwi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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtcGVjdC5jb3JlLmFtZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0L0lXYXJuaW5nLnRzIiwiLi4vc3JjL3V0aWwvSUxvZ1RhcmdldC50cyIsIi4uL3NyYy91dGlsL0xvZ1ZhbHVlLnRzIiwiLi4vc3JjL3V0aWwvQWN0dWFsVmFsdWUudHMiLCIuLi9zcmMvdGVzdC9QZXJmb3JtYW5jZUxpbWl0cy50cyIsIi4uL3NyYy9tYXRoL21lYW4udHMiLCIuLi9zcmMvbWF0aC9yb3VuZC50cyIsIi4uL3NyYy9tYXRoL21lZGlhbi50cyIsIi4uL3NyYy9tYXRoL3ZhcmlhbmNlLnRzIiwiLi4vc3JjL3Rlc3QvVGVzdFJlc3VsdC50cyIsIi4uL3NyYy90ZXN0L1Rlc3RHcm91cC50cyIsIi4uL3NyYy91dGlsL0lXcml0ZWFibGUudHMiLCIuLi9zcmMvcmVwb3J0ZXIvdXRpbC9jcmVhdGVSZWZlcmVuY2VTdHJpbmcudHMiLCIuLi9zcmMvcmVwb3J0ZXIvVmVyYm9zZVJlcG9ydGVyLnRzIiwiLi4vc3JjL3V0aWwvdGltZURpZmZlcmVuY2UudHMiLCIuLi9zcmMvdXRpbC9JQXNwZWN0RXhwb3J0cy50cyIsIi4uL3NyYy91dGlsL0lQZXJmb3JtYW5jZUNvbmZpZ3VyYXRpb24udHMiLCIuLi9zcmMvdXRpbC93YXNtVG9vbHMudHMiLCIuLi9zcmMvdGVzdC9UZXN0Q29sbGVjdG9yLnRzIiwiLi4vc3JjL3Rlc3QvVGVzdENvbnRleHQudHMiLCIuLi9zcmMvdGVzdC9UZXN0UmVwb3J0ZXIudHMiLCIuLi9zcmMvcmVwb3J0ZXIvQ29tYmluYXRpb25SZXBvcnRlci50cyIsIi4uL3NyYy9yZXBvcnRlci9DU1ZSZXBvcnRlci50cyIsIi4uL3NyYy9yZXBvcnRlci9FbXB0eVJlcG9ydGVyLnRzIiwiLi4vc3JjL3JlcG9ydGVyL0pTT05SZXBvcnRlci50cyIsIi4uL3NyYy9yZXBvcnRlci9TdW1tYXJ5UmVwb3J0ZXIudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwi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 \ No newline at end of file diff --git a/packages/core/lib/test/TestCollector.d.ts b/packages/core/lib/test/TestCollector.d.ts index ba070daa..c168ef32 100644 --- a/packages/core/lib/test/TestCollector.d.ts +++ b/packages/core/lib/test/TestCollector.d.ts @@ -522,6 +522,18 @@ export declare class TestCollector { * This is the current number of net decrements that occurred during `TestResult` execution. */ protected testDecrementCount: number; + /** + * This is the current number of net reallocations during the `TestContext` execution. + */ + protected reallocationCount: number; + /** + * This is the current number of net reallocations during the `TestGroup` execution. + */ + protected groupReallocationCount: number; + /** + * This is the current number of net reallocations during the `TestResult` execution. + */ + protected testReallocationCount: number; /** * This map is responsible for keeping track of which blocks are currently allocated by their id. */ @@ -558,6 +570,7 @@ export declare class TestCollector { * @param {number} block - This is a unique identifier for the affected block. */ private ondecrement; + private onrealloc; /** * This method reports an error to the current logTarget and the `TestContext`. * @@ -613,6 +626,18 @@ export declare class TestCollector { * This linked method gets all the RTrace allocations for the current test up until this point. */ private getRTraceTestFrees; + /** + * This linked method gets all the RTrace reallocations for the current TestContext. + */ + private getRTraceReallocs; + /** + * This linked method gets all the RTrace reallocations for the current TestGroup. + */ + private getRTraceGroupReallocs; + /** + * This linked method gets all the RTrace reallocations for the current TestResult. + */ + private getRTraceTestReallocs; /** * This linked method gets all the current RTrace allocations and adds them to an array. */ diff --git a/packages/core/lib/test/TestCollector.js b/packages/core/lib/test/TestCollector.js index 60d0202b..182c627c 100644 --- a/packages/core/lib/test/TestCollector.js +++ b/packages/core/lib/test/TestCollector.js @@ -131,6 +131,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) { * This is the current number of net decrements that occurred during `TestResult` execution. */ this.testDecrementCount = 0; + /** + * This is the current number of net reallocations during the `TestContext` execution. + */ + this.reallocationCount = 0; + /** + * This is the current number of net reallocations during the `TestGroup` execution. + */ + this.groupReallocationCount = 0; + /** + * This is the current number of net reallocations during the `TestResult` execution. + */ + this.testReallocationCount = 0; /** * This map is responsible for keeping track of which blocks are currently allocated by their id. */ @@ -288,26 +300,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) { getRTraceGroupDecrements: this.getRTraceGroupDecrements.bind(this), getRTraceGroupFrees: this.getRTraceGroupFrees.bind(this), getRTraceGroupIncrements: this.getRTraceGroupIncrements.bind(this), + getRTraceGroupReallocs: this.getRTraceGroupReallocs.bind(this), getRTraceIncrements: this.getRTraceIncrements.bind(this), + getRTraceReallocs: this.getRTraceReallocs.bind(this), getRTraceTestAllocations: this.getRTraceTestAllocations.bind(this), getRTraceTestBlocks: this.getRTraceTestBlocks.bind(this), getRTraceTestDecrements: this.getRTraceTestDecrements.bind(this), getRTraceTestFrees: this.getRTraceTestFrees.bind(this), getRTraceTestIncrements: this.getRTraceTestIncrements.bind(this), + getRTraceTestReallocs: this.getRTraceTestReallocs.bind(this), getStackTrace: this.getStackTrace.bind(this), logArray: this.logArray.bind(this), logBool: this.logBool.bind(this), + logFunction: this.logFunction.bind(this), logLong: this.logLong.bind(this), logNull: this.logNull.bind(this), logReference: this.logReference.bind(this), logString: this.logString.bind(this), logValue: this.logValue.bind(this), - logFunction: this.logFunction.bind(this), maxSamples: this.maxSamples.bind(this), maxTestRunTime: this.maxTestRunTime.bind(this), performanceEnabled: this.performanceEnabled.bind(this), reportActualArray: this.reportActualArray.bind(this), reportActualBool: this.reportActualBool.bind(this), + reportActualFunction: this.reportActualFunction.bind(this), reportActualLong: this.reportActualLong.bind(this), reportActualNull: this.reportActualNull.bind(this), reportActualReference: this.reportActualReference.bind(this), @@ -324,14 +340,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) { reportExpectedBool: this.reportExpectedBool.bind(this), reportExpectedFalsy: this.reportExpectedFalsy.bind(this), reportExpectedFinite: this.reportExpectedFinite.bind(this), + reportExpectedFunction: this.reportExpectedFunction.bind(this), reportExpectedLong: this.reportExpectedLong.bind(this), reportExpectedNull: this.reportExpectedNull.bind(this), reportExpectedReference: this.reportExpectedReference.bind(this), reportExpectedString: this.reportExpectedString.bind(this), reportExpectedTruthy: this.reportExpectedTruthy.bind(this), reportExpectedValue: this.reportExpectedValue.bind(this), - reportExpectedFunction: this.reportExpectedFunction.bind(this), - reportActualFunction: this.reportActualFunction.bind(this), reportInvalidExpectCall: this.reportInvalidExpectCall.bind(this), reportMax: this.reportMax.bind(this), reportMedian: this.reportMedian.bind(this), @@ -353,6 +368,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { onfree: this.onfree.bind(this), onincrement: this.onincrement.bind(this), ondecrement: this.ondecrement.bind(this), + onrealloc: this.onrealloc.bind(this), }; /** add an env object */ result.env = result.env || {}; @@ -1370,6 +1386,54 @@ var __importDefault = (this && this.__importDefault) || function (mod) { this.blocks.set(block, count - 1); } }; + TestCollector.prototype.onrealloc = function (oldBlock, newBlock) { + this.reallocationCount += 1; + this.groupReallocationCount += 1; + this.testReallocationCount += 1; + /** + * This is impossible to test, but follows exactly from the AssemblyScript example located + * at https://github.com/AssemblyScript/assemblyscript/blob/master/lib/rtrace/index.js. + * + * Please see this file for further information about how rtrace errors are reported. + */ + /* istanbul ignore next */ + if (!this.blocks.has(oldBlock)) { + /* istanbul ignore next */ + this.pushError({ + message: "An orphaned realloc has occurred at old block: " + oldBlock.toString(), + stackTrace: this.getLogStackTrace(), + type: "Orphaned Reallocation Error (old)", + }); + } + else { + /* istanbul ignore next */ + if (!this.blocks.has(newBlock)) { + /* istanbul ignore next */ + this.pushError({ + message: "An orphaned realloc has occurred at new block: " + newBlock.toString(), + stackTrace: this.getLogStackTrace(), + type: "Orphaned Reallocation Error (new)", + }); + } + else { + /* istanbul ignore next */ + var newRc = this.blocks.get(newBlock); + /* istanbul ignore next */ + if (newRc != 0) { + /* istanbul ignore next */ + this.pushError({ + message: "An invalid realloc error has occurred from " + oldBlock + " to " + newBlock + ".", + stackTrace: this.getLogStackTrace(), + type: "Invalid Reallocation Error", + }); + } + else { + var oldRc = this.blocks.get(oldBlock); + this.blocks.set(newBlock, oldRc); + } + } + } + }; /** * This method reports an error to the current logTarget and the `TestContext`. * @@ -1462,6 +1526,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) { TestCollector.prototype.getRTraceTestFrees = function () { return this.testFreeCount; }; + /** + * This linked method gets all the RTrace reallocations for the current TestContext. + */ + TestCollector.prototype.getRTraceReallocs = function () { + return this.reallocationCount; + }; + /** + * This linked method gets all the RTrace reallocations for the current TestGroup. + */ + TestCollector.prototype.getRTraceGroupReallocs = function () { + return this.groupReallocationCount; + }; + /** + * This linked method gets all the RTrace reallocations for the current TestResult. + */ + TestCollector.prototype.getRTraceTestReallocs = function () { + return this.testReallocationCount; + }; /** * This linked method gets all the current RTrace allocations and adds them to an array. */ @@ -1532,4 +1614,4 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }()); exports.TestCollector = TestCollector; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdENvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L1Rlc3RDb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQ0EsNkNBQTRDO0lBQzVDLG1EQUFrRDtJQUNsRCx5Q0FBd0M7SUFHeEMsK0VBRzJDO0lBQzNDLDJDQUEwQztJQUUxQywwREFBMEQ7SUFDMUQsOENBQXdCO0lBQ3hCLCtDQUFnRDtJQUVoRDs7Ozs7T0FLRztJQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBYSxJQUFjLE9BQUEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUE1QixDQUE0QixDQUFDO0lBNkI1RTs7O09BR0c7SUFDSDtRQXNFRSx1QkFBWSxLQUFnQztZQXJFbEMsU0FBSSxHQUEwQixJQUFJLENBQUM7WUFDbkMsZ0JBQVcsR0FBdUIsSUFBSSxDQUFDO1lBRWpELG9CQUFvQjtZQUNaLGVBQVUsR0FBZ0IsQ0FBQyxJQUFJLHFCQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELG1HQUFtRztZQUM1RixlQUFVLEdBQWdCLEVBQUUsQ0FBQztZQUVwQyxtQ0FBbUM7WUFDNUIsa0JBQWEsR0FBcUIsSUFBSSxDQUFDO1lBRXBDLGNBQVMsR0FBZSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJELHNFQUFzRTtZQUMvRCxXQUFNLEdBQWUsRUFBRSxDQUFDO1lBQy9CLHdFQUF3RTtZQUNqRSxhQUFRLEdBQWUsRUFBRSxDQUFDO1lBRWpDLGdEQUFnRDtZQUN6QyxhQUFRLEdBQVcsRUFBRSxDQUFDO1lBRTdCLDRCQUE0QjtZQUNsQixVQUFLLEdBQVcsRUFBRSxDQUFDO1lBQ25CLFlBQU8sR0FBVyxFQUFFLENBQUM7WUFDckIsV0FBTSxHQUF1QixJQUFJLENBQUM7WUFDbEMsYUFBUSxHQUF1QixJQUFJLENBQUM7WUFjOUMsb0NBQW9DO1lBQzVCLDZCQUF3QixH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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdENvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L1Rlc3RDb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQ0EsNkNBQTRDO0lBQzVDLG1EQUFrRDtJQUNsRCx5Q0FBd0M7SUFHeEMsK0VBRzJDO0lBQzNDLDJDQUEwQztJQUUxQywwREFBMEQ7SUFDMUQsOENBQXdCO0lBQ3hCLCtDQUFnRDtJQUVoRDs7Ozs7T0FLRztJQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBYSxJQUFjLE9BQUEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUE1QixDQUE0QixDQUFDO0lBNkI1RTs7O09BR0c7SUFDSDtRQXNFRSx1QkFBWSxLQUFnQztZQXJFbEMsU0FBSSxHQUEwQixJQUFJLENBQUM7WUFDbkMsZ0JBQVcsR0FBdUIsSUFBSSxDQUFDO1lBRWpELG9CQUFvQjtZQUNaLGVBQVUsR0FBZ0IsQ0FBQyxJQUFJLHFCQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELG1HQUFtRztZQUM1RixlQUFVLEdBQWdCLEVBQUUsQ0FBQztZQUVwQyxtQ0FBbUM7WUFDNUIsa0JBQWEsR0FBcUIsSUFBSSxDQUFDO1lBRXBDLGNBQVMsR0FBZSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJELHNFQUFzRTtZQUMvRCxXQUFNLEdBQWUsRUFBRSxDQUFDO1lBQy9CLHdFQUF3RTtZQUNqRSxhQUFRLEdBQWUsRUFBRSxDQUFDO1lBRWpDLGdEQUFnRDtZQUN6QyxhQUFRLEdBQVcsRUFBRSxDQUFDO1lBRTdCLDRCQUE0QjtZQUNsQixVQUFLLEdBQVcsRUFBRSxDQUFDO1lBQ25CLFlBQU8sR0FBVyxFQUFFLENBQUM7WUFDckIsV0FBTSxHQUF1QixJQUFJLENBQUM7WUFDbEMsYUFBUSxHQUF1QixJQUFJLENBQUM7WUFjOUMsb0NBQW9DO1lBQzVCLDZCQUF3QixH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 \ No newline at end of file diff --git a/packages/core/lib/test/TestContext.js b/packages/core/lib/test/TestContext.js index cb673493..616f8a3b 100644 --- a/packages/core/lib/test/TestContext.js +++ b/packages/core/lib/test/TestContext.js @@ -110,6 +110,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { this.groupFreeCount = 0; this.groupDecrementCount = 0; this.groupIncrementCount = 0; + this.groupReallocationCount = 0; group.rtraceStart = this.blocks.size; this.groupBlocks.clear(); } @@ -150,6 +151,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { group.freeCount = this.groupFreeCount; group.decrementCount = this.groupDecrementCount; group.incrementCount = this.groupIncrementCount; + group.reallocationCount = this.groupReallocationCount; group.rtraceEnd = this.blocks.size; group.rtraceDelta = group.rtraceEnd - group.rtraceStart; } @@ -176,6 +178,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { this.testFreeCount = 0; this.testDecrementCount = 0; this.testIncrementCount = 0; + this.testReallocationCount = 0; result.rtraceStart = this.blocks.size; this.testBlocks.clear(); } @@ -245,11 +248,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return; } if (this.rtraceEnabled) { - // calculate reference counts for the group - result.allocationCount = this.groupAllocationCount; - result.freeCount = this.groupFreeCount; - result.decrementCount = this.groupDecrementCount; - result.incrementCount = this.groupIncrementCount; + // calculate reference counts for the test + result.allocationCount = this.testAllocationCount; + result.freeCount = this.testFreeCount; + result.decrementCount = this.testDecrementCount; + result.incrementCount = this.testIncrementCount; + result.reallocationCount = this.testReallocationCount; result.rtraceEnd = this.blocks.size; result.rtraceDelta = result.rtraceEnd - result.rtraceStart; } @@ -419,4 +423,4 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }(TestCollector_1.TestCollector)); exports.TestContext = TestContext; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9UZXN0Q29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFHQSxnRkFBMEQ7SUFDMUQseUNBQXlDO0lBQ3pDLHlEQUF3RDtJQUV4RCxpREFBMEU7SUFTMUU7UUFBaUMsK0JBQWE7UUFlNUMscUJBQVksS0FBOEI7WUFBMUMsWUFDRSxrQkFBTSxLQUFLLENBQUMsU0FXYjtZQTFCTSxVQUFJLEdBQVcsQ0FBQyxDQUFDO1lBQ2pCLFVBQUksR0FBWSxJQUFJLENBQUM7WUFDckIsaUJBQVcsR0FBVyxDQUFDLENBQUM7WUFDeEIsY0FBUSxHQUFpQixJQUFJLHlCQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFeEQsMEJBQTBCO1lBQ25CLFlBQU0sR0FDWCxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6RCwwQkFBMEI7WUFDbkIsWUFBTSxHQUNYLE9BQU8sT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRWpELGNBQVEsR0FBWSxLQUFLLENBQUM7WUFLaEMsMEJBQTBCO1lBQzFCLElBQUksS0FBSyxFQUFFO2dCQUNULDBCQUEwQjtnQkFDMUIsSUFBSSxLQUFLLENBQUMsUUFBUTtvQkFBRSxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQ25ELDBCQUEwQjtnQkFDMUIsSUFBSSxLQUFLLENBQUMsTUFBTTtvQkFBRSxLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzdDLDBCQUEwQjtnQkFDMUIsSUFBSSxLQUFLLENBQUMsTUFBTTtvQkFBRSxLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDOUM7O1FBQ0gsQ0FBQztRQUVEOztXQUVHO1FBQ0kseUJBQUcsR0FBVixVQUFXLElBQW9CO1lBQzdCLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUVqQixrQkFBa0I7WUFDbEIsSUFBTSxLQUFLLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVoQyxJQUFJO2dCQUNGLHNCQUFzQjtnQkFDdEIsaUJBQU0sWUFBWSxXQUFFLENBQUM7Z0JBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQ3hCO2dCQUVELHdCQUF3QjtnQkFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRywrQkFBYyxDQUFDLHdCQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0Q7WUFBQyxPQUFPLEVBQUUsRUFBRTtnQkFDWCx3RkFBd0Y7Z0JBQ3hGLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDYixPQUFPLEVBQ0wsdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFLLEVBQVksQ0FBQyxPQUFPLENBQUM7b0JBQ25FLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO29CQUN2QyxJQUFJLEVBQUUscUJBQXFCO2lCQUM1QixDQUFDLENBQUM7YUFDSjtZQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFBRSxPQUFPO1lBRW5DLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFjLENBQUMsQ0FBQztZQUVuQyxJQUFNLEdBQUcsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsK0JBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVPLDhCQUFRLEdBQWhCLFVBQWlCLEtBQWdCO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNsQiwwQkFBMEI7Z0JBQzFCLEtBQW9CLFVBQWMsRUFBZCxLQUFBLEtBQUssQ0FBQyxRQUFRLEVBQWQsY0FBYyxFQUFkLElBQWMsRUFBRTtvQkFBL0IsSUFBTSxLQUFLLFNBQUE7b0JBQ2QsMEJBQTBCO29CQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyQiwwQkFBMEI7b0JBQzFCLElBQUksSUFBSSxDQUFDLFFBQVE7d0JBQUUsT0FBTztpQkFDM0I7YUFDRjtZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRXRCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsOENBQThDO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMxQjtZQUVELDBCQUEwQjtZQUMxQixLQUFLLENBQUMsS0FBSyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFaEMscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBRXZCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXpCLHlGQUF5RjtZQUN6RixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFMUIsS0FBcUIsVUFBVyxFQUFYLEtBQUEsS0FBSyxDQUFDLEtBQUssRUFBWCxjQUFXLEVBQVgsSUFBVyxFQUFFO2dCQUE3QixJQUFNLE1BQU0sU0FBQTtnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUTtvQkFBRSxPQUFPO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO1lBRUQsbUJBQW1CO1lBQ25CLEtBQW9CLFVBQWMsRUFBZCxLQUFBLEtBQUssQ0FBQyxRQUFRLEVBQWQsY0FBYyxFQUFkLElBQWMsRUFBRTtnQkFBL0IsSUFBTSxLQUFLLFNBQUE7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtZQUVELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLHdEQUFxRCxDQUFDO2dCQUM3RixPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLDJDQUEyQztnQkFDM0MsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDdEMsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2hELEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNoRCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNuQyxLQUFLLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUN6RDtZQUVELG1CQUFtQjtZQUNuQixLQUFLLENBQUMsR0FBRyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRDs7Ozs7O1dBTUc7UUFDSyw2QkFBTyxHQUFmLFVBQWdCLEtBQWdCLEVBQUUsTUFBa0I7WUFDbEQscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBRXhCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLDhDQUE4QztnQkFDOUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7Z0JBRTVCLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDekI7WUFFRCxNQUFNLENBQUMsS0FBSyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakMsbUZBQW1GO1lBQ25GLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDdEIsd0VBQXdFO2dCQUN4RSxJQUFJLENBQUMsSUFBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUVqQixJQUFNLGFBQWEsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQztnQkFDM0Isb0JBQW9CO2dCQUNwQixPQUFPLElBQUksRUFBRTtvQkFDWCwyQkFBMkI7b0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNsQzs7O3VCQUdHO29CQUNILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsSUFBSSxDQUFDLElBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU87cUJBQ1I7b0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUVqQyw4REFBOEQ7b0JBQzlELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsSUFBSSxDQUFDLElBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU87cUJBQ1I7b0JBRUQsa0JBQWtCLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQyw4Q0FBOEM7b0JBRXRHLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7b0JBRXhDLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQ2pDLElBQUksQ0FBQyxJQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixNQUFNLENBQUMsMENBQTBDO3FCQUNsRDtvQkFDRCxJQUFJLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQzNDLElBQUksQ0FBQyxJQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixNQUFNLENBQUMscURBQXFEO3FCQUM3RDtpQkFDRjtnQkFDRCxJQUFJLENBQUMsSUFBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxNQUFNLENBQUMscUJBQXFCO29CQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUI7b0JBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLE1BQU0sQ0FBQyxvQkFBb0I7b0JBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUI7b0JBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLE1BQU0sQ0FBQyxzQkFBc0I7b0JBQUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzlELElBQUksTUFBTSxDQUFDLCtCQUErQjtvQkFDeEMsTUFBTSxDQUFDLDBCQUEwQixFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsT0FBTztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRO29CQUFFLE9BQU87YUFDM0I7WUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLDJDQUEyQztnQkFDM0MsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2pELE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNqRCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNwQyxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUM1RDtZQUVEOzs7Ozs7ZUFNRztZQUNILDBCQUEwQjtZQUMxQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2FBQ3JCO1lBRUQsTUFBTSxDQUFDLEdBQUcsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsK0JBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQ7Ozs7Ozs7V0FPRztRQUNLLGlDQUFXLEdBQW5CLFVBQW9CLEtBQWdCLEVBQUUsTUFBa0I7WUFDdEQsSUFBTSxLQUFLLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoQyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUU1RCxJQUFNLEdBQUcsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRTlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLCtCQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssQ0FBQyxDQUFDO1lBRTNFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztnQkFDbEIsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ25CLG1GQUFtRjtnQkFDbkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxJQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxJQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzVCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDNUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNoQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQzlCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDM0I7YUFDRjtZQUVELElBQUksY0FBYyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLElBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLElBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN4QjtZQUVELDBCQUEwQjtZQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQ7Ozs7OztXQU1HO1FBQ0ssa0NBQVksR0FBcEIsVUFBcUIsS0FBZ0IsRUFBRSxNQUFrQjtZQUN2RCxJQUFJLEtBQUssQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUxRCwrQ0FBK0M7WUFDL0MsS0FBZ0MsVUFBdUIsRUFBdkIsS0FBQSxLQUFLLENBQUMsaUJBQWlCLEVBQXZCLGNBQXVCLEVBQXZCLElBQXVCLEVBQUU7Z0JBQXBELElBQU0saUJBQWlCLFNBQUE7Z0JBQzFCLElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDeEQscUJBQXFCO2dCQUNyQixJQUFJLGVBQWUsS0FBSyxDQUFDLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUNyQixLQUFLLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDM0MsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGtFQUErRCxDQUFDO29CQUN2RyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxPQUFPO2lCQUNSO2FBQ0Y7UUFDSCxDQUFDO1FBRUQ7Ozs7OztXQU1HO1FBQ0ssbUNBQWEsR0FBckIsVUFBc0IsS0FBZ0IsRUFBRSxNQUFrQjtZQUN4RCxJQUFJLEtBQUssQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUzRCxnREFBZ0Q7WUFDaEQsS0FBaUMsVUFBd0IsRUFBeEIsS0FBQSxLQUFLLENBQUMsa0JBQWtCLEVBQXhCLGNBQXdCLEVBQXhCLElBQXdCLEVBQUU7Z0JBQXRELElBQU0sa0JBQWtCLFNBQUE7Z0JBQzNCLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUMxRCxzQkFBc0I7Z0JBQ3RCLElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsSUFBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGtFQUErRCxDQUFDO29CQUN2RyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDckIsT0FBTztpQkFDUjthQUNGO1FBQ0gsQ0FBQztRQUVEOzs7Ozs7V0FNRztRQUNLLGlDQUFXLEdBQW5CLFVBQW9CLEtBQWdCO1lBQ2xDLEtBQStCLFVBQXNCLEVBQXRCLEtBQUEsS0FBSyxDQUFDLGdCQUFnQixFQUF0QixjQUFzQixFQUF0QixJQUFzQixFQUFFO2dCQUFsRCxJQUFNLGdCQUFnQixTQUFBO2dCQUN6Qiw4QkFBOEI7Z0JBQzlCLElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdEQsb0JBQW9CO2dCQUNwQixJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUU7b0JBQ3hCLEtBQUssQ0FBQyxHQUFHLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGlFQUE4RCxDQUFDO29CQUN0RyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLE9BQU87aUJBQ1I7YUFDRjtRQUNILENBQUM7UUFFRDs7Ozs7O1dBTUc7UUFDSyxrQ0FBWSxHQUFwQixVQUFxQixLQUFnQjtZQUNuQyxLQUFnQyxVQUF1QixFQUF2QixLQUFBLEtBQUssQ0FBQyxpQkFBaUIsRUFBdkIsY0FBdUIsRUFBdkIsSUFBdUIsRUFBRTtnQkFBcEQsSUFBTSxpQkFBaUIsU0FBQTtnQkFDMUIsK0JBQStCO2dCQUMvQixJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3hELG9CQUFvQjtnQkFDcEIsSUFBSSxlQUFlLEtBQUssQ0FBQyxFQUFFO29CQUN6QixLQUFLLENBQUMsR0FBRyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzlCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGlFQUE4RCxDQUFDO29CQUN0RyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDckIsT0FBTztpQkFDUjthQUNGO1FBQ0gsQ0FBQztRQUNILGtCQUFDO0lBQUQsQ0FBQyxBQTlaRCxDQUFpQyw2QkFBYSxHQThaN0M7SUE5Wlksa0NBQVcifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9UZXN0Q29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFHQSxnRkFBMEQ7SUFDMUQseUNBQXlDO0lBQ3pDLHlEQUF3RDtJQUV4RCxpREFBMEU7SUFTMUU7UUFBaUMsK0JBQWE7UUFlNUMscUJBQVksS0FBOEI7WUFBMUMsWUFDRSxrQkFBTSxLQUFLLENBQUMsU0FXYjtZQTFCTSxVQUFJLEdBQVcsQ0FBQyxDQUFDO1lBQ2pCLFVBQUksR0FBWSxJQUFJLENBQUM7WUFDckIsaUJBQVcsR0FBVyxDQUFDLENBQUM7WUFDeEIsY0FBUSxHQUFpQixJQUFJLHlCQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFeEQsMEJBQTBCO1lBQ25CLFlBQU0sR0FDWCxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6RCwwQkFBMEI7WUFDbkIsWUFBTSxHQUNYLE9BQU8sT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRWpELGNBQVEsR0FBWSxLQUFLLENBQUM7WUFLaEMsMEJBQTBCO1lBQzFCLElBQUksS0FBSyxFQUFFO2dCQUNULDBCQUEwQjtnQkFDMUIsSUFBSSxLQUFLLENBQUMsUUFBUTtvQkFBRSxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQ25ELDBCQUEwQjtnQkFDMUIsSUFBSSxLQUFLLENBQUMsTUFBTTtvQkFBRSxLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzdDLDBCQUEwQjtnQkFDMUIsSUFBSSxLQUFLLENBQUMsTUFBTTtvQkFBRSxLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDOUM7O1FBQ0gsQ0FBQztRQUVEOztXQUVHO1FBQ0kseUJBQUcsR0FBVixVQUFXLElBQW9CO1lBQzdCLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUVqQixrQkFBa0I7WUFDbEIsSUFBTSxLQUFLLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVoQyxJQUFJO2dCQUNGLHNCQUFzQjtnQkFDdEIsaUJBQU0sWUFBWSxXQUFFLENBQUM7Z0JBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQ3hCO2dCQUVELHdCQUF3QjtnQkFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRywrQkFBYyxDQUFDLHdCQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0Q7WUFBQyxPQUFPLEVBQUUsRUFBRTtnQkFDWCx3RkFBd0Y7Z0JBQ3hGLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDYixPQUFPLEVBQ0wsdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFLLEVBQVksQ0FBQyxPQUFPLENBQUM7b0JBQ25FLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO29CQUN2QyxJQUFJLEVBQUUscUJBQXFCO2lCQUM1QixDQUFDLENBQUM7YUFDSjtZQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFBRSxPQUFPO1lBRW5DLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFjLENBQUMsQ0FBQztZQUVuQyxJQUFNLEdBQUcsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsK0JBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVPLDhCQUFRLEdBQWhCLFVBQWlCLEtBQWdCO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNsQiwwQkFBMEI7Z0JBQzFCLEtBQW9CLFVBQWMsRUFBZCxLQUFBLEtBQUssQ0FBQyxRQUFRLEVBQWQsY0FBYyxFQUFkLElBQWMsRUFBRTtvQkFBL0IsSUFBTSxLQUFLLFNBQUE7b0JBQ2QsMEJBQTBCO29CQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyQiwwQkFBMEI7b0JBQzFCLElBQUksSUFBSSxDQUFDLFFBQVE7d0JBQUUsT0FBTztpQkFDM0I7YUFDRjtZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRXRCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsOENBQThDO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMxQjtZQUVELDBCQUEwQjtZQUMxQixLQUFLLENBQUMsS0FBSyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFaEMscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBRXZCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXpCLHlGQUF5RjtZQUN6RixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFMUIsS0FBcUIsVUFBVyxFQUFYLEtBQUEsS0FBSyxDQUFDLEtBQUssRUFBWCxjQUFXLEVBQVgsSUFBVyxFQUFFO2dCQUE3QixJQUFNLE1BQU0sU0FBQTtnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUTtvQkFBRSxPQUFPO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO1lBRUQsbUJBQW1CO1lBQ25CLEtBQW9CLFVBQWMsRUFBZCxLQUFBLEtBQUssQ0FBQyxRQUFRLEVBQWQsY0FBYyxFQUFkLElBQWMsRUFBRTtnQkFBL0IsSUFBTSxLQUFLLFNBQUE7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtZQUVELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLHdEQUFxRCxDQUFDO2dCQUM3RixPQUFPO2FBQ1I7WUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLDJDQUEyQztnQkFDM0MsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDdEMsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2hELEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNoRCxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2dCQUN0RCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNuQyxLQUFLLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUN6RDtZQUVELG1CQUFtQjtZQUNuQixLQUFLLENBQUMsR0FBRyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRDs7Ozs7O1dBTUc7UUFDSyw2QkFBTyxHQUFmLFVBQWdCLEtBQWdCLEVBQUUsTUFBa0I7WUFDbEQscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBRXhCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLDhDQUE4QztnQkFDOUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7Z0JBRS9CLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDekI7WUFFRCxNQUFNLENBQUMsS0FBSyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakMsbUZBQW1GO1lBQ25GLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDdEIsd0VBQXdFO2dCQUN4RSxJQUFJLENBQUMsSUFBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUVqQixJQUFNLGFBQWEsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQztnQkFDM0Isb0JBQW9CO2dCQUNwQixPQUFPLElBQUksRUFBRTtvQkFDWCwyQkFBMkI7b0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNsQzs7O3VCQUdHO29CQUNILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsSUFBSSxDQUFDLElBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU87cUJBQ1I7b0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUVqQyw4REFBOEQ7b0JBQzlELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsSUFBSSxDQUFDLElBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU87cUJBQ1I7b0JBRUQsa0JBQWtCLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQyw4Q0FBOEM7b0JBRXRHLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7b0JBRXhDLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQ2pDLElBQUksQ0FBQyxJQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixNQUFNLENBQUMsMENBQTBDO3FCQUNsRDtvQkFDRCxJQUFJLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQzNDLElBQUksQ0FBQyxJQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixNQUFNLENBQUMscURBQXFEO3FCQUM3RDtpQkFDRjtnQkFDRCxJQUFJLENBQUMsSUFBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxNQUFNLENBQUMscUJBQXFCO29CQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUI7b0JBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLE1BQU0sQ0FBQyxvQkFBb0I7b0JBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUI7b0JBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLE1BQU0sQ0FBQyxzQkFBc0I7b0JBQUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzlELElBQUksTUFBTSxDQUFDLCtCQUErQjtvQkFDeEMsTUFBTSxDQUFDLDBCQUEwQixFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsT0FBTztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRO29CQUFFLE9BQU87YUFDM0I7WUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLDBDQUEwQztnQkFDMUMsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xELE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDdEMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2hELE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNoRCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO2dCQUN0RCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNwQyxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUM1RDtZQUVEOzs7Ozs7ZUFNRztZQUNILDBCQUEwQjtZQUMxQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2FBQ3JCO1lBRUQsTUFBTSxDQUFDLEdBQUcsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsK0JBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQ7Ozs7Ozs7V0FPRztRQUNLLGlDQUFXLEdBQW5CLFVBQW9CLEtBQWdCLEVBQUUsTUFBa0I7WUFDdEQsSUFBTSxLQUFLLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoQyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUU1RCxJQUFNLEdBQUcsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRTlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLCtCQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssQ0FBQyxDQUFDO1lBRTNFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztnQkFDbEIsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ25CLG1GQUFtRjtnQkFDbkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxJQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxJQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzVCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDNUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNoQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQzlCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDM0I7YUFDRjtZQUVELElBQUksY0FBYyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLElBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLElBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN4QjtZQUVELDBCQUEwQjtZQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQ7Ozs7OztXQU1HO1FBQ0ssa0NBQVksR0FBcEIsVUFBcUIsS0FBZ0IsRUFBRSxNQUFrQjtZQUN2RCxJQUFJLEtBQUssQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUxRCwrQ0FBK0M7WUFDL0MsS0FBZ0MsVUFBdUIsRUFBdkIsS0FBQSxLQUFLLENBQUMsaUJBQWlCLEVBQXZCLGNBQXVCLEVBQXZCLElBQXVCLEVBQUU7Z0JBQXBELElBQU0saUJBQWlCLFNBQUE7Z0JBQzFCLElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDeEQscUJBQXFCO2dCQUNyQixJQUFJLGVBQWUsS0FBSyxDQUFDLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxJQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUNyQixLQUFLLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDM0MsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGtFQUErRCxDQUFDO29CQUN2RyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxPQUFPO2lCQUNSO2FBQ0Y7UUFDSCxDQUFDO1FBRUQ7Ozs7OztXQU1HO1FBQ0ssbUNBQWEsR0FBckIsVUFBc0IsS0FBZ0IsRUFBRSxNQUFrQjtZQUN4RCxJQUFJLEtBQUssQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUzRCxnREFBZ0Q7WUFDaEQsS0FBaUMsVUFBd0IsRUFBeEIsS0FBQSxLQUFLLENBQUMsa0JBQWtCLEVBQXhCLGNBQXdCLEVBQXhCLElBQXdCLEVBQUU7Z0JBQXRELElBQU0sa0JBQWtCLFNBQUE7Z0JBQzNCLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUMxRCxzQkFBc0I7Z0JBQ3RCLElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsSUFBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGtFQUErRCxDQUFDO29CQUN2RyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDckIsT0FBTztpQkFDUjthQUNGO1FBQ0gsQ0FBQztRQUVEOzs7Ozs7V0FNRztRQUNLLGlDQUFXLEdBQW5CLFVBQW9CLEtBQWdCO1lBQ2xDLEtBQStCLFVBQXNCLEVBQXRCLEtBQUEsS0FBSyxDQUFDLGdCQUFnQixFQUF0QixjQUFzQixFQUF0QixJQUFzQixFQUFFO2dCQUFsRCxJQUFNLGdCQUFnQixTQUFBO2dCQUN6Qiw4QkFBOEI7Z0JBQzlCLElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdEQsb0JBQW9CO2dCQUNwQixJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUU7b0JBQ3hCLEtBQUssQ0FBQyxHQUFHLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGlFQUE4RCxDQUFDO29CQUN0RyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLE9BQU87aUJBQ1I7YUFDRjtRQUNILENBQUM7UUFFRDs7Ozs7O1dBTUc7UUFDSyxrQ0FBWSxHQUFwQixVQUFxQixLQUFnQjtZQUNuQyxLQUFnQyxVQUF1QixFQUF2QixLQUFBLEtBQUssQ0FBQyxpQkFBaUIsRUFBdkIsY0FBdUIsRUFBdkIsSUFBdUIsRUFBRTtnQkFBcEQsSUFBTSxpQkFBaUIsU0FBQTtnQkFDMUIsK0JBQStCO2dCQUMvQixJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3hELG9CQUFvQjtnQkFDcEIsSUFBSSxlQUFlLEtBQUssQ0FBQyxFQUFFO29CQUN6QixLQUFLLENBQUMsR0FBRyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzlCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFjLEtBQUssQ0FBQyxJQUFJLGlFQUE4RCxDQUFDO29CQUN0RyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsS0FBSyxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDckIsT0FBTztpQkFDUjthQUNGO1FBQ0gsQ0FBQztRQUNILGtCQUFDO0lBQUQsQ0FBQyxBQWxhRCxDQUFpQyw2QkFBYSxHQWthN0M7SUFsYVksa0NBQVcifQ== \ No newline at end of file diff --git a/packages/core/lib/test/TestGroup.d.ts b/packages/core/lib/test/TestGroup.d.ts index 7996b62d..47801a5a 100644 --- a/packages/core/lib/test/TestGroup.d.ts +++ b/packages/core/lib/test/TestGroup.d.ts @@ -83,6 +83,11 @@ export declare class TestGroup implements ILogTarget { * the group's exection. */ incrementCount: number; + /** + * If the test group did not error, this is the number of block reallocations that occurred during + * the group's exection. + */ + reallocationCount: number; /** * This is the number of allocations currently on the heap when the `TestGroup` execution starts. */ diff --git a/packages/core/lib/test/TestGroup.js b/packages/core/lib/test/TestGroup.js index 69c183bb..ec7a55f5 100644 --- a/packages/core/lib/test/TestGroup.js +++ b/packages/core/lib/test/TestGroup.js @@ -91,6 +91,11 @@ * the group's exection. */ this.incrementCount = 0; + /** + * If the test group did not error, this is the number of block reallocations that occurred during + * the group's exection. + */ + this.reallocationCount = 0; /** * This is the number of allocations currently on the heap when the `TestGroup` execution starts. */ @@ -130,4 +135,4 @@ }()); exports.TestGroup = TestGroup; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdEdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvVGVzdEdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBS0E7OztPQUdHO0lBQ0g7UUFBQTtZQUNFOztlQUVHO1lBQ0ksdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1lBRXpDOztlQUVHO1lBQ0ksc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1lBRXhDOztlQUVHO1lBQ0ksc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1lBRXhDOztlQUVHO1lBQ0kscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1lBRXZDOztlQUVHO1lBQ0ksVUFBSyxHQUFpQixFQUFFLENBQUM7WUFFaEM7O2VBRUc7WUFDSSxVQUFLLEdBQWEsRUFBRSxDQUFDO1lBRTVCOztlQUVHO1lBQ0ksU0FBSSxHQUFlLEVBQUUsQ0FBQztZQUU3Qjs7ZUFFRztZQUNJLFNBQUksR0FBVyxFQUFFLENBQUM7WUFFekI7O2VBRUc7WUFDSSxTQUFJLEdBQVksSUFBSSxDQUFDO1lBRTVCOztlQUVHO1lBQ0ksV0FBTSxHQUFXLEVBQUUsQ0FBQztZQUUzQjs7ZUFFRztZQUNJLFNBQUksR0FBVyxDQUFDLENBQUM7WUFFeEI7O2VBRUc7WUFDSSxZQUFPLEdBQVksSUFBSSxDQUFDO1lBRS9COztlQUVHO1lBQ0ksVUFBSyxHQUFXLENBQUMsQ0FBQztZQUN6Qjs7ZUFFRztZQUNJLFFBQUcsR0FBVyxDQUFDLENBQUM7WUFFdkI7OztlQUdHO1lBQ0ksb0JBQWUsR0FBVyxDQUFDLENBQUM7WUFFbkM7OztlQUdHO1lBQ0ksY0FBUyxHQUFXLENBQUMsQ0FBQztZQUU3Qjs7O2VBR0c7WUFDSSxtQkFBYyxHQUFXLENBQUMsQ0FBQztZQUVsQzs7O2VBR0c7WUFDSSxtQkFBYyxHQUFXLENBQUMsQ0FBQztZQUVsQzs7ZUFFRztZQUNJLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1lBRS9COzs7ZUFHRztZQUNJLGNBQVMsR0FBVyxDQUFDLENBQUM7WUFFN0I7OztlQUdHO1lBQ0ksZ0JBQVcsR0FBVyxDQUFDLENBQUM7WUFFL0I7O2VBRUc7WUFDSSxXQUFNLEdBQXFCLElBQUksQ0FBQztZQUVoQyxhQUFRLEdBQWdCLEVBQUUsQ0FBQztZQWEzQixXQUFNLEdBQWUsRUFBRSxDQUFDO1lBRS9COztlQUVHO1lBQ0ksYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBakJDOzs7V0FHRztRQUNJLHdCQUFJLEdBQVg7WUFDRSxJQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFRSCxnQkFBQztJQUFELENBQUMsQUF2SUQsSUF1SUM7SUF2SVksOEJBQVMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdEdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvVGVzdEdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBS0E7OztPQUdHO0lBQ0g7UUFBQTtZQUNFOztlQUVHO1lBQ0ksdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1lBRXpDOztlQUVHO1lBQ0ksc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1lBRXhDOztlQUVHO1lBQ0ksc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1lBRXhDOztlQUVHO1lBQ0kscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1lBRXZDOztlQUVHO1lBQ0ksVUFBSyxHQUFpQixFQUFFLENBQUM7WUFFaEM7O2VBRUc7WUFDSSxVQUFLLEdBQWEsRUFBRSxDQUFDO1lBRTVCOztlQUVHO1lBQ0ksU0FBSSxHQUFlLEVBQUUsQ0FBQztZQUU3Qjs7ZUFFRztZQUNJLFNBQUksR0FBVyxFQUFFLENBQUM7WUFFekI7O2VBRUc7WUFDSSxTQUFJLEdBQVksSUFBSSxDQUFDO1lBRTVCOztlQUVHO1lBQ0ksV0FBTSxHQUFXLEVBQUUsQ0FBQztZQUUzQjs7ZUFFRztZQUNJLFNBQUksR0FBVyxDQUFDLENBQUM7WUFFeEI7O2VBRUc7WUFDSSxZQUFPLEdBQVksSUFBSSxDQUFDO1lBRS9COztlQUVHO1lBQ0ksVUFBSyxHQUFXLENBQUMsQ0FBQztZQUN6Qjs7ZUFFRztZQUNJLFFBQUcsR0FBVyxDQUFDLENBQUM7WUFFdkI7OztlQUdHO1lBQ0ksb0JBQWUsR0FBVyxDQUFDLENBQUM7WUFFbkM7OztlQUdHO1lBQ0ksY0FBUyxHQUFXLENBQUMsQ0FBQztZQUU3Qjs7O2VBR0c7WUFDSSxtQkFBYyxHQUFXLENBQUMsQ0FBQztZQUVsQzs7O2VBR0c7WUFDSSxtQkFBYyxHQUFXLENBQUMsQ0FBQztZQUVsQzs7O2VBR0c7WUFDSSxzQkFBaUIsR0FBVyxDQUFDLENBQUM7WUFFckM7O2VBRUc7WUFDSSxnQkFBVyxHQUFXLENBQUMsQ0FBQztZQUUvQjs7O2VBR0c7WUFDSSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1lBRTdCOzs7ZUFHRztZQUNJLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1lBRS9COztlQUVHO1lBQ0ksV0FBTSxHQUFxQixJQUFJLENBQUM7WUFFaEMsYUFBUSxHQUFnQixFQUFFLENBQUM7WUFhM0IsV0FBTSxHQUFlLEVBQUUsQ0FBQztZQUUvQjs7ZUFFRztZQUNJLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDbkMsQ0FBQztRQWpCQzs7O1dBR0c7UUFDSSx3QkFBSSxHQUFYO1lBQ0UsSUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBUUgsZ0JBQUM7SUFBRCxDQUFDLEFBN0lELElBNklDO0lBN0lZLDhCQUFTIn0= \ No newline at end of file diff --git a/packages/core/lib/test/TestResult.d.ts b/packages/core/lib/test/TestResult.d.ts index 0504571b..af20ae6b 100644 --- a/packages/core/lib/test/TestResult.d.ts +++ b/packages/core/lib/test/TestResult.d.ts @@ -125,6 +125,11 @@ export declare class TestResult implements ILogTarget { * the test's exection. */ incrementCount: number; + /** + * If the test did not error, this is the number of block increments that occurred during + * the test's exection. + */ + reallocationCount: number; /** * This is the number of allocations currently on the heap when the `TestResult` execution starts. */ diff --git a/packages/core/lib/test/TestResult.js b/packages/core/lib/test/TestResult.js index f374ff13..13d192d4 100644 --- a/packages/core/lib/test/TestResult.js +++ b/packages/core/lib/test/TestResult.js @@ -113,6 +113,11 @@ * the test's exection. */ this.incrementCount = 0; + /** + * If the test did not error, this is the number of block increments that occurred during + * the test's exection. + */ + this.reallocationCount = 0; /** * This is the number of allocations currently on the heap when the `TestResult` execution starts. */ @@ -188,4 +193,4 @@ }()); exports.TestResult = TestResult; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdFJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L1Rlc3RSZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFLQSxxQ0FBb0M7SUFDcEMsdUNBQXNDO0lBQ3RDLHlDQUF3QztJQUN4Qyw2Q0FBNEM7SUFFNUM7OztPQUdHO0lBQ0g7UUFBQTtZQUNFLHlDQUF5QztZQUNsQyxvQkFBZSxHQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLDZDQUE2QztZQUN0QyxTQUFJLEdBQVcsRUFBRSxDQUFDO1lBQ3pCLCtDQUErQztZQUN4QyxTQUFJLEdBQVksS0FBSyxDQUFDO1lBQzdCLG1EQUFtRDtZQUM1QyxRQUFHLEdBQVksS0FBSyxDQUFDO1lBQzVCLDhFQUE4RTtZQUN2RSxVQUFLLEdBQWEsRUFBRSxDQUFDO1lBQzVCLDZDQUE2QztZQUN0QyxXQUFNLEdBQXVCLElBQUksQ0FBQztZQUN6QywrQ0FBK0M7WUFDeEMsYUFBUSxHQUF1QixJQUFJLENBQUM7WUFDM0MsOEVBQThFO1lBQ3ZFLFlBQU8sR0FBVyxFQUFFLENBQUM7WUFDNUIsa0RBQWtEO1lBQzNDLFNBQUksR0FBZSxFQUFFLENBQUM7WUFDN0IscURBQXFEO1lBQzlDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1lBQ25DLGtFQUFrRTtZQUMzRCxZQUFPLEdBQVksS0FBSyxDQUFDO1lBQ2hDLG1GQUFtRjtZQUM1RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztZQUNwQyxxRUFBcUU7WUFDOUQsZUFBVSwwQkFBd0M7WUFDekQscURBQXFEO1lBQzlDLGVBQVUsNkJBQTRDO1lBQzdELHNEQUFzRDtZQUMvQyxrQkFBYSxnQ0FBa0Q7WUFDdEUsOERBQThEO1lBQ3ZELDBCQUFxQixHQUFZLEtBQUssQ0FBQztZQUM5Qyx5REFBeUQ7WUFDbEQsZUFBVSxHQUFZLEtBQUssQ0FBQztZQUNuQyx3Q0FBd0M7WUFDakMsWUFBTyxHQUFXLENBQUMsQ0FBQztZQUMzQixn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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdFJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L1Rlc3RSZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFLQSxxQ0FBb0M7SUFDcEMsdUNBQXNDO0lBQ3RDLHlDQUF3QztJQUN4Qyw2Q0FBNEM7SUFFNUM7OztPQUdHO0lBQ0g7UUFBQTtZQUNFLHlDQUF5QztZQUNsQyxvQkFBZSxHQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLDZDQUE2QztZQUN0QyxTQUFJLEdBQVcsRUFBRSxDQUFDO1lBQ3pCLCtDQUErQztZQUN4QyxTQUFJLEdBQVksS0FBSyxDQUFDO1lBQzdCLG1EQUFtRDtZQUM1QyxRQUFHLEdBQVksS0FBSyxDQUFDO1lBQzVCLDhFQUE4RTtZQUN2RSxVQUFLLEdBQWEsRUFBRSxDQUFDO1lBQzVCLDZDQUE2QztZQUN0QyxXQUFNLEdBQXVCLElBQUksQ0FBQztZQUN6QywrQ0FBK0M7WUFDeEMsYUFBUSxHQUF1QixJQUFJLENBQUM7WUFDM0MsOEVBQThFO1lBQ3ZFLFlBQU8sR0FBVyxFQUFFLENBQUM7WUFDNUIsa0RBQWtEO1lBQzNDLFNBQUksR0FBZSxFQUFFLENBQUM7WUFDN0IscURBQXFEO1lBQzlDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1lBQ25DLGtFQUFrRTtZQUMzRCxZQUFPLEdBQVksS0FBSyxDQUFDO1lBQ2hDLG1GQUFtRjtZQUM1RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztZQUNwQyxxRUFBcUU7WUFDOUQsZUFBVSwwQkFBd0M7WUFDekQscURBQXFEO1lBQzlDLGVBQVUsNkJBQTRDO1lBQzdELHNEQUFzRDtZQUMvQyxrQkFBYSxnQ0FBa0Q7WUFDdEUsOERBQThEO1lBQ3ZELDBCQUFxQixHQUFZLEtBQUssQ0FBQztZQUM5Qyx5REFBeUQ7WUFDbEQsZUFBVSxHQUFZLEtBQUssQ0FBQztZQUNuQyx3Q0FBd0M7WUFDakMsWUFBTyxHQUFXLENBQUMsQ0FBQztZQUMzQixn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 \ No newline at end of file diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index e57d07d2..ccfc6eb8 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -645,6 +645,39 @@ "@types/yargs": "^13.0.0" } }, + "@npmcli/ci-detect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.1.1.tgz", + "integrity": "sha512-h5eW3DljLypyhvfK94FkSSm4qtSUFddth/xW+7vnkVCEUJR38MYvctCSZkxqrzmXZSzpfImuAwwKvRqkEuDvCQ==", + "dev": true + }, + "@npmcli/installed-package-contents": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz", + "integrity": "sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1", + "read-package-json-fast": "^1.1.1", + "readdir-scoped-modules": "^1.1.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/babel__core": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", @@ -698,9 +731,9 @@ "dev": true }, "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" @@ -717,9 +750,9 @@ } }, "@types/jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w==", + "version": "24.9.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz", + "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==", "dev": true, "requires": { "jest-diff": "^24.3.0" @@ -732,9 +765,9 @@ "dev": true }, "@types/yargs": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.5.tgz", - "integrity": "sha512-CF/+sxTO7FOwbIRL4wMv0ZYLCRfMid2HQpzDRyViH7kSpfoAFiMdGqKIxb1PxWfjtQXQhnQuD33lvRHNwr809Q==", + "version": "13.0.7", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.7.tgz", + "integrity": "sha512-Sg9kNeJz+V+W+0fugcVhHC+mNHnydDR1RJrW5Qn2jVrDQARF8wfPVqIqwEzZp+bneuEBIm2ClsJ1/je42ZBzSg==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -782,18 +815,71 @@ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, + "agentkeepalive": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", + "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + } + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -825,6 +911,21 @@ "normalize-path": "^2.1.1" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -855,6 +956,12 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -865,12 +972,12 @@ } }, "assemblyscript": { - "version": "0.8.1-nightly.20200114", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.8.1-nightly.20200114.tgz", - "integrity": "sha512-8accd9rrGBJo5VzG8mUFyebUqAXwccxXAzxtJSf+Mp320oJHSu3CmSwDwi35clIB6IMXahfRr7OQEepyovErig==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.9.0.tgz", + "integrity": "sha512-HDDoaDfdnp0Ki/k272ib12sKz3ytVlXsIDise5meamInLC1qZAcmwwO+aqNyiVksmPYyLhQlaVZRPKWibHqo3g==", "dev": true, "requires": { - "binaryen": "90.0.0-nightly.20200101", + "binaryen": "90.0.0-nightly.20200111", "long": "^4.0.0" } }, @@ -1091,9 +1198,9 @@ } }, "binaryen": { - "version": "90.0.0-nightly.20200101", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200101.tgz", - "integrity": "sha512-64lgruunUnkJD4YVD0DLCSRskqfo3xhoErM1H22GfkkWNT16/7tPTLG+MYqKLMALTiIyLL6L9UqmDaxOxDv0rw==", + "version": "90.0.0-nightly.20200111", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-90.0.0-nightly.20200111.tgz", + "integrity": "sha512-2uihf1tqfkG2OJB54LjIDu5/fqbGgbj9VSwnj8hYtsRfML61y0uHeMkPfWctyl99m7hsgyDu7xUbJ7iyqBz6BA==", "dev": true }, "bindings": { @@ -1106,6 +1213,74 @@ "file-uri-to-path": "1.0.0" } }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1192,6 +1367,47 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "cacache": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-14.0.0.tgz", + "integrity": "sha512-+Nr/BnA/tjAUXza9gH8F+FSP+1HvWqCKt4c95dQr4EDVJVafbzmPZpLKCkLYexs6vSd2B/1TOXrAoNnqVPfvRA==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "tar": "^6.0.0", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "dev": true + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1209,6 +1425,38 @@ "unset-value": "^1.0.0" } }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1245,12 +1493,24 @@ "supports-color": "^7.1.0" } }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, + "cint": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cint/-/cint-8.2.1.tgz", + "integrity": "sha1-cDhrG0jidz0NYxZqVa/5TvRFahI=", + "dev": true + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -1274,6 +1534,27 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + } + }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -1285,6 +1566,15 @@ "wrap-ansi": "^5.1.0" } }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -1314,6 +1604,12 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1323,6 +1619,12 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -1335,6 +1637,31 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -1344,6 +1671,20 @@ "safe-buffer": "~5.1.1" } }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -1369,6 +1710,12 @@ "which": "^1.2.9" } }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", @@ -1432,6 +1779,12 @@ "ms": "2.0.0" } }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -1444,12 +1797,33 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1506,12 +1880,28 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, "detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", "dev": true }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "diff-sequences": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", @@ -1527,6 +1917,21 @@ "webidl-conversions": "^4.0.2" } }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -1543,6 +1948,16 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -1552,6 +1967,12 @@ "once": "^1.4.0" } }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -1562,9 +1983,9 @@ } }, "es-abstract": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.1.tgz", - "integrity": "sha512-WmWNHWmm/LDwK8jaeZic/g6sU1ZckM+vvOyCV1qFRhJJ6hzve6DRgthNQB7Lra1ocrw68HexLKYgtdxIPcb3Fg==", + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", @@ -1591,6 +2012,21 @@ "is-symbol": "^1.0.2" } }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1598,12 +2034,12 @@ "dev": true }, "escodegen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", - "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz", + "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==", "dev": true, "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", @@ -1611,9 +2047,9 @@ } }, "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "estraverse": { @@ -1829,9 +2265,15 @@ "dev": true }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, "fast-json-stable-stringify": { @@ -1855,6 +2297,12 @@ "bser": "2.1.1" } }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -1926,14 +2374,35 @@ "map-cache": "^0.2.2" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.11", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.11", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, @@ -2508,6 +2977,12 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -2546,12 +3021,40 @@ "path-is-absolute": "^1.0.0" } }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -2589,6 +3092,23 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2632,6 +3152,12 @@ } } }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, "hosted-git-info": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", @@ -2653,6 +3179,39 @@ "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", "dev": true }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "dev": true + }, + "http-proxy-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz", + "integrity": "sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -2664,6 +3223,42 @@ "sshpk": "^1.7.0" } }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -2673,6 +3268,27 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, "import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", @@ -2689,6 +3305,18 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2705,6 +3333,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -2714,6 +3348,12 @@ "loose-envify": "^1.0.0" } }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -2824,6 +3464,28 @@ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -2844,6 +3506,21 @@ } } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2895,6 +3572,12 @@ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -4171,12 +4854,28 @@ } } }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -4223,12 +4922,33 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.0.1.tgz", + "integrity": "sha512-XFY2Mbnmg+8r7MRsxfArVkZcfjxGlF/NjM3LsPXVeCX/GBF/1FTCv+idHBYC4qLPtK7q8HC8bapLoWqnhP/bXw==", + "dev": true + }, + "json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", + "dev": true, + "requires": { + "jju": "^1.1.0" + } + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -4256,6 +4976,12 @@ "minimist": "^1.2.0" } }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -4268,10 +4994,19 @@ "verror": "1.10.0" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "kleur": { @@ -4280,6 +5015,15 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, "left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", @@ -4302,6 +5046,17 @@ "type-check": "~0.3.2" } }, + "libnpmconfig": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz", + "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -4356,6 +5111,29 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -4380,6 +5158,29 @@ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, + "make-fetch-happen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-7.1.1.tgz", + "integrity": "sha512-7fNjiOXNZhNGQzG5P15nU97aZQtzPU2GVgVd7pnqnl5gnpLzMAD8bAe5YG4iW2s0PTqaZy9xGv4Wfqe872kRNQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.0", + "cacache": "^14.0.0", + "http-cache-semantics": "^4.0.3", + "http-proxy-agent": "^3.0.0", + "https-proxy-agent": "^4.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.1.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^7.0.1" + } + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -4446,6 +5247,12 @@ "mime-db": "1.43.0" } }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -4461,6 +5268,84 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", + "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-pipeline": "^1.2.2", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -4499,6 +5384,20 @@ } } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4537,23 +5436,81 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true + "node-alias": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-alias/-/node-alias-1.0.4.tgz", + "integrity": "sha1-HxuRa1a56iQcATX5fO1pQPVW8pI=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "lodash": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true }, "node-notifier": { "version": "5.4.3", @@ -4589,6 +5546,190 @@ "remove-trailing-separator": "^1.0.1" } }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-check-updates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-4.0.1.tgz", + "integrity": "sha512-rDrKAqhQuTYq2EkndroPMZGA9N6tpTotOVOIJoxRa3ZKnb/mOcq2TZv4A4LLSM8+9kZlP+sBwE+XAGh8wWZw/w==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cint": "^8.2.1", + "cli-table": "^0.3.1", + "commander": "^4.0.1", + "fast-diff": "^1.2.0", + "find-up": "4.1.0", + "get-stdin": "^7.0.0", + "json-parse-helpfulerror": "^1.0.3", + "libnpmconfig": "^1.2.1", + "lodash": "^4.17.15", + "node-alias": "^1.0.4", + "pacote": "^10.2.0", + "progress": "^2.0.3", + "prompts": "^2.3.0", + "rc-config-loader": "^3.0.0", + "requireg": "^0.2.2", + "semver": "^6.3.0", + "semver-utils": "^1.1.4", + "spawn-please": "^0.3.0", + "update-notifier": "^3.0.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", + "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", + "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } + }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-packlist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.0.3.tgz", + "integrity": "sha512-geT5P1y+58INE/jlxBHNsucRX7jpZAgW+XkxAe1NWN7N9SNwpueWTUPRoVdJH+hFpqcdAChRUE/HWsXQI+8JaQ==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-5.0.0.tgz", + "integrity": "sha512-YUW9xObM7Y1OkQ/gSmU5VQyI3vCkG5lwOrdycw0dpj9/3dE8h9CKY8tVyHTIp50+mV8jOAGH4m4Lts7zz2rN4Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, + "npm-registry-fetch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-6.0.0.tgz", + "integrity": "sha512-TSzEzudrky0ArPskchM/7F5SrawBY5acMNtRqFuacEI2lCKEyfBjaENuuIU5Uq2CyHfJ+gWp5QlCprolKa5wKg==", + "dev": true, + "requires": { + "@npmcli/ci-detect": "^1.0.0", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^7.1.0", + "minipass": "^3.0.0", + "minipass-fetch": "^1.1.2", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0", + "safe-buffer": "^5.2.0", + "semver": "^7.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + } + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4716,6 +5857,34 @@ "word-wrap": "~1.2.3" } }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-each-series": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", @@ -4749,6 +5918,15 @@ "p-limit": "^2.0.0" } }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", @@ -4761,6 +5939,78 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "pacote": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-10.3.1.tgz", + "integrity": "sha512-rCChFkLK9aqmk34ewjVmoUL3MD0yxzj3xkknS7MtDO5rx5z4d4bB+GxsAu4zoYc9r3ynQyEfc2GNtpL94yZaEw==", + "dev": true, + "requires": { + "@npmcli/installed-package-contents": "^1.0.5", + "cacache": "^14.0.0", + "chownr": "^1.1.3", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.1", + "minipass-fetch": "^1.2.1", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.0", + "npm-packlist": "^2.0.3", + "npm-pick-manifest": "^5.0.0", + "npm-registry-fetch": "^6.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "semver": "^7.1.1", + "ssri": "^7.1.0", + "tar": "^6.0.0", + "which": "^2.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "dev": true + }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -4795,6 +6045,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -4864,6 +6120,12 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, "pretty-format": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", @@ -4902,6 +6164,34 @@ } } }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, "prompts": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", @@ -4912,6 +6202,12 @@ "sisteransi": "^1.0.3" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "psl": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", @@ -4940,12 +6236,63 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "rc-config-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", + "integrity": "sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "js-yaml": "^3.12.0", + "json5": "^2.1.1", + "require-from-string": "^2.0.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "react-is": { "version": "16.12.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==", "dev": true }, + "read-package-json-fast": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz", + "integrity": "sha512-MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -4967,6 +6314,33 @@ "read-pkg": "^3.0.0" } }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, "realpath-native": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", @@ -4986,6 +6360,24 @@ "safe-regex": "^1.1.0" } }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -5076,16 +6468,44 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dev": true, + "requires": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "dependencies": { + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, "resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -5112,12 +6532,27 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5133,6 +6568,15 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -5183,6 +6627,21 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "semver-utils": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.4.tgz", + "integrity": "sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -5251,6 +6710,12 @@ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -5364,6 +6829,37 @@ } } }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5399,6 +6895,12 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "spawn-please": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-0.3.0.tgz", + "integrity": "sha1-2zOOxM/2Orxp8dDgjO6euL69nRE=", + "dev": true + }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", @@ -5440,6 +6942,12 @@ "extend-shallow": "^3.0.0" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -5457,6 +6965,16 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, "stack-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", @@ -5548,6 +7066,15 @@ "function-bind": "^1.1.1" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -5569,6 +7096,12 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -5583,6 +7116,87 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "dev": true, + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, "test-exclude": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", @@ -5633,6 +7247,12 @@ } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -5733,6 +7353,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -5745,6 +7371,33 @@ "set-value": "^2.0.1" } }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -5785,6 +7438,78 @@ } } }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -5800,26 +7525,43 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" } }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, "validate-npm-package-license": { @@ -5832,6 +7574,15 @@ "spdx-expression-parse": "^3.0.0" } }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -5908,6 +7659,42 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -5977,6 +7764,12 @@ "async-limiter": "~1.0.0" } }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -5989,6 +7782,12 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yargs": { "version": "13.3.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", diff --git a/packages/core/package.json b/packages/core/package.json index bd5cdbbe..aa8da2c5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -21,6 +21,7 @@ "mdlint": "markdownlint *.md", "prettier": "prettier --write \"src/**/*.ts\" \"./__tests__/*.ts\" \"./__tests__/setup/*.ts\" \"./*.md\"", "rimraf": "rimraf lib/*", + "package:version-update": "ncu -u", "test:ci": "run-s jest mdlint", "test": "run-s jest mdlint", "tsc:all": "run-p tsc:default tsc:amd", @@ -34,8 +35,9 @@ "homepage": "https://github.com/jtenner/as-pect#readme", "devDependencies": { "@types/jest": "^24.9.0", - "assemblyscript": "0.8.1-nightly.20200114", + "assemblyscript": "^0.9.0", "jest": "^24.9.0", + "npm-check-updates": "4.0.1", "ts-jest": "^24.3.0" }, "dependencies": { diff --git a/packages/core/src/test/TestCollector.ts b/packages/core/src/test/TestCollector.ts index 4df25279..f21814ba 100644 --- a/packages/core/src/test/TestCollector.ts +++ b/packages/core/src/test/TestCollector.ts @@ -284,26 +284,30 @@ export class TestCollector { getRTraceGroupDecrements: this.getRTraceGroupDecrements.bind(this), getRTraceGroupFrees: this.getRTraceGroupFrees.bind(this), getRTraceGroupIncrements: this.getRTraceGroupIncrements.bind(this), + getRTraceGroupReallocs: this.getRTraceGroupReallocs.bind(this), getRTraceIncrements: this.getRTraceIncrements.bind(this), + getRTraceReallocs: this.getRTraceReallocs.bind(this), getRTraceTestAllocations: this.getRTraceTestAllocations.bind(this), getRTraceTestBlocks: this.getRTraceTestBlocks.bind(this), getRTraceTestDecrements: this.getRTraceTestDecrements.bind(this), getRTraceTestFrees: this.getRTraceTestFrees.bind(this), getRTraceTestIncrements: this.getRTraceTestIncrements.bind(this), + getRTraceTestReallocs: this.getRTraceTestReallocs.bind(this), getStackTrace: this.getStackTrace.bind(this), logArray: this.logArray.bind(this), logBool: this.logBool.bind(this), + logFunction: this.logFunction.bind(this), logLong: this.logLong.bind(this), logNull: this.logNull.bind(this), logReference: this.logReference.bind(this), logString: this.logString.bind(this), logValue: this.logValue.bind(this), - logFunction: this.logFunction.bind(this), maxSamples: this.maxSamples.bind(this), maxTestRunTime: this.maxTestRunTime.bind(this), performanceEnabled: this.performanceEnabled.bind(this), reportActualArray: this.reportActualArray.bind(this), reportActualBool: this.reportActualBool.bind(this), + reportActualFunction: this.reportActualFunction.bind(this), reportActualLong: this.reportActualLong.bind(this), reportActualNull: this.reportActualNull.bind(this), reportActualReference: this.reportActualReference.bind(this), @@ -320,14 +324,13 @@ export class TestCollector { reportExpectedBool: this.reportExpectedBool.bind(this), reportExpectedFalsy: this.reportExpectedFalsy.bind(this), reportExpectedFinite: this.reportExpectedFinite.bind(this), + reportExpectedFunction: this.reportExpectedFunction.bind(this), reportExpectedLong: this.reportExpectedLong.bind(this), reportExpectedNull: this.reportExpectedNull.bind(this), reportExpectedReference: this.reportExpectedReference.bind(this), reportExpectedString: this.reportExpectedString.bind(this), reportExpectedTruthy: this.reportExpectedTruthy.bind(this), reportExpectedValue: this.reportExpectedValue.bind(this), - reportExpectedFunction: this.reportExpectedFunction.bind(this), - reportActualFunction: this.reportActualFunction.bind(this), reportInvalidExpectCall: this.reportInvalidExpectCall.bind(this), reportMax: this.reportMax.bind(this), reportMedian: this.reportMedian.bind(this), @@ -351,6 +354,7 @@ export class TestCollector { onfree: this.onfree.bind(this), onincrement: this.onincrement.bind(this), ondecrement: this.ondecrement.bind(this), + onrealloc: this.onrealloc.bind(this), }; /** add an env object */ @@ -1476,6 +1480,21 @@ export class TestCollector { */ protected testDecrementCount: number = 0; + /** + * This is the current number of net reallocations during the `TestContext` execution. + */ + protected reallocationCount: number = 0; + + /** + * This is the current number of net reallocations during the `TestGroup` execution. + */ + protected groupReallocationCount: number = 0; + + /** + * This is the current number of net reallocations during the `TestResult` execution. + */ + protected testReallocationCount: number = 0; + /** * This map is responsible for keeping track of which blocks are currently allocated by their id. */ @@ -1615,6 +1634,55 @@ export class TestCollector { } } + private onrealloc(oldBlock: number, newBlock: number): void { + this.reallocationCount += 1; + this.groupReallocationCount += 1; + this.testReallocationCount += 1; + /** + * This is impossible to test, but follows exactly from the AssemblyScript example located + * at https://github.com/AssemblyScript/assemblyscript/blob/master/lib/rtrace/index.js. + * + * Please see this file for further information about how rtrace errors are reported. + */ + /* istanbul ignore next */ + if (!this.blocks.has(oldBlock)) { + /* istanbul ignore next */ + this.pushError({ + message: + "An orphaned realloc has occurred at old block: " + oldBlock.toString(), + stackTrace: this.getLogStackTrace(), + type: "Orphaned Reallocation Error (old)", + }); + } else { + /* istanbul ignore next */ + if (!this.blocks.has(newBlock)) { + /* istanbul ignore next */ + this.pushError({ + message: + "An orphaned realloc has occurred at new block: " + newBlock.toString(), + stackTrace: this.getLogStackTrace(), + type: "Orphaned Reallocation Error (new)", + }); + } else { + /* istanbul ignore next */ + let newRc = this.blocks.get(newBlock); + /* istanbul ignore next */ + if (newRc != 0) { + /* istanbul ignore next */ + this.pushError({ + message: + `An invalid realloc error has occurred from ${oldBlock} to ${newBlock}.`, + stackTrace: this.getLogStackTrace(), + type: "Invalid Reallocation Error", + }); + } else { + let oldRc = this.blocks.get(oldBlock)!; + this.blocks.set(newBlock, oldRc); + } + } + } + } + /** * This method reports an error to the current logTarget and the `TestContext`. * @@ -1720,6 +1788,26 @@ export class TestCollector { return this.testFreeCount; } + /** + * This linked method gets all the RTrace reallocations for the current TestContext. + */ + private getRTraceReallocs(): number { + return this.reallocationCount; + } + + /** + * This linked method gets all the RTrace reallocations for the current TestGroup. + */ + private getRTraceGroupReallocs(): number { + return this.groupReallocationCount; + } + /** + * This linked method gets all the RTrace reallocations for the current TestResult. + */ + private getRTraceTestReallocs(): number { + return this.testReallocationCount + } + /** * This linked method gets all the current RTrace allocations and adds them to an array. */ diff --git a/packages/core/src/test/TestContext.ts b/packages/core/src/test/TestContext.ts index df1a8d2c..9fe4a26a 100644 --- a/packages/core/src/test/TestContext.ts +++ b/packages/core/src/test/TestContext.ts @@ -106,6 +106,7 @@ export class TestContext extends TestCollector { this.groupFreeCount = 0; this.groupDecrementCount = 0; this.groupIncrementCount = 0; + this.groupReallocationCount = 0; group.rtraceStart = this.blocks.size; this.groupBlocks.clear(); } @@ -151,6 +152,7 @@ export class TestContext extends TestCollector { group.freeCount = this.groupFreeCount; group.decrementCount = this.groupDecrementCount; group.incrementCount = this.groupIncrementCount; + group.reallocationCount = this.groupReallocationCount; group.rtraceEnd = this.blocks.size; group.rtraceDelta = group.rtraceEnd - group.rtraceStart; } @@ -181,6 +183,7 @@ export class TestContext extends TestCollector { this.testFreeCount = 0; this.testDecrementCount = 0; this.testIncrementCount = 0; + this.testReallocationCount = 0; result.rtraceStart = this.blocks.size; this.testBlocks.clear(); @@ -250,11 +253,12 @@ export class TestContext extends TestCollector { } if (this.rtraceEnabled) { - // calculate reference counts for the group - result.allocationCount = this.groupAllocationCount; - result.freeCount = this.groupFreeCount; - result.decrementCount = this.groupDecrementCount; - result.incrementCount = this.groupIncrementCount; + // calculate reference counts for the test + result.allocationCount = this.testAllocationCount; + result.freeCount = this.testFreeCount; + result.decrementCount = this.testDecrementCount; + result.incrementCount = this.testIncrementCount; + result.reallocationCount = this.testReallocationCount; result.rtraceEnd = this.blocks.size; result.rtraceDelta = result.rtraceEnd - result.rtraceStart; } diff --git a/packages/core/src/test/TestGroup.ts b/packages/core/src/test/TestGroup.ts index c713947d..cd92db09 100644 --- a/packages/core/src/test/TestGroup.ts +++ b/packages/core/src/test/TestGroup.ts @@ -101,6 +101,12 @@ export class TestGroup implements ILogTarget { */ public incrementCount: number = 0; + /** + * If the test group did not error, this is the number of block reallocations that occurred during + * the group's exection. + */ + public reallocationCount: number = 0; + /** * This is the number of allocations currently on the heap when the `TestGroup` execution starts. */ diff --git a/packages/core/src/test/TestResult.ts b/packages/core/src/test/TestResult.ts index 33defb92..3388b631 100644 --- a/packages/core/src/test/TestResult.ts +++ b/packages/core/src/test/TestResult.ts @@ -88,6 +88,7 @@ export class TestResult implements ILogTarget { /** This is the run time for the test in milliseconds. */ public runTime: number = 0; + /** * Caclculate the average value of the collected times. */ @@ -165,6 +166,13 @@ export class TestResult implements ILogTarget { */ public incrementCount: number = 0; + /** + * If the test did not error, this is the number of block increments that occurred during + * the test's exection. + */ + public reallocationCount: number = 0; + + /** * This is the number of allocations currently on the heap when the `TestResult` execution starts. */