“use strict”;
const HTMLElementImpl = require(“./HTMLElement-impl”).implementation; const idlUtils = require(“../generated/utils”);
const closest = require(“../helpers/traversal”).closest; const createDOMTokenList = require(“../dom-token-list”).create; const resetDOMTokenList = require(“../dom-token-list”).reset;
class HTMLTableCellImpl extends HTMLElementImpl {
get headers() { if (this._headers === undefined) { this._headers = createDOMTokenList(this, "headers"); } return this._headers; } get cellIndex() { const tr = closest(this, "tr"); if (tr === null) { return -1; } return Array.prototype.indexOf.call(tr.cells, idlUtils.wrapperForImpl(this)); } get colSpan() { const value = this.getAttribute("colspan"); return value === null ? 1 : value; } set colSpan(V) { this.setAttribute("colspan", String(V)); } get rowSpan() { const value = this.getAttribute("rowspan"); return value === null ? 1 : value; } set rowSpan(V) { this.setAttribute("rowspan", String(V)); } _attrModified(name, value, oldValue) { if (name === "headers" && this._headers) { resetDOMTokenList(this._headers, value); } super._attrModified(name, value, oldValue); }
}
module.exports = {
implementation: HTMLTableCellImpl
};