mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-06-13 13:04:03 +00:00
70 lines
2.6 KiB
JavaScript
70 lines
2.6 KiB
JavaScript
|
function mathPolyfills() {
|
||
|
// Converts from degrees to radians.
|
||
|
Math.radians = function (degrees) {
|
||
|
return (degrees * Math_PI) / 180.0;
|
||
|
};
|
||
|
|
||
|
// Converts from radians to degrees.
|
||
|
Math.degrees = function (radians) {
|
||
|
return (radians * 180.0) / Math_PI;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function stringPolyfills() {
|
||
|
// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
|
||
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
|
||
|
if (!String.prototype.padStart) {
|
||
|
String.prototype.padStart = function padStart(targetLength, padString) {
|
||
|
targetLength = targetLength >> 0; //truncate if number, or convert non-number to 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); //append to original to ensure we are longer than needed
|
||
|
}
|
||
|
return padString.slice(0, targetLength) + String(this);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
|
||
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd
|
||
|
if (!String.prototype.padEnd) {
|
||
|
String.prototype.padEnd = function padEnd(targetLength, padString) {
|
||
|
targetLength = targetLength >> 0; //floor if number or convert non-number to 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); //append to original to ensure we are longer than needed
|
||
|
}
|
||
|
return String(this) + padString.slice(0, targetLength);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function initPolyfills() {
|
||
|
mathPolyfills();
|
||
|
stringPolyfills();
|
||
|
}
|
||
|
|
||
|
function initExtensions() {
|
||
|
String.prototype.replaceAll = function (search, replacement) {
|
||
|
var target = this;
|
||
|
return target.split(search).join(replacement);
|
||
|
};
|
||
|
}
|
||
|
|
||
|
// Fetch polyfill
|
||
|
import "whatwg-fetch";
|
||
|
import { Math_PI } from "./builtins";
|
||
|
|
||
|
// Other polyfills
|
||
|
initPolyfills();
|
||
|
initExtensions();
|