expect(loc2.end.offset).toBe(4)
})
- test('at end', () => {
- const loc2 = getInnerRange(loc1, 4)
- expect(loc2.start.column).toBe(1)
- expect(loc2.start.line).toBe(2)
- expect(loc2.start.offset).toBe(4)
- expect(loc2.end).toEqual(loc1.end)
- })
-
test('in between', () => {
const loc2 = getInnerRange(loc1, 4, 3)
expect(loc2.start.column).toBe(1)
context,
ErrorCodes.X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END
)
- content = content.substr(1)
+ content = content.slice(1)
} else {
- content = content.substr(1, content.length - 2)
+ content = content.slice(1, content.length - 1)
}
} else if (isSlot) {
// #1241 special case for v-slot: vuetify relies extensively on slot
valueLoc.source = valueLoc.source.slice(1, -1)
}
- const modifiers = match[3] ? match[3].substr(1).split('.') : []
+ const modifiers = match[3] ? match[3].slice(1).split('.') : []
if (isPropShorthand) modifiers.push('prop')
// 2.x compat v-bind:foo.sync -> v-model:foo
function startsWithEndTagOpen(source: string, tag: string): boolean {
return (
startsWith(source, '</') &&
- source.substr(2, tag.length).toLowerCase() === tag.toLowerCase() &&
+ source.slice(2, 2 + tag.length).toLowerCase() === tag.toLowerCase() &&
/[\t\r\n\f />]/.test(source[2 + tag.length] || '>')
)
}
export function getInnerRange(
loc: SourceLocation,
offset: number,
- length?: number
+ length: number
): SourceLocation {
__TEST__ && assert(offset <= loc.source.length)
- const source = loc.source.substr(offset, length)
+ const source = loc.source.slice(offset, offset + length)
const newLoc: SourceLocation = {
source,
start: advancePositionWithClone(loc.start, loc.source, offset),
)
}
for (let length = maxCRNameLength; !value && length > 0; --length) {
- name = rawText.substr(1, length)
+ name = rawText.slice(1, 1 + length)
value = (namedCharacterReferences as Record<string, string>)[name]
}
if (value) {
const ReplStore: any
export { Repl, ReplStore }
}
+
+declare interface String {
+ /**
+ * @deprecated Please use String.prototype.slice instead of String.prototype.substring in the repository.
+ */
+ substring(start: number, end?: number): string;
+}
)
const releases: any[] = await res.json()
const versions = releases.map(r =>
- /^v/.test(r.tag_name) ? r.tag_name.substr(1) : r.tag_name
+ /^v/.test(r.tag_name) ? r.tag_name.slice(1) : r.tag_name
)
// if the latest version is a pre-release, list all current pre-releases
// otherwise filter out pre-releases
}
if (lastIndex !== index) {
- html += str.substring(lastIndex, index)
+ html += str.slice(lastIndex, index)
}
lastIndex = index + 1
html += escaped
}
- return lastIndex !== index ? html + str.substring(lastIndex, index) : html
+ return lastIndex !== index ? html + str.slice(lastIndex, index) : html
}
// https://www.w3.org/TR/html52/syntax.html#comments