diff --git a/packages/assets/path-support.js b/packages/assets/path-support.js index a6c30d42375a55..f0a85af33ff98d 100644 --- a/packages/assets/path-support.js +++ b/packages/assets/path-support.js @@ -82,7 +82,7 @@ function getAndroidResourceIdentifier(asset: PackagerAsset): string { function getBasePath(asset: PackagerAsset): string { const basePath = asset.httpServerLocation; - return basePath.startsWith('/') ? basePath.substr(1) : basePath; + return basePath.startsWith('/') ? basePath.slice(1) : basePath; } module.exports = { diff --git a/packages/hermes-inspector-msggen/src/Converters.js b/packages/hermes-inspector-msggen/src/Converters.js index 8061ef1a41aa24..aa5dbf86552cb6 100644 --- a/packages/hermes-inspector-msggen/src/Converters.js +++ b/packages/hermes-inspector-msggen/src/Converters.js @@ -9,11 +9,11 @@ */ export function toCppNamespace(domain: string): string { - return domain.substr(0, 1).toLowerCase() + domain.substr(1); + return domain.slice(0, 1).toLowerCase() + domain.slice(1); } export function toCppType(type: string): string { - return type.substr(0, 1).toUpperCase() + type.substr(1); + return type.slice(0, 1).toUpperCase() + type.slice(1); } export type JsTypeString = diff --git a/packages/hermes-inspector-msggen/src/Property.js b/packages/hermes-inspector-msggen/src/Property.js index d50df01f50327f..fdad9bc6f7b306 100644 --- a/packages/hermes-inspector-msggen/src/Property.js +++ b/packages/hermes-inspector-msggen/src/Property.js @@ -114,8 +114,8 @@ function toDomainAndId( domain = curDomain; id = absOrRelRef; } else { - domain = absOrRelRef.substr(0, i); - id = absOrRelRef.substr(i + 1); + domain = absOrRelRef.slice(0, i); + id = absOrRelRef.slice(i + 1); } return [domain, id]; diff --git a/packages/polyfills/console.js b/packages/polyfills/console.js index e843f4f74caa3c..338e1590cb3bc7 100644 --- a/packages/polyfills/console.js +++ b/packages/polyfills/console.js @@ -252,7 +252,7 @@ const inspect = (function () { return ' ' + line; }) .join('\n') - .substr(2); + .slice(2); } else { str = '\n' + @@ -274,7 +274,7 @@ const inspect = (function () { } name = JSON.stringify('' + key); if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); + name = name.slice(1, name.length - 1); name = ctx.stylize(name, 'name'); } else { name = name diff --git a/packages/react-native/Libraries/DOM/Nodes/ReadOnlyCharacterData.js b/packages/react-native/Libraries/DOM/Nodes/ReadOnlyCharacterData.js index 6f3fb0f4ad7b96..6c9f87b43200b1 100644 --- a/packages/react-native/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +++ b/packages/react-native/Libraries/DOM/Nodes/ReadOnlyCharacterData.js @@ -67,6 +67,6 @@ export default class ReadOnlyCharacterData extends ReadOnlyNode { ); } let adjustedCount = count < 0 || count > data.length ? data.length : count; - return data.substr(offset, adjustedCount); + return data.slice(offset, offset + adjustedCount); } } diff --git a/packages/react-native/Libraries/Inspector/NetworkOverlay.js b/packages/react-native/Libraries/Inspector/NetworkOverlay.js index cedb60d2bce432..1e4d63f27fd9d2 100644 --- a/packages/react-native/Libraries/Inspector/NetworkOverlay.js +++ b/packages/react-native/Libraries/Inspector/NetworkOverlay.js @@ -64,7 +64,7 @@ function getStringByValue(value: any): string { } if (typeof value === 'string' && value.length > 500) { return String(value) - .substr(0, 500) + .slice(0, 500) .concat('\n***TRUNCATED TO 500 CHARACTERS***'); } return value; diff --git a/packages/react-native/Libraries/LogBox/UI/AnsiHighlight.js b/packages/react-native/Libraries/LogBox/UI/AnsiHighlight.js index 5c90992058be00..3378e7a3c9cd66 100644 --- a/packages/react-native/Libraries/LogBox/UI/AnsiHighlight.js +++ b/packages/react-native/Libraries/LogBox/UI/AnsiHighlight.js @@ -73,7 +73,7 @@ export default function Ansi({ return content.replace(/\| $/, ' '); } else if (key === 2 && commonWhitespaceLength < Infinity) { // Remove common whitespace at the beginning of the line - return content.substr(commonWhitespaceLength); + return content.slice(commonWhitespaceLength); } else { return content; } diff --git a/packages/react-native/Libraries/LogBox/UI/LogBoxMessage.js b/packages/react-native/Libraries/LogBox/UI/LogBoxMessage.js index 805b47efec8987..096960c0e68cf9 100644 --- a/packages/react-native/Libraries/LogBox/UI/LogBoxMessage.js +++ b/packages/react-native/Libraries/LogBox/UI/LogBoxMessage.js @@ -138,17 +138,14 @@ function LogBoxMessage(props: Props): React.Node { const key = String(index); if (substitution.offset > prevOffset) { - const prevPart = content.substr( - prevOffset, - substitution.offset - prevOffset, - ); + const prevPart = content.slice(prevOffset, substitution.offset); createUnderLength(key, prevPart); } - const substitutionPart = content.substr( + const substitutionPart = content.slice( substitution.offset, - substitution.length, + substitution.offset + substitution.length, ); createUnderLength(key + '.5', substitutionPart, substitutionStyle); @@ -156,7 +153,7 @@ function LogBoxMessage(props: Props): React.Node { }, 0); if (lastOffset < content.length) { - const lastPart = content.substr(lastOffset); + const lastPart = content.slice(lastOffset); createUnderLength('-1', lastPart); } diff --git a/packages/react-native/Libraries/Utilities/PolyfillFunctions.js b/packages/react-native/Libraries/Utilities/PolyfillFunctions.js index 61c6d8b8d491ac..09ae9658f7b561 100644 --- a/packages/react-native/Libraries/Utilities/PolyfillFunctions.js +++ b/packages/react-native/Libraries/Utilities/PolyfillFunctions.js @@ -32,7 +32,7 @@ function polyfillObjectProperty( ): void { const descriptor = Object.getOwnPropertyDescriptor<$FlowFixMe>(object, name); if (__DEV__ && descriptor) { - const backupName = `original${name[0].toUpperCase()}${name.substr(1)}`; + const backupName = `original${name[0].toUpperCase()}${name.slice(1)}`; Object.defineProperty(object, backupName, descriptor); } diff --git a/packages/react-native/ReactAndroid/src/androidTest/js/TextInputTestModule.js b/packages/react-native/ReactAndroid/src/androidTest/js/TextInputTestModule.js index 68155efa64de45..321b1aea209b2c 100644 --- a/packages/react-native/ReactAndroid/src/androidTest/js/TextInputTestModule.js +++ b/packages/react-native/ReactAndroid/src/androidTest/js/TextInputTestModule.js @@ -47,7 +47,7 @@ class TokenizedTextExample extends React.Component { if (token[0].length === 0) { index = 1; } - parts.push(_text.substr(0, index)); + parts.push(_text.slice(0, index)); parts.push(token[0]); index = index + token[0].length; _text = _text.slice(index); diff --git a/packages/rn-tester/js/components/ListExampleShared.js b/packages/rn-tester/js/components/ListExampleShared.js index cbe749a83c9dc8..32ddc5633f39c3 100644 --- a/packages/rn-tester/js/components/ListExampleShared.js +++ b/packages/rn-tester/js/components/ListExampleShared.js @@ -38,7 +38,7 @@ function genItemData(i: number): Item { const itemHash = Math.abs(hashCode('Item ' + i)); return { title: 'Item ' + i, - text: LOREM_IPSUM.substr(0, (itemHash % 301) + 20), + text: LOREM_IPSUM.slice(0, (itemHash % 301) + 20), key: String(i), pressed: false, }; diff --git a/packages/rn-tester/js/examples/TextInput/TextInputSharedExamples.js b/packages/rn-tester/js/examples/TextInput/TextInputSharedExamples.js index 353379409ffe6a..c05948b0639800 100644 --- a/packages/rn-tester/js/examples/TextInput/TextInputSharedExamples.js +++ b/packages/rn-tester/js/examples/TextInput/TextInputSharedExamples.js @@ -438,7 +438,7 @@ class TokenizedTextExample extends React.Component< if (token[0].length === 0) { index = 1; } - parts.push(_text.substr(0, index)); + parts.push(_text.slice(0, index)); parts.push(token[0]); index = index + token[0].length; _text = _text.slice(index); diff --git a/tools/eslint/rules/valid-flow-typed-signature.js b/tools/eslint/rules/valid-flow-typed-signature.js index c90ed5bbef663f..76ba9d10ed7872 100644 --- a/tools/eslint/rules/valid-flow-typed-signature.js +++ b/tools/eslint/rules/valid-flow-typed-signature.js @@ -34,7 +34,7 @@ module.exports = { const sourceText = context.getSourceCode().getText(); const firstLineEndIndex = sourceText.indexOf('\n'); - const firstLine = sourceText.substr(0, firstLineEndIndex); + const firstLine = sourceText.slice(0, firstLineEndIndex); const match = firstLine.match(HASH_COMMENT_RE); if (match == null) { @@ -43,7 +43,7 @@ module.exports = { } const hash = match[1]; - const versionedCode = sourceText.substr(firstLineEndIndex + 1); + const versionedCode = sourceText.slice(firstLineEndIndex + 1); if (md5(versionedCode) === hash) { return; }