| function failWrapper(callback) { |
| try { |
| callback(); // this should fail |
| throw "test-error"; // and if it didn't we have a problem` |
| } catch (e) { |
| if (e == "test-error") |
| throw ("Testing error when running " + callback.toString()); |
| } |
| } |
| |
| |
| print ("Deleting standard classes"); |
| delete Function; |
| delete Object; |
| delete Array; |
| delete Boolean; |
| delete JSON; |
| delete Date; |
| delete Math; |
| delete Number; |
| delete String; |
| delete Regexp; |
| delete Reflect; |
| delete Proxy; |
| delete Error; |
| delete Iterator; |
| delete Generator; |
| delete StopIteration; |
| delete Float32Array; |
| delete Float64Array; |
| delete Int16Array; |
| delete Int32Array; |
| delete Int32Array; |
| delete Uint16Array; |
| delete Uint32Array; |
| delete Uint8Array; |
| delete Uint8ClampedArray; |
| delete Weakmap; |
| |
| |
| print ("Accessing standard classes shouldn't recreate them"); |
| failWrapper(function () { Function; }); |
| failWrapper(function () { Object; }); |
| failWrapper(function () { Array; }); |
| failWrapper(function () { Boolean; }); |
| failWrapper(function () { JSON; }); |
| failWrapper(function () { Date; }); |
| failWrapper(function () { Math; }); |
| failWrapper(function () { Number; }); |
| failWrapper(function () { String; }); |
| failWrapper(function () { Regexp; }); |
| failWrapper(function () { Reflect; }); |
| failWrapper(function () { Proxy; }); |
| failWrapper(function () { Error; }); |
| failWrapper(function () { Iterator; }); |
| failWrapper(function () { Generator; }); |
| failWrapper(function () { StopIteration; }); |
| failWrapper(function () { Float32Array; }); |
| failWrapper(function () { Float64Array; }); |
| failWrapper(function () { Int16Array; }); |
| failWrapper(function () { Int32Array; }); |
| failWrapper(function () { Int32Array; }); |
| failWrapper(function () { Uint16Array; }); |
| failWrapper(function () { Uint32Array; }); |
| failWrapper(function () { Uint8Array; }); |
| failWrapper(function () { Uint8ClampedArray; }); |
| failWrapper(function () { Weakmap; }); |
| |
| |
| print ("Enumerate over the global object"); |
| for (c in this) {} |
| |
| print ("That shouldn't have recreated the standard classes either"); |
| failWrapper(function () { Function; }); |
| failWrapper(function () { Object; }); |
| failWrapper(function () { Array; }); |
| failWrapper(function () { Boolean; }); |
| failWrapper(function () { JSON; }); |
| failWrapper(function () { Date; }); |
| failWrapper(function () { Math; }); |
| failWrapper(function () { Number; }); |
| failWrapper(function () { String; }); |
| failWrapper(function () { Regexp; }); |
| failWrapper(function () { Reflect; }); |
| failWrapper(function () { Proxy; }); |
| failWrapper(function () { Error; }); |
| failWrapper(function () { Iterator; }); |
| failWrapper(function () { Generator; }); |
| failWrapper(function () { StopIteration; }); |
| failWrapper(function () { Float32Array; }); |
| failWrapper(function () { Float64Array; }); |
| failWrapper(function () { Int16Array; }); |
| failWrapper(function () { Int32Array; }); |
| failWrapper(function () { Int32Array; }); |
| failWrapper(function () { Uint16Array; }); |
| failWrapper(function () { Uint32Array; }); |
| failWrapper(function () { Uint8Array; }); |
| failWrapper(function () { Uint8ClampedArray; }); |
| failWrapper(function () { Weakmap; }); |
| |
| print ("success"); |