diff --git a/Knowledge-JScript-Enumerator.md b/Knowledge-JScript-Enumerator.md new file mode 100644 index 0000000..c42b090 --- /dev/null +++ b/Knowledge-JScript-Enumerator.md @@ -0,0 +1,35 @@ +## Knowledge/JScript Enumerator + +### Convert MS JScript Enumerator to the standard JS Object + +``` +// MS JScript Enumerator to Array +if (!Enumerator.prototype.toArray) { + Enumerator.prototype.toArray = function() { + var a = []; + for (; !this.atEnd(); this.moveNext()) { + var x = {}; + var b = new Enumerator(this.item().Properties_); + for (; !b.atEnd(); b.moveNext()) { + var c = b.item(); + if (typeof c.value !== "unknown") { + x[c.name] = c.value; + } else { + var i = 0, d = []; + while (true) { + try { + d.push(c.value(i)); + i++; + } catch (e) { + break; + } + } + x[c.name] = d; + } + } + a.push(x); + } + return a; + }; +} +``` \ No newline at end of file