Remove print calls in sm/extensions

This commit is contained in:
André Bargull 2025-04-30 14:16:01 +02:00 committed by Philip Chimento
parent 7a02a50975
commit 2181096f22
49 changed files with 64 additions and 716 deletions

View File

@ -8,21 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending ArrayBuffer.prototype.slice shouldn't misbehave horribly if index-argument conversion detaches the ArrayBuffer being sliced
esid: pending esid: pending
---*/ ---*/
var gTestfile = "ArrayBuffer-slice-arguments-detaching.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 991981;
var summary =
"ArrayBuffer.prototype.slice shouldn't misbehave horribly if " +
"index-argument conversion detaches the ArrayBuffer being sliced";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function testStart() function testStart()
{ {
@ -79,7 +67,3 @@ function testEnd()
assert.sameValue(ab.byteLength, 0, "detaching should work for byteLength weirdness"); assert.sameValue(ab.byteLength, 0, "detaching should work for byteLength weirdness");
} }
testEnd(); testEnd();
/******************************************************************************/
print("Tests complete");

View File

@ -8,21 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending new DataView(...) shouldn't misbehave horribly if index-argument conversion detaches the ArrayBuffer to be viewed
esid: pending esid: pending
---*/ ---*/
var gTestfile = "DataView-construct-arguments-detaching.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 991981;
var summary =
"new DataView(...) shouldn't misbehave horribly if index-argument " +
"conversion detaches the ArrayBuffer to be viewed";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function testByteOffset() function testByteOffset()
{ {
@ -79,7 +67,3 @@ function testByteLength()
assert.sameValue(ab.byteLength, 0, "detaching should work for byteLength weirdness"); assert.sameValue(ab.byteLength, 0, "detaching should work for byteLength weirdness");
} }
testByteLength(); testByteLength();
/******************************************************************************/
print("Tests complete");

View File

@ -8,21 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending DataView.prototype.set* methods shouldn't misbehave horribly if index-argument conversion detaches the ArrayBuffer being modified
esid: pending esid: pending
---*/ ---*/
var gTestfile = "DataView-set-arguments-detaching.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 991981;
var summary =
"DataView.prototype.set* methods shouldn't misbehave horribly if " +
"index-argument conversion detaches the ArrayBuffer being modified";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function testIndex() function testIndex()
{ {
@ -83,7 +71,3 @@ function testValue()
assert.sameValue(ab.byteLength, 0, "should have been detached correctly"); assert.sameValue(ab.byteLength, 0, "should have been detached correctly");
} }
testValue(); testValue();
/******************************************************************************/
print("Tests complete");

View File

