Remove indexOf & textContent polyfill for IE 8 (#1645)

* Remove indexOf polyfill for IE 8

* Remove textContent polyfill for IE 8
This commit is contained in:
ylemkimon
2018-08-21 08:53:45 +09:00
committed by Kevin Barabash
parent f70222769b
commit 96310815c5
3 changed files with 4 additions and 55 deletions

View File

@@ -22,7 +22,6 @@ import {
PathNode, PathNode,
LineNode, LineNode,
} from "./src/domTree"; } from "./src/domTree";
import utils from "./src/utils";
import type {SettingsOptions} from "./src/Settings"; import type {SettingsOptions} from "./src/Settings";
import type {AnyParseNode} from "./src/parseNode"; import type {AnyParseNode} from "./src/parseNode";
@@ -42,7 +41,7 @@ let render = function(
baseNode: Node, baseNode: Node,
options: SettingsOptions, options: SettingsOptions,
) { ) {
utils.clearNode(baseNode); baseNode.textContent = "";
const node = renderToDomTree(expression, options).toNode(); const node = renderToDomTree(expression, options).toNode();
baseNode.appendChild(node); baseNode.appendChild(node);
}; };

View File

@@ -2,7 +2,6 @@
import buildCommon from "../buildCommon"; import buildCommon from "../buildCommon";
import defineFunction from "../defineFunction"; import defineFunction from "../defineFunction";
import mathMLTree from "../mathMLTree"; import mathMLTree from "../mathMLTree";
import utils from "../utils";
import * as html from "../buildHTML"; import * as html from "../buildHTML";
import * as mml from "../buildMathML"; import * as mml from "../buildMathML";
@@ -23,7 +22,7 @@ export function sizingGroup(
// Add size-resetting classes to the inner list and set maxFontSize // Add size-resetting classes to the inner list and set maxFontSize
// manually. Handle nested size changes. // manually. Handle nested size changes.
for (let i = 0; i < inner.length; i++) { for (let i = 0; i < inner.length; i++) {
const pos = utils.indexOf(inner[i].classes, "sizing"); const pos = inner[i].classes.indexOf("sizing");
if (pos < 0) { if (pos < 0) {
Array.prototype.push.apply(inner[i].classes, Array.prototype.push.apply(inner[i].classes,
options.sizingClasses(baseOptions)); options.sizingClasses(baseOptions));
@@ -69,7 +68,7 @@ defineFunction({
type: "sizing", type: "sizing",
mode: parser.mode, mode: parser.mode,
// Figure out what size to use based on the list of functions above // Figure out what size to use based on the list of functions above
size: utils.indexOf(sizeFuncs, funcName) + 1, size: sizeFuncs.indexOf(funcName) + 1,
body, body,
}; };
}, },

View File

@@ -6,32 +6,11 @@
import type {AnyParseNode} from "./parseNode"; import type {AnyParseNode} from "./parseNode";
/**
* Provide an `indexOf` function which works in IE8, but defers to native if
* possible.
*/
const nativeIndexOf = Array.prototype.indexOf;
const indexOf = function<T>(list: Array<T>, elem: T): number {
if (list == null) {
return -1;
}
if (nativeIndexOf && list.indexOf === nativeIndexOf) {
return list.indexOf(elem);
}
const l = list.length;
for (let i = 0; i < l; i++) {
if (list[i] === elem) {
return i;
}
}
return -1;
};
/** /**
* Return whether an element is contained in a list * Return whether an element is contained in a list
*/ */
const contains = function<T>(list: Array<T>, elem: T): boolean { const contains = function<T>(list: Array<T>, elem: T): boolean {
return indexOf(list, elem) !== -1; return list.indexOf(elem) !== -1;
}; };
/** /**
@@ -66,31 +45,6 @@ function escape(text: mixed): string {
return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]); return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);
} }
/**
* A function to set the text content of a DOM element in all supported
* browsers. Note that we don't define this if there is no document.
*/
let setTextContent;
if (typeof document !== "undefined") {
const testNode = document.createElement("span");
if ("textContent" in testNode) {
setTextContent = function(node: Node, text: string) {
node.textContent = text;
};
} else {
setTextContent = function(node: Node, text: string) {
node.innerText = text;
};
}
}
/**
* A function to clear a node.
*/
function clearNode(node: Node) {
setTextContent(node, "");
}
/** /**
* Sometimes we want to pull out the innermost element of a group. In most * Sometimes we want to pull out the innermost element of a group. In most
* cases, this will just be the group itself, but when ordgroups and colors have * cases, this will just be the group itself, but when ordgroups and colors have
@@ -154,9 +108,6 @@ export default {
deflt, deflt,
escape, escape,
hyphenate, hyphenate,
indexOf,
setTextContent,
clearNode,
getBaseElem, getBaseElem,
isCharacterBox, isCharacterBox,
}; };