|
|
@@ -2,6 +2,130 @@ import { createSSRApp } from 'vue'
|
|
|
import App from './App.vue'
|
|
|
import VConsole from 'vconsole'
|
|
|
|
|
|
+// Polyfill for String.prototype.startsWith (for older browsers)
|
|
|
+if (!String.prototype.startsWith) {
|
|
|
+ String.prototype.startsWith = function(search, pos) {
|
|
|
+ pos = !pos || pos < 0 ? 0 : +pos
|
|
|
+ return this.substring(pos, pos + search.length) === search
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Polyfill for String.prototype.endsWith (for older browsers)
|
|
|
+if (!String.prototype.endsWith) {
|
|
|
+ String.prototype.endsWith = function(search, this_len) {
|
|
|
+ if (this_len === undefined || this_len > this.length) {
|
|
|
+ this_len = this.length
|
|
|
+ }
|
|
|
+ return this.substring(this_len - search.length, this_len) === search
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Polyfill for String.prototype.includes (for older browsers)
|
|
|
+if (!String.prototype.includes) {
|
|
|
+ String.prototype.includes = function(search, start) {
|
|
|
+ if (typeof start !== 'number') {
|
|
|
+ start = 0
|
|
|
+ }
|
|
|
+ if (start + search.length > this.length) {
|
|
|
+ return false
|
|
|
+ } else {
|
|
|
+ return this.indexOf(search, start) !== -1
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Polyfill for Array.prototype.includes (for older browsers)
|
|
|
+if (!Array.prototype.includes) {
|
|
|
+ Array.prototype.includes = function(searchElement, fromIndex) {
|
|
|
+ if (this == null) {
|
|
|
+ throw new TypeError('"this" is null or not defined')
|
|
|
+ }
|
|
|
+ var o = Object(this)
|
|
|
+ var len = o.length >>> 0
|
|
|
+ if (len === 0) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ var n = fromIndex | 0
|
|
|
+ var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)
|
|
|
+ while (k < len) {
|
|
|
+ if (o[k] === searchElement) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ k++
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Polyfill for String.prototype.repeat (for older browsers)
|
|
|
+if (!String.prototype.repeat) {
|
|
|
+ String.prototype.repeat = function(count) {
|
|
|
+ if (this == null) {
|
|
|
+ throw new TypeError("can't convert " + this + ' to object')
|
|
|
+ }
|
|
|
+ var str = '' + this
|
|
|
+ count = +count
|
|
|
+ if (count != count) {
|
|
|
+ count = 0
|
|
|
+ }
|
|
|
+ if (count < 0) {
|
|
|
+ throw new RangeError('repeat count must be non-negative')
|
|
|
+ }
|
|
|
+ if (count == Infinity) {
|
|
|
+ throw new RangeError('repeat count must be less than infinity')
|
|
|
+ }
|
|
|
+ count = Math.floor(count)
|
|
|
+ if (str.length == 0 || count == 0) {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ if (str.length * count >= 1 << 28) {
|
|
|
+ throw new RangeError('repeat count must not overflow maximum string size')
|
|
|
+ }
|
|
|
+ var maxCount = str.length * count
|
|
|
+ count = Math.floor(Math.log(count) / Math.log(2))
|
|
|
+ while (count) {
|
|
|
+ str += str
|
|
|
+ count--
|
|
|
+ }
|
|
|
+ str += str.substring(0, maxCount - str.length)
|
|
|
+ return str
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Polyfill for String.prototype.padStart (for older browsers)
|
|
|
+if (!String.prototype.padStart) {
|
|
|
+ String.prototype.padStart = function padStart(targetLength, padString) {
|
|
|
+ targetLength = targetLength >> 0
|
|
|
+ padString = String(typeof padString !== 'undefined' ? padString : ' ')
|
|
|
+ if (this.length >= targetLength) {
|
|
|
+ return String(this)
|
|
|
+ } else {
|
|
|
+ targetLength = targetLength - this.length
|
|
|
+ if (targetLength > padString.length) {
|
|
|
+ padString += padString.repeat(targetLength / padString.length)
|
|
|
+ }
|
|
|
+ return padString.slice(0, targetLength) + String(this)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Polyfill for String.prototype.padEnd (for older browsers)
|
|
|
+if (!String.prototype.padEnd) {
|
|
|
+ String.prototype.padEnd = function padEnd(targetLength, padString) {
|
|
|
+ targetLength = targetLength >> 0
|
|
|
+ padString = String(typeof padString !== 'undefined' ? padString : ' ')
|
|
|
+ if (this.length >= targetLength) {
|
|
|
+ return String(this)
|
|
|
+ } else {
|
|
|
+ targetLength = targetLength - this.length
|
|
|
+ if (targetLength > padString.length) {
|
|
|
+ padString += padString.repeat(targetLength / padString.length)
|
|
|
+ }
|
|
|
+ return String(this) + padString.slice(0, targetLength)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 初始化vConsole用于移动端调试
|
|
|
// #ifdef H5
|
|
|
new VConsole()
|