@ -6,13 +6,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending String.prototype.match with non-string non-standard flags argument.
esid: pending esid: pending
---*/ ---*/
var BUGNUMBER = 1263139;
var summary = "String.prototype.match with non-string non-standard flags argument.";
print(BUGNUMBER + ": " + summary);
var called; var called;
var flags = { var flags = {
@ -33,4 +29,3 @@ assert.sameValue(called, false);
called = false; called = false;
"a".replace("a", "b", flags); "a".replace("a", "b", flags);
assert.sameValue(called, false); assert.sameValue(called, false);

View File

@ -8,22 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending %TypedArray%.prototype.set(object w/funky length property, offset) shouldn't misbehave if the funky length property detaches this typed array's buffer
esid: pending esid: pending
---*/ ---*/
var gTestfile = "set-object-funky-length-detaches.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 991981;
var summary =
"%TypedArray%.prototype.set(object w/funky length property, offset) " +
"shouldn't misbehave if the funky length property detaches this typed " +
"array's buffer";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var ctors = [Int8Array, Uint8Array, Uint8ClampedArray, var ctors = [Int8Array, Uint8Array, Uint8ClampedArray,
Int16Array, Uint16Array, Int16Array, Uint16Array,
@ -54,7 +41,3 @@ ctors.forEach(function(TypedArray) {
ta.set(arraylike, 0x1234); ta.set(arraylike, 0x1234);
}); });
/******************************************************************************/
print("Tests complete");

View File

@ -8,21 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending %TypedArray.prototype.subarray shouldn't misbehave horribly if index-argument conversion detaches the underlying ArrayBuffer
esid: pending esid: pending
---*/ ---*/
var gTestfile = "TypedArray-subarray-arguments-detaching.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 991981;
var summary =
"%TypedArray.prototype.subarray shouldn't misbehave horribly if " +
"index-argument conversion detaches the underlying ArrayBuffer";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function testBegin() function testBegin()
{ {
@ -110,7 +98,3 @@ function testEnd()
assert.sameValue(ab.byteLength, 0, "detaching should work for start weirdness"); assert.sameValue(ab.byteLength, 0, "detaching should work for start weirdness");
} }
testEnd(); testEnd();
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending __proto__ as accessor
esid: pending esid: pending
---*/ ---*/
var gTestfile = '__proto__.js';
var BUGNUMBER = 770344;
var summary = "__proto__ as accessor";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var protoDesc = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__"); var protoDesc = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__");
assert.sameValue(protoDesc !== null, true); assert.sameValue(protoDesc !== null, true);
@ -52,7 +43,3 @@ assert.sameValue(desc.value, 5);
assert.sameValue(desc.writable, true); assert.sameValue(desc.writable, true);
assert.sameValue(desc.enumerable, true); assert.sameValue(desc.enumerable, true);
assert.sameValue(desc.configurable, true); assert.sameValue(desc.configurable, true);
/******************************************************************************/
print("Tests complete");

View File

@ -8,19 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending f.arguments must trigger an arguments object in non-strict mode functions
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 721322;
var summary =
'f.arguments must trigger an arguments object in non-strict mode functions';
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var obj = var obj =
{ {
@ -55,7 +45,3 @@ var sobj =
} }
}; };
sobj.test(5, undefined); sobj.test(5, undefined);
/******************************************************************************/
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending The [[Prototype]] of an object whose prototype chain contains an array isn't that array's [[Prototype]]
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'array-inherited-__proto__.js';
var BUGNUMBER = 769041;
var summary =
"The [[Prototype]] of an object whose prototype chain contains an array " +
"isn't that array's [[Prototype]]";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var arr = []; var arr = [];
assert.sameValue(Array.isArray(arr), true); assert.sameValue(Array.isArray(arr), true);
@ -31,7 +20,3 @@ assert.sameValue(objWithArrPrototype.__proto__, arr);
var objWithArrGrandPrototype = Object.create(objWithArrPrototype); var objWithArrGrandPrototype = Object.create(objWithArrPrototype);
assert.sameValue(!Array.isArray(objWithArrGrandPrototype), true); assert.sameValue(!Array.isArray(objWithArrGrandPrototype), true);
assert.sameValue(objWithArrGrandPrototype.__proto__, objWithArrPrototype); assert.sameValue(objWithArrGrandPrototype.__proto__, objWithArrPrototype);
/******************************************************************************/
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Don't use a shared-permanent inherited property to implement [].length or (function(){}).length
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 548671;
var summary =
"Don't use a shared-permanent inherited property to implement " +
"[].length or (function(){}).length";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var a = [1, 2, 3]; var a = [1, 2, 3];
a.__proto__ = null; a.__proto__ = null;
@ -37,6 +26,3 @@ assert.sameValue(b.hasOwnProperty("length"), true,
b.length = 42; b.length = 42;
assert.sameValue(b.length, 42, "should have mutated b's (own) length"); assert.sameValue(b.length, 42, "should have mutated b's (own) length");
assert.sameValue(a.length, 0, "should not have mutated a's (own) length"); assert.sameValue(a.length, 0, "should not have mutated a's (own) length");
print("All tests passed!");

View File

@ -8,22 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Behavior of [].pop on proxies
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'array-pop-proxy.js';
var BUGNUMBER = 858381;
var summary = "Behavior of [].pop on proxies";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var p = new Proxy([0, 1, 2], {}); var p = new Proxy([0, 1, 2], {});
Array.prototype.pop.call(p); Array.prototype.pop.call(p);
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending ArrayBuffer cannot access properties defined on the prototype chain.
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 665961;
var summary =
"ArrayBuffer cannot access properties defined on the prototype chain.";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
ArrayBuffer.prototype.prop = "on prototype"; ArrayBuffer.prototype.prop = "on prototype";
var b = new ArrayBuffer([]); var b = new ArrayBuffer([]);
@ -34,4 +25,3 @@ assert.sameValue(ArrayBuffer.prototype.prop, "on prototype");
assert.sameValue(new ArrayBuffer([]).prop, "on prototype"); assert.sameValue(new ArrayBuffer([]).prop, "on prototype");
assert.sameValue(c.nonexistent, undefined); assert.sameValue(c.nonexistent, undefined);

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Built-in functions defined in ECMAScript pick up arguments/caller properties from Function.prototype
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'builtin-function-arguments-caller.js';
var BUGNUMBER = 929642;
var summary =
"Built-in functions defined in ECMAScript pick up arguments/caller " +
"properties from Function.prototype";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function expectNoProperty(obj, prop) function expectNoProperty(obj, prop)
{ {
@ -59,7 +48,3 @@ expectNoProperty(callerGet, "arguments");
expectNoProperty(callerGet, "caller"); expectNoProperty(callerGet, "caller");
expectNoProperty(callerSet, "arguments"); expectNoProperty(callerSet, "arguments");
expectNoProperty(callerSet, "caller"); expectNoProperty(callerSet, "caller");
/******************************************************************************/
print("Tests complete");

View File

@ -16,7 +16,3 @@ function nonstrict() { return nonstrict.caller; }
function strict() { "use strict"; return nonstrict(); } function strict() { "use strict"; return nonstrict(); }
assert.sameValue(strict(), null); assert.sameValue(strict(), null);
/******************************************************************************/
print("All tests passed!");

View File

@ -10,20 +10,9 @@ flags:
info: | info: |
needs newGlobal() needs newGlobal()
description: | description: |
pending |var eval = otherWindow.eval; eval(...)| should behave like indirectly calling that eval from a script in that other window
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 608473;
var summary =
'|var eval = otherWindow.eval; eval(...)| should behave like indirectly ' +
'calling that eval from a script in that other window';
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var originalEval = eval; var originalEval = eval;
var res; var res;
@ -46,7 +35,3 @@ res = f();
assert.sameValue(res[0] !== res[1], true); assert.sameValue(res[0] !== res[1], true);
assert.sameValue(res[0], this); assert.sameValue(res[0], this);
assert.sameValue(res[1], otherGlobal); assert.sameValue(res[1], otherGlobal);
/******************************************************************************/
print("All tests passed!");

View File

@ -8,20 +8,13 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending DataView tests
esid: pending esid: pending
---*/ ---*/
//------------------------------------------------------------------------------
var BUGNUMBER = 575688;
var summary = 'DataView tests';
function test(sharedMem) { function test(sharedMem) {
function die(message, uplevel) { function die(message, uplevel) {
var e = new Error(message); throw new Error(message);
var frame = e.stack.split("\n")[uplevel];
print(message + " at " + frame.split("@")[1]);
print("Stack:\n" + e.stack);
throw(e);
} }
function checkThrow(fun, type) { function checkThrow(fun, type) {
@ -39,23 +32,6 @@ function test(sharedMem) {
} }
} }
function checkThrowTODO(fun, type) {
var thrown = false;
try {
fun();
} catch (x) {
thrown = x;
}
if (!thrown) {
print('(TODO) no exception thrown, expected ' + type.name);
} else if (!(thrown instanceof type)) {
print('(TODO) expected ' + type.name + ', got ' + thrown);
} else {
print('test unexpectedly passed: expected ' + type.name + ' exception');
}
}
function bufferize(u8array) { function bufferize(u8array) {
if (!sharedMem) if (!sharedMem)
return u8array.buffer; return u8array.buffer;
@ -1596,10 +1572,7 @@ function test(sharedMem) {
} catch (exc) { } catch (exc) {
e = exc; e = exc;
} }
if (!e) { assert.notSameValue(e, null);
print("==== TODO but PASSED? ====");
print("Bug 753996 unexpectedly passed");
}
// proto is proxy for view of buffer: should throw TypeError // proto is proxy for view of buffer: should throw TypeError
// //
@ -1607,8 +1580,8 @@ function test(sharedMem) {
// TypeError, and in fact it throws a (thisglobal).TypeError instead of // TypeError, and in fact it throws a (thisglobal).TypeError instead of
// alien.TypeError. // alien.TypeError.
var av = Object.create(alien_view); var av = Object.create(alien_view);
checkThrowTODO(() => av.getUint8(4), alien.TypeError); checkThrow(() => av.getUint8(4), alien.TypeError);
checkThrowTODO(() => av.buffer, alien.TypeError); checkThrow(() => av.buffer, alien.TypeError);
// view of object whose proto is buffer. This should not work per dherman. // view of object whose proto is buffer. This should not work per dherman.
// Note that DataView throws a TypeError while TypedArrays create a // Note that DataView throws a TypeError while TypedArrays create a

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending { get x(v) { } } and { set x(v, v2) { } } should be syntax errors
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'destructure-accessor.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 536472;
var summary =
'ES5: { get x(v) { } } and { set x(v, v2) { } } should be syntax errors';
print(BUGNUMBER + ": " + summary);
//-----------------------------------------------------------------------------
function expectOk(s) function expectOk(s)
{ {
@ -79,6 +70,3 @@ expectOk("({ set x([, b, c]) { } })");
expectOk("({ set x([, b, c,]) { } })"); expectOk("({ set x([, b, c,]) { } })");
expectOk("({ set x({ a: a }) { } })"); expectOk("({ set x({ a: a }) { } })");
expectOk("({ set x({ a: a, b: b }) { } })"); expectOk("({ set x({ a: a, b: b }) { } })");
//-----------------------------------------------------------------------------

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending { __proto__ } should work as a destructuring assignment pattern
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'destructuring-__proto__-shorthand-assignment-before-var.js';
var BUGNUMBER = 963641;
var summary = "{ __proto__ } should work as a destructuring assignment pattern";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function objectWithProtoProperty(v) function objectWithProtoProperty(v)
{ {
@ -48,7 +39,3 @@ function nested()
assert.sameValue(__proto__, "fnord"); assert.sameValue(__proto__, "fnord");
} }
nested(); nested();
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending { __proto__ } should work as a destructuring assignment pattern
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'destructuring-__proto__-shorthand-assignment.js';
var BUGNUMBER = 963641;
var summary = "{ __proto__ } should work as a destructuring assignment pattern";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function objectWithProtoProperty(v) function objectWithProtoProperty(v)
{ {
@ -48,7 +39,3 @@ function nested()
assert.sameValue(__proto__, undefined); assert.sameValue(__proto__, undefined);
} }
nested(); nested();
/******************************************************************************/
print("Tests complete");

View File

@ -8,19 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending { __proto__: target } should work as a destructuring assignment pattern
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'destructuring-__proto__-target--assignment.js';
var BUGNUMBER = 963641;
var summary =
"{ __proto__: target } should work as a destructuring assignment pattern";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function objectWithProtoProperty(v) function objectWithProtoProperty(v)
{ {
@ -49,7 +39,3 @@ function nested()
assert.sameValue(target, -0); assert.sameValue(target, -0);
} }
nested(); nested();
/******************************************************************************/
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending __proto__ should work in destructuring patterns as the targets of for-in/for-of loops
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'destructuring-for-inof-__proto__.js';
var BUGNUMBER = 963641;
var summary =
"__proto__ should work in destructuring patterns as the targets of " +
"for-in/for-of loops";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function objectWithProtoProperty(v) function objectWithProtoProperty(v)
{ {
@ -84,7 +73,3 @@ function nested()
assert.sameValue(target, String.prototype); assert.sameValue(target, String.prototype);
} }
nested(); nested();
/******************************************************************************/
print("Tests complete");

View File

@ -8,24 +8,11 @@ flags:
- onlyStrict - onlyStrict
includes: [sm/non262.js, sm/non262-shell.js] includes: [sm/non262.js, sm/non262-shell.js]
description: | description: |
pending Don't assert assigning into memory detached while converting the value to assign into a number
esid: pending esid: pending
---*/ ---*/
"use strict"; // make test fail when limitation below is fixed "use strict"; // make test fail when limitation below is fixed
var gTestfile = 'element-setting-ToNumber-detaches.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 1001547;
var summary =
"Don't assert assigning into memory detached while converting the value to " +
"assign into a number";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
// Technically per current spec the element-sets should throw in strict mode, // Technically per current spec the element-sets should throw in strict mode,
// but we just silently do nothing for now, somewhat due to limitations of our // but we just silently do nothing for now, somewhat due to limitations of our
// internal MOP (which can't easily say "try this special behavior, else fall // internal MOP (which can't easily say "try this special behavior, else fall
@ -35,7 +22,3 @@ print(BUGNUMBER + ": " + summary);
var ab = new ArrayBuffer(64); var ab = new ArrayBuffer(64);
var ta = new Uint32Array(ab); var ta = new Uint32Array(ab);
ta[4] = { valueOf() { $262.detachArrayBuffer(ab); return 5; } }; ta[4] = { valueOf() { $262.detachArrayBuffer(ab); return 5; } };
/******************************************************************************/
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Error.prototype.toString called on function objects should work as on any object
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 894653;
var summary =
"Error.prototype.toString called on function objects should work as on any " +
"object";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function ErrorToString(v) function ErrorToString(v)
{ {
@ -46,7 +35,3 @@ assert.sameValue(ErrorToString(fn2), "blerch: fnord");
var fn3 = function() {}; var fn3 = function() {};
fn3.message = ""; fn3.message = "";
assert.sameValue(ErrorToString(fn3), "fn3"); assert.sameValue(ErrorToString(fn3), "fn3");
/******************************************************************************/
print("Tests complete!");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Implement __define[GS]etter__ using Object.defineProperty
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 715821;
var summary = "Implement __define[GS]etter__ using Object.defineProperty";
print(BUGNUMBER + ": " + summary);
/*************
* UTILITIES *
*************/
function s(desc) function s(desc)
{ {
@ -282,7 +273,3 @@ check(sncwover, "fwoosh", { value: 17, writable: false, enumerable: true, config
expectTypeError(function() { sncwover.__defineSetter__("fwoosh", s7); }); expectTypeError(function() { sncwover.__defineSetter__("fwoosh", s7); });
check(sncwover, "fwoosh", { value: 17, writable: false, enumerable: true, configurable: false }); check(sncwover, "fwoosh", { value: 17, writable: false, enumerable: true, configurable: false });
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending eval called from a native function is indirect
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 604504;
var summary = "eval called from a native function is indirect";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var originalEval = eval; var originalEval = eval;
@ -34,7 +25,3 @@ function testArrayGeneric()
var mapped = eval([directCheckCode], originalEval); var mapped = eval([directCheckCode], originalEval);
assert.sameValue(mapped[0], true); assert.sameValue(mapped[0], true);
} }
/******************************************************************************/
print("All tests passed!");

View File

@ -8,21 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Expression closure syntax is only permitted for functions that constitute entire AssignmentExpressions, not PrimaryExpressions that are themselves components of larger binary expressions
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 1416337;
var summary =
"Expression closure syntax is only permitted for functions that constitute " +
"entire AssignmentExpressions, not PrimaryExpressions that are themselves " +
"components of larger binary expressions";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
{ {
function assertThrowsSyntaxError(code) function assertThrowsSyntaxError(code)
@ -67,4 +55,3 @@ print(BUGNUMBER + ": " + summary);
assertThrowsSyntaxError("x = @@@() 0 ? 1 : a => {} && true"); assertThrowsSyntaxError("x = @@@() 0 ? 1 : a => {} && true");
assertThrowsSyntaxError("x = true && @@@() 0 ? 1 : a => {}"); assertThrowsSyntaxError("x = true && @@@() 0 ? 1 : a => {}");
} }

View File

@ -8,22 +8,10 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending ECMAScript built-in methods that immediately throw when |this| is |undefined| or |null| (due to CheckObjectCoercible, ToObject, or ToString)
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 619283;
var summary =
"ECMAScript built-in methods that immediately throw when |this| is " +
"|undefined| or |null| (due to CheckObjectCoercible, ToObject, or ToString)";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
// This test fills out for the non-standard methods which // This test fills out for the non-standard methods which
// non262/misc/builtin-methods-reject-null-undefined-this.js declines to test. // non262/misc/builtin-methods-reject-null-undefined-this.js declines to test.
@ -103,7 +91,3 @@ for (var className in ClassToMethodMap)
testMethod(Class, className, method); testMethod(Class, className, method);
} }
} }
/******************************************************************************/
print("All tests passed!");

View File

@ -8,23 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Don't assert when freshening the scope chain for a for-loop whose head contains a lexical declaration, where the loop body might add more bindings at runtime
esid: pending esid: pending
---*/ ---*/
var gTestfile =
"for-loop-with-lexical-declaration-and-nested-function-statement.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 1149797;
var summary =
"Don't assert when freshening the scope chain for a for-loop whose head " +
"contains a lexical declaration, where the loop body might add more " +
"bindings at runtime";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
for (let x = 0; x < 9; ++x) { for (let x = 0; x < 9; ++x) {
function q1() {} function q1() {}
@ -129,7 +115,3 @@ function h2()
} }
} }
h2(); h2();
/******************************************************************************/
print("Tests complete");

View File

@ -11,6 +11,7 @@ description: |
pending pending
esid: pending esid: pending
---*/ ---*/
function innermost() { return arguments.callee.caller; } function innermost() { return arguments.callee.caller; }
function nest() { return eval("innermost();"); } function nest() { return eval("innermost();"); }
function nest2() { return nest(); } function nest2() { return nest(); }
@ -35,7 +36,3 @@ function innermostEvalTwice() { return eval('eval("arguments.callee.caller");');
var innermost = innermostEvalTwice; var innermost = innermostEvalTwice;
assert.sameValue(nest2(), nestTwice); assert.sameValue(nest2(), nestTwice);
/******************************************************************************/
print("Tests complete");

View File

@ -11,6 +11,7 @@ description: |
pending pending
esid: pending esid: pending
---*/ ---*/
function foo() function foo()
{ {
assert.sameValue(foo.arguments.length, 0); assert.sameValue(foo.arguments.length, 0);
@ -22,7 +23,3 @@ assert.sameValue(foo.caller, null);
foo(); foo();
assert.sameValue(foo.arguments, null); assert.sameValue(foo.arguments, null);
assert.sameValue(foo.caller, null); assert.sameValue(foo.caller, null);
/******************************************************************************/
print("Tests complete");

View File

@ -8,24 +8,11 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending __proto__ should show up with O.getOwnPropertyNames(O.prototype)
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 837630;
var summary ='__proto__ should show up with O.getOwnPropertyNames(O.prototype)';
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var keys = Object.getOwnPropertyNames(Object.prototype); var keys = Object.getOwnPropertyNames(Object.prototype);
assert.sameValue(keys.indexOf("__proto__") >= 0, true, assert.sameValue(keys.indexOf("__proto__") >= 0, true,
"should have gotten __proto__ as a property of Object.prototype " + "should have gotten __proto__ as a property of Object.prototype " +
"(got these properties: " + keys + ")"); "(got these properties: " + keys + ")");
/******************************************************************************/
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Escape sequences aren't allowed in bolded grammar tokens (that is, in keywords, possibly contextual keywords)
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 1204027;
var summary =
"Escape sequences aren't allowed in bolded grammar tokens (that is, in " +
"keywords, possibly contextual keywords)";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var randomExtensions = var randomExtensions =
[ [
@ -41,7 +30,3 @@ for (var extension of randomExtensions)
{ {
assert.throws(SyntaxError, () => Function(extension), "bad behavior for: " + extension); assert.throws(SyntaxError, () => Function(extension), "bad behavior for: " + extension);
} }
/******************************************************************************/
print("Tests complete");

View File

@ -8,26 +8,14 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Make __proto__ in object literals a special form not influenced by |Object.prototype|
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 948583;
var summary =
"Make __proto__ in object literals a special form not influenced by " +
"|Object.prototype|";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var passed = true; var passed = true;
function performProtoTests(msg) function performProtoTests(msg)
{ {
print("Testing " + msg);
assert.sameValue(passed, true, "passed wrong at start of test set"); assert.sameValue(passed, true, "passed wrong at start of test set");
assert.sameValue(Object.getPrototypeOf({ __proto__: null }), null); assert.sameValue(Object.getPrototypeOf({ __proto__: null }), null);
@ -38,7 +26,6 @@ function performProtoTests(msg)
assert.sameValue(Object.getPrototypeOf({ __proto__: obj }), obj); assert.sameValue(Object.getPrototypeOf({ __proto__: obj }), obj);
assert.sameValue(passed, true, "passed wrong at end of test set"); assert.sameValue(passed, true, "passed wrong at end of test set");
print("Tests of " + msg + " passed!");
} }
function poisonProto(obj) function poisonProto(obj)
@ -94,5 +81,3 @@ try
"proxy that throws for any access"); "proxy that throws for any access");
} }
catch (e) {} catch (e) {}
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending |delete x| inside a function in eval code, where that eval code includes |var x| at top level, actually does delete the binding for x
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 616294;
var summary =
"|delete x| inside a function in eval code, where that eval code includes " +
"|var x| at top level, actually does delete the binding for x";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var f; var f;
@ -85,8 +74,3 @@ function testFunctionLocal()
f = testFunctionLocal(); f = testFunctionLocal();
assert.sameValue(f(), false); // defined by function code => not configurable => false assert.sameValue(f(), false); // defined by function code => not configurable => false
/******************************************************************************/
print("All tests passed!");

View File

@ -8,19 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending |new| on a cross-compartment wrapper to a non-constructor shouldn't assert
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 1178653;
var summary =
"|new| on a cross-compartment wrapper to a non-constructor shouldn't assert";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var g = $262.createRealm().global; var g = $262.createRealm().global;
@ -40,7 +30,3 @@ catch (e)
// |!IsConstructor(constructor)|. // |!IsConstructor(constructor)|.
assert.sameValue(e instanceof TypeError, true); assert.sameValue(e instanceof TypeError, true);
} }
/******************************************************************************/
print("Tests complete");

View File

@ -8,20 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Redefining an array's |length| property when redefining the |length| property on a proxy with an array as target
esid: pending esid: pending
---*/ ---*/
var gTestfile = 'proxy-array-target-length-definition.js';
var BUGNUMBER = 905947;
var summary =
"Redefining an array's |length| property when redefining the |length| " +
"property on a proxy with an array as target";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var arr = []; var arr = [];
var p = new Proxy(arr, {}); var p = new Proxy(arr, {});
@ -54,7 +43,3 @@ assert.sameValue(ad.value, 0);
assert.sameValue(ad.writable, true); assert.sameValue(ad.writable, true);
assert.sameValue(ad.enumerable, false); assert.sameValue(ad.enumerable, false);
assert.sameValue(ad.configurable, false); assert.sameValue(ad.configurable, false);
/******************************************************************************/
print("Tests complete");

View File

@ -8,17 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Handle infinite recursion
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 622167;
var summary = 'Handle infinite recursion';
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function eval() { eval(); } function eval() { eval(); }
@ -57,7 +49,3 @@ function test()
foopy(); foopy();
} }
test(); test();
/******************************************************************************/
print("All tests passed!");

View File

@ -8,16 +8,13 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Array prototype and expression closures
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 469625;
var summary = 'TM: Array prototype and expression closures';
var actual = ''; var actual = '';
var expect = ''; var expect = '';
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
test(); test();
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -26,7 +23,6 @@ function test()
{ {
expect = 'TypeError: [].__proto__ is not a function'; expect = 'TypeError: [].__proto__ is not a function';
Array.prototype.__proto__ = function () { return 3; }; Array.prototype.__proto__ = function () { return 3; };
try try
@ -35,8 +31,8 @@ function test()
} }
catch(ex) catch(ex)
{ {
print(actual = ex + ''); actual = ex + '';
} }
assert.sameValue(expect, actual, summary); assert.sameValue(expect, actual);
} }

View File

@ -8,19 +8,14 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Do not assert: pobj_ == obj2
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 480579;
var summary = 'Do not assert: pobj_ == obj2';
var actual = ''; var actual = '';
var expect = ''; var expect = '';
//-----------------------------------------------------------------------------
test(); test();
//-----------------------------------------------------------------------------
function test() function test()
{ {
@ -30,9 +25,9 @@ function test()
b = {__proto__: a}; b = {__proto__: a};
c = {__proto__: b}; c = {__proto__: b};
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
print(actual += c.x); actual += c.x;
b.x = 2; b.x = 2;
} }
assert.sameValue(expect, actual, summary); assert.sameValue(expect, actual);
} }

