diff --git a/js/core/webidl-oldschool.js b/js/core/webidl-oldschool.js index 0aa70d176a..96bdb6eadf 100644 --- a/js/core/webidl-oldschool.js +++ b/js/core/webidl-oldschool.js @@ -619,7 +619,8 @@ define( var $pre = $("
").attr(attr); $pre.html(this.writeAsWebIDL(this.parent, -1)); $df.append($pre); - $df.append(this.writeAsHTML(this.parent)); + if (!this.conf.noLegacyStyle) $df.append(this.writeAsHTML(this.parent)); + this.mergeWebIDL(this.parent.children[0]); return $df.children(); }, @@ -1025,18 +1026,6 @@ define( var desc = sn.element("p", {}, div, [it.description]); } } - if (typeof obj.merge !== "undefined" && obj.merge.length > 0) { - // hackish: delay the execution until the DOM has been initialized, then merge - setTimeout(function () { - for (var i = 0; i < obj.merge.length; i++) { - var idlInterface = document.querySelector("#idl-def-" + obj.refId), - idlDictionary = document.querySelector("#idl-def-" + obj.merge[i]); - idlDictionary.parentNode.parentNode.removeChild(idlDictionary.parentNode); - idlInterface.appendChild(document.createElement("br")); - idlInterface.appendChild(idlDictionary); - } - }, 0); - } return df; } }, @@ -1052,6 +1041,21 @@ define( return sanitiseID(id); }, + mergeWebIDL: function (obj) { + if (typeof obj.merge === "undefined" || obj.merge.length === 0) return; + // queue for later execution + setTimeout(function () { + for (var i = 0; i < obj.merge.length; i++) { + var idlInterface = document.querySelector("#idl-def-" + obj.refId) + , idlInterfaceToMerge = document.querySelector("#idl-def-" + obj.merge[i]); + idlInterface.insertBefore(document.createElement("br"), idlInterface.firstChild); + idlInterface.insertBefore(document.createElement("br"), idlInterface.firstChild); + idlInterfaceToMerge.parentNode.parentNode.removeChild(idlInterfaceToMerge.parentNode); + idlInterface.insertBefore(idlInterfaceToMerge, idlInterface.firstChild); + } + }, 0); + }, + writeAsWebIDL: function (obj, indent) { indent++; var opt = { indent: indent, obj: obj, proc: this };