diff --git a/README.md b/README.md index 29dc93dd9..1511bfb15 100755 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ Inferno v9 requires following features to be present in the executing runtime: - `Promise` - `String.prototype.includes()` +- `String.prototype.startsWith()` - `Array.prototype.includes()` - `Object.spread()` diff --git a/fixtures/browser/package-lock.json b/fixtures/browser/package-lock.json index 360ed788b..85ea70bcb 100644 --- a/fixtures/browser/package-lock.json +++ b/fixtures/browser/package-lock.json @@ -1888,11 +1888,11 @@ } }, "node_modules/@types/node": { - "version": "20.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", - "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", + "version": "20.8.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", + "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", "dependencies": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "node_modules/@types/normalize-package-data": { @@ -1931,13 +1931,13 @@ } }, "node_modules/@wdio/config": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.20.0.tgz", - "integrity": "sha512-ODsafHlxEawyYa6IyIdXJMV2plPFyrDbGrXLNKNFBQVfB/FmoHUiiOTh+4Gu+sUXzpn2YNH5O199qHxHw61uUw==", + "version": "8.20.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.20.3.tgz", + "integrity": "sha512-UaPjDjdXztrWgpoodSjZc1/9oXX1WpjhZSW55ZA2PKzCO7QuS/Fory5lMMpJD4v6/9fNUiRp7A4/rd+w7am1vA==", "dependencies": { "@wdio/logger": "8.16.17", "@wdio/types": "8.20.0", - "@wdio/utils": "8.20.0", + "@wdio/utils": "8.20.3", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", @@ -2017,9 +2017,9 @@ } }, "node_modules/@wdio/protocols": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.18.0.tgz", - "integrity": "sha512-TABA0mksHvu5tE8qNYYDR0fDyo90NCANeghbGAtsI8TUsJzgH0dwpos3WSSiB97J9HRSZuWIMa7YuABEkBIjWQ==" + "version": "8.20.4", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.20.4.tgz", + "integrity": "sha512-9PwA2xgjsoB/9Fm8UWRhJlw61O69ckRICuBn0bzoHmMF7uMzYgDvDTekzYKn8JfjzvLm/MnWXL8raCZfQQ0P5g==" }, "node_modules/@wdio/repl": { "version": "8.10.1", @@ -2044,9 +2044,9 @@ } }, "node_modules/@wdio/utils": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.20.0.tgz", - "integrity": "sha512-nZ5QF5lPyZNJG9YaSrRuVfkVeg80yRrUQT42D0mUDDjmUIh2pAXDMu4HxgxocuQSOyLacg4Vpg3Sju9NFipxIA==", + "version": "8.20.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.20.3.tgz", + "integrity": "sha512-McGS9TFNfjS3cGJkF8hXyajGE5LKFJnPg/fbdXTIBzYohiAzQ1rUMyllPdxxHslnpQPkflBHI6XSYBxU7yB9Lw==", "dependencies": { "@puppeteer/browsers": "^1.6.0", "@wdio/logger": "8.16.17", @@ -2370,9 +2370,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -2645,12 +2645,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", - "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.32.2" + "core-js-compat": "^3.33.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -3025,9 +3025,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001551", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001551.tgz", - "integrity": "sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==", + "version": "1.0.30001558", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001558.tgz", + "integrity": "sha512-/Et7DwLqpjS47JPEcz6VnxU9PwcIdVi0ciLXRWBQdj1XFye68pSQYpV0QtPTfUKWuOaEig+/Vez2l74eDc1tPQ==", "funding": [ { "type": "opencollective", @@ -3339,9 +3339,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", - "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", "dependencies": { "browserslist": "^4.22.1" }, @@ -3769,9 +3769,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.563", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.563.tgz", - "integrity": "sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==" + "version": "1.4.569", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.569.tgz", + "integrity": "sha512-LsrJjZ0IbVy12ApW3gpYpcmHS3iRxH4bkKOW98y1/D+3cvDUWGcbzbsFinfUS8knpcZk/PG/2p/RnkMCYN7PVg==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -5706,9 +5706,9 @@ } }, "node_modules/parse-json": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz", - "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", + "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", "dependencies": { "@babel/code-frame": "^7.21.4", "error-ex": "^1.3.2", @@ -5901,9 +5901,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -6192,9 +6192,9 @@ } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.5.0.tgz", - "integrity": "sha512-diLQivFzddJl4ylL3jxSkEc39Tpw7o1QeEHIPxVwryDK2lpB7Nqhzhuo6v5/Ls08Z0yPSAhsyAWlv1/H0ciNmw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.6.0.tgz", + "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", "engines": { "node": ">=16" }, @@ -6203,9 +6203,9 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.5.0.tgz", - "integrity": "sha512-diLQivFzddJl4ylL3jxSkEc39Tpw7o1QeEHIPxVwryDK2lpB7Nqhzhuo6v5/Ls08Z0yPSAhsyAWlv1/H0ciNmw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.6.0.tgz", + "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", "engines": { "node": ">=16" }, @@ -6856,9 +6856,9 @@ } }, "node_modules/streamx": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", - "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz", + "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -7052,9 +7052,9 @@ } }, "node_modules/terser": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", - "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.23.0.tgz", + "integrity": "sha512-Iyy83LN0uX9ZZLCX4Qbu5JiHiWjOCTwrmM9InWOzVeM++KNWEsqV4YgN9U9E8AlohQ6Gs42ztczlWOG/lwDAMA==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -7383,9 +7383,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.36", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.36.tgz", - "integrity": "sha512-CPPLoCts2p7D8VbybttE3P2ylv0OBZEAy7a12DsulIEcAiMtWJy+PBgMXgWDI80D5UwqE8oQPHYnk13tm38M2Q==", + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", "funding": [ { "type": "opencollective", @@ -7414,9 +7414,9 @@ } }, "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -7687,17 +7687,17 @@ } }, "node_modules/webdriver": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.20.0.tgz", - "integrity": "sha512-U/sej7yljVf/enEWR9L2AtOntrd3lqtkEtHeuSWU2FPp5cWvoMEe7vQiG0WJA74VE2e7uwd8S1LfCgQD1wY3Bg==", + "version": "8.20.4", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.20.4.tgz", + "integrity": "sha512-X/6l+zGXn1trqA1LRwYETIJgkJQTVZ/xE1SrTlSxk2BE7Tq40voxfbDKUyauaCyRyABhA0ZgK5/1UOqeCKW15w==", "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.20.0", + "@wdio/config": "8.20.3", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.18.0", + "@wdio/protocols": "8.20.4", "@wdio/types": "8.20.0", - "@wdio/utils": "8.20.0", + "@wdio/utils": "8.20.3", "deepmerge-ts": "^5.1.0", "got": "^ 12.6.1", "ky": "^0.33.0", @@ -7857,17 +7857,17 @@ } }, "node_modules/webdriverio": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.20.0.tgz", - "integrity": "sha512-nVd3n4v1CYzjEezK6OgmGIcVx+T/7PNYwLK3fTNH2hGRNX05TyGGcR9HAcVZCbIu8WWFKRE0SrLvCjEutPO8gg==", + "version": "8.20.4", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.20.4.tgz", + "integrity": "sha512-+iyYK0NTviXv3Lyws07CaX9pLET9l0bh8aPICfCyf7f0NZLUDvUoEKvjviMCfLq4lbDu7CFIEyDZUJeuqlRwlw==", "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.20.0", + "@wdio/config": "8.20.3", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.18.0", + "@wdio/protocols": "8.20.4", "@wdio/repl": "8.10.1", "@wdio/types": "8.20.0", - "@wdio/utils": "8.20.0", + "@wdio/utils": "8.20.3", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", @@ -7884,7 +7884,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.20.0" + "webdriver": "8.20.4" }, "engines": { "node": "^16.13 || >=18" diff --git a/fixtures/packaging/build-all.js b/fixtures/packaging/build-all.js index e600bd16f..74247087d 100644 --- a/fixtures/packaging/build-all.js +++ b/fixtures/packaging/build-all.js @@ -21,7 +21,7 @@ function addResult(tool, environment, result) { } function buildFixture(tool, environment) { - const isWindows = os.type().indexOf('Windows') !== -1; + const isWindows = os.type().includes('Windows'); // Let console know what's going on console.log(`Running ${tool}:${environment}`); diff --git a/package.json b/package.json index 56bd0f828..9aedda385 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "test:memory": "node --expose-gc scripts/fakedom/uibench-reactlike/start.js", "test:memory:js-framework": "node --expose-gc scripts/fakedom/js-framework-bench/start.js", "test:memory:lifecycle": "node --expose-gc scripts/fakedom/uibench-lifecycle/start.js", + "test:memory:lifecycle:debug": "node --inspect-brk --expose-gc scripts/fakedom/uibench-lifecycle/start.js", "test:memory:js-framework:debug": "node --inspect-brk --expose-gc scripts/fakedom/js-framework-bench/start.js" }, "devDependencies": { @@ -90,14 +91,14 @@ "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.1", "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-replace": "^5.0.4", + "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.4", - "@swc/core": "^1.3.94", + "@swc/core": "^1.3.95", "@swc/jest": "^0.2.29", "@types/jest": "^29.5.6", "@types/jsdom": "^21.1.4", - "@types/node": "^20.8.7", - "@typescript-eslint/eslint-plugin": "^6.8.0", + "@types/node": "^20.8.9", + "@typescript-eslint/eslint-plugin": "^6.9.1", "babel-plugin-inferno": "6.7.0", "cli-table": "^0.3.11", "concat-stream-es6": "0.0.1", @@ -107,7 +108,7 @@ "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-config-standard-with-typescript": "^39.1.1", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-n": "^16.2.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-promise": "^6.1.1", @@ -129,7 +130,7 @@ "pre-commit": "^1.2.2", "prettier": "^3.0.3", "rimraf": "^5", - "rollup": "^4.1.4", + "rollup": "^4.1.5", "swc": "^1.0.11", "swc-loader": "^0.2.3", "swc-plugin-inferno": "^0.0.10", diff --git a/packages/inferno-router/src/StaticRouter.ts b/packages/inferno-router/src/StaticRouter.ts index 16c394a16..c362e11b3 100644 --- a/packages/inferno-router/src/StaticRouter.ts +++ b/packages/inferno-router/src/StaticRouter.ts @@ -144,14 +144,14 @@ function stripBasename( const base = addLeadingSlash(basename); - if (location.pathname.indexOf(base) !== 0) { + if (location.pathname.startsWith(base)) { + return { + ...location, + pathname: location.pathname.substring(base.length), + }; + } else { return location; } - - return { - ...location, - pathname: location.pathname.substring(base.length), - }; } function createLocation(location): Path { diff --git a/packages/inferno/README.md b/packages/inferno/README.md index e09f394f7..945f5a1ac 100755 --- a/packages/inferno/README.md +++ b/packages/inferno/README.md @@ -49,6 +49,7 @@ Inferno v9 requires following features to be present in the executing runtime: - `Promise` - `String.prototype.includes()` +- `String.prototype.startsWith()` - `Array.prototype.includes()` - `Object.spread()` diff --git a/packages/inferno/__tests__/componentlifecycle.spec.tsx b/packages/inferno/__tests__/componentlifecycle.spec.tsx index 4b111c567..dd154fb43 100644 --- a/packages/inferno/__tests__/componentlifecycle.spec.tsx +++ b/packages/inferno/__tests__/componentlifecycle.spec.tsx @@ -259,9 +259,9 @@ describe('legacy life cycle', () => { expect(consoleErrorStub).toHaveBeenCalledTimes(1); const message = consoleErrorStub.calls.argsFor(0)[0]; - expect(message.indexOf('componentWillMount')).toBeGreaterThan(-1); - expect(message.indexOf('componentWillReceiveProps')).toBeGreaterThan(-1); - expect(message.indexOf('componentWillUpdate')).toBeGreaterThan(-1); + expect(message.includes('componentWillMount')).toBeTruthy(); + expect(message.includes('componentWillReceiveProps')).toBeTruthy(); + expect(message.includes('componentWillUpdate')).toBeTruthy(); }); it('should allow suppress legacy life cycles when mixed with new APIs', () => { diff --git a/packages/inferno/__tests__/patching.spec.tsx b/packages/inferno/__tests__/patching.spec.tsx index 01084307e..d35a2edc7 100644 --- a/packages/inferno/__tests__/patching.spec.tsx +++ b/packages/inferno/__tests__/patching.spec.tsx @@ -92,9 +92,7 @@ describe('patching routine', () => { try { render(invalidNode, container); } catch (e) { - expect( - e.message.indexOf('Inferno Error: mount() received an object'), - ).not.toEqual(-1); + expect(e.message.includes('Inferno Error: mount() received an object')).toBeTruthy() } expect(container.innerHTML).toEqual('a'); diff --git a/packages/inferno/src/DOM/props.ts b/packages/inferno/src/DOM/props.ts index 4dc3a5d26..44a0c44c3 100644 --- a/packages/inferno/src/DOM/props.ts +++ b/packages/inferno/src/DOM/props.ts @@ -181,7 +181,7 @@ export function patchProp( if ( prop === 'href' && isString(nextValue) && - nextValue.indexOf('javascript:') === 0 + nextValue.startsWith('javascript:') ) { warning( 'Rendering links with javascript: URLs is not recommended. Use event handlers instead if you can. Inferno was passed "' + diff --git a/packages/inferno/src/index.ts b/packages/inferno/src/index.ts index f7b2599a3..c0bc4fea0 100644 --- a/packages/inferno/src/index.ts +++ b/packages/inferno/src/index.ts @@ -49,7 +49,7 @@ if (process.env.NODE_ENV !== 'production') { console.log('Inferno is in development mode.'); // eslint-disable-next-line - if (!testingEnv && ((testFunc as Function).name || testFunc.toString()).indexOf('testFn') === -1) { + if (!testingEnv && !((testFunc as Function).name || testFunc.toString()).includes('testFn')) { warning( "It looks like you're using a minified copy of the development build " + 'of Inferno. When deploying Inferno apps to production, make sure to use ' +