View File

@ -8,19 +8,14 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending pobj_ == obj2
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 481516;
var summary = 'TM: pobj_ == obj2';
var actual = ''; var actual = '';
var expect = ''; var expect = '';
//-----------------------------------------------------------------------------
test(); test();
//-----------------------------------------------------------------------------
function test() function test()
{ {
@ -32,10 +27,10 @@ function test()
objs = [{__proto__: a}, {__proto__: a}, {__proto__: a}, b, {__proto__: a}, objs = [{__proto__: a}, {__proto__: a}, {__proto__: a}, b, {__proto__: a},
{__proto__: a}]; {__proto__: a}];
for (i = 0; i < 6; i++) { for (i = 0; i < 6; i++) {
print(actual += ""+c.x); actual += ""+c.x;
objs[i].x = 2; objs[i].x = 2;
} }
print(actual += c.x); actual += c.x;
assert.sameValue(expect, actual, summary); assert.sameValue(expect, actual);
} }

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Behavior when JSON.parse walks over a non-native object
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 901380;
var summary = "Behavior when JSON.parse walks over a non-native object";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var typedArray = null; var typedArray = null;
@ -43,7 +34,3 @@ assert.sameValue(arr[0], 0);
assert.sameValue(arr[1], typedArray); assert.sameValue(arr[1], typedArray);
assert.sameValue(observedTypedArrayElementCount, 1); assert.sameValue(observedTypedArrayElementCount, 1);
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Behavior when the JSON.parse reviver mutates the holder array
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 901351;
var summary = "Behavior when the JSON.parse reviver mutates the holder array";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var proxyObj = null; var proxyObj = null;
@ -36,7 +27,3 @@ assert.sameValue(arr[0], 0);
assert.sameValue(arr[1], proxyObj); assert.sameValue(arr[1], proxyObj);
assert.sameValue(arr[1].c, 17); assert.sameValue(arr[1].c, 17);
assert.sameValue(arr[1].d, 42); assert.sameValue(arr[1].d, 42);
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Behavior when JSON.parse walks over a non-native object
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 901380;
var summary = "Behavior when JSON.parse walks over a non-native object";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
// A little trickiness to account for the undefined-ness of property // A little trickiness to account for the undefined-ness of property
// enumeration order. // enumeration order.
@ -57,7 +48,3 @@ else
} }
assert.sameValue(observedTypedArrayElementCount, 1); assert.sameValue(observedTypedArrayElementCount, 1);
/******************************************************************************/
print("Tests complete");

