Update std.js

This commit is contained in:
Namhyeon Go 2022-02-08 18:13:10 +09:00 committed by GitHub
parent 3b157000f1
commit 0f5b25c5aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,6 +10,7 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
// Polyfills // Polyfills
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
if (!Function.prototype.GetResource) { if (!Function.prototype.GetResource) {
Function.prototype.GetResource = function(ResourceName) { Function.prototype.GetResource = function(ResourceName) {
if (!this.Resources) { if (!this.Resources) {
@ -27,16 +28,37 @@ if (!Function.prototype.GetResource) {
} }
} }
// MS JScript Enumerator to Array
if (!Enumerator.prototype.toArray) { if (!Enumerator.prototype.toArray) {
Enumerator.prototype.toArray = function() { Enumerator.prototype.toArray = function() {
var items = []; var a = [];
for (; !this.atEnd(); this.moveNext()) { for (; !this.atEnd(); this.moveNext()) {
var item = this.item(); var x = {};
var b = new Enumerator(this.item().Properties_);
for (; !b.atEnd(); b.moveNext()) {
var c = b.item();
if (typeof c.value !== "unknown") {
try { try {
items.push(item); x[c.name] = c.value.toString();
} catch (e) {} } catch (e) {
x[c.name] = c.value;
} }
return items; } 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;
}; };
} }
@ -189,7 +211,7 @@ var StdEventableObject = function() {
}; };
}; };
exports.VERSIONINFO = "Standard Lib (std.js) version 0.3"; exports.VERSIONINFO = "Standard Lib (std.js) version 0.4";
exports.global = global; exports.global = global;
exports.require = global.require; exports.require = global.require;