View File

@ -8,18 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Behavior when the JSON.parse reviver mutates the holder object
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 901351;
var summary = "Behavior when the JSON.parse reviver mutates the holder object";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
// A little trickiness to account for the undefined-ness of property // A little trickiness to account for the undefined-ness of property
// enumeration order. // enumeration order.
@ -53,7 +44,3 @@ else
assert.sameValue(obj.a.d, 17); assert.sameValue(obj.a.d, 17);
assert.sameValue(obj.b, 1); assert.sameValue(obj.b, 1);
} }
/******************************************************************************/
print("Tests complete");

View File

@ -10,29 +10,14 @@ flags:
info: | info: |
preventExtensions on global preventExtensions on global
description: | description: |
pending Properly handle attempted addition of properties to non-extensible objects
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 600128;
var summary =
"Properly handle attempted addition of properties to non-extensible objects";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var o = Object.freeze({}); var o = Object.freeze({});
for (var i = 0; i < 10; i++) for (var i = 0; i < 10; i++)
print(o.u = ""); o.u = "";
Object.freeze(this); Object.freeze(this);
for (let j = 0; j < 10; j++) for (let j = 0; j < 10; j++)
print(u = ""); u = "";
/******************************************************************************/
print("All tests passed!");

View File

@ -8,21 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending %TypedArray.prototype.copyWithin shouldn't misbehave horribly if index-argument conversion detaches the underlying ArrayBuffer
esid: pending esid: pending
---*/ ---*/
var gTestfile = "typedarray-copyWithin-arguments-detaching.js";
//-----------------------------------------------------------------------------
var BUGNUMBER = 991981;
var summary =
"%TypedArray.prototype.copyWithin shouldn't misbehave horribly if " +
"index-argument conversion detaches the underlying ArrayBuffer";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function testBegin() function testBegin()
{ {
@ -110,7 +98,3 @@ function testDest()
assert.sameValue(ab.byteLength, 0, "detaching should work for start weirdness"); assert.sameValue(ab.byteLength, 0, "detaching should work for start weirdness");
} }
testDest(); testDest();
/******************************************************************************/
print("Tests complete");

View File

@ -8,19 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending Uint8Array.prototype.set issues when this array changes during setting
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 983344;
var summary =
"Uint8Array.prototype.set issues when this array changes during setting";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var ab = new ArrayBuffer(200); var ab = new ArrayBuffer(200);
var a = new Uint8Array(ab); var a = new Uint8Array(ab);
@ -46,7 +36,3 @@ Object.defineProperty(src, 4, {
}); });
a.set(src); a.set(src);
/******************************************************************************/
print("Tests complete");

View File

@ -8,19 +8,9 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending new Int8Array([1, 2, 3]).subarray(1).subarray(1)[0] === 3
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 637643;
var summary =
"new Int8Array([1, 2, 3]).subarray(1).subarray(1)[0] === 3";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
var ta = new Int8Array([1, 2, 3]); var ta = new Int8Array([1, 2, 3]);
assert.sameValue(ta.length, 3); assert.sameValue(ta.length, 3);
@ -36,5 +26,3 @@ assert.sameValue(sa1[1], 3);
var sa2 = sa1.subarray(1); var sa2 = sa1.subarray(1);
assert.sameValue(sa2.length, 1); assert.sameValue(sa2.length, 1);
assert.sameValue(sa2[0], 3); assert.sameValue(sa2[0], 3);
print("All tests passed!");

View File

@ -8,18 +8,11 @@ includes: [sm/non262.js, sm/non262-shell.js]
flags: flags:
- noStrict - noStrict
description: | description: |
pending js weak maps
esid: pending esid: pending
---*/ ---*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 547941;
var summary = 'js weak maps';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test(); test();
//-----------------------------------------------------------------------------
function test() function test()
{ {
@ -44,13 +37,6 @@ function test()
if (todo) { if (todo) {
TestTodoCount++; TestTodoCount++;
if (success) {
var ex = new Error;
print ("=== TODO but PASSED? ===");
print (ex.stack);
print ("========================");
}
return; return;
} }
@ -58,15 +44,6 @@ function test()
TestPassCount++; TestPassCount++;
} else { } else {
TestFailCount++; TestFailCount++;
var ex = new Error;
print ("=== FAILED ===");
print (ex.stack);
if (thrown) {
print (" threw exception:");
print (thrown);
}
print ("==============");
} }
} }
@ -118,7 +95,5 @@ function test()
checkThrows(() => map.set("non-object key", value)); checkThrows(() => map.set("non-object key", value));
print ("done");
assert.sameValue(0, TestFailCount, "weak map tests"); assert.sameValue(0, TestFailCount, "weak map tests");
} }