mirror of https://github.com/tc39/test262.git
106 lines
1.5 KiB
JavaScript
106 lines
1.5 KiB
JavaScript
//@ runBigIntEnabled
|
|
|
|
function assert(a, e) {
|
|
if (a !== e)
|
|
throw new Error("Expected: " + e + " but got: " + a);
|
|
}
|
|
|
|
function doesGCAdd(a) {
|
|
let o = {};
|
|
let c = a + 1n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCAdd);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCAdd(3n);
|
|
assert(o.b, 4n);
|
|
}
|
|
|
|
function doesGCSub(a) {
|
|
let o = {};
|
|
let c = a - 1n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCSub);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCSub(3n);
|
|
assert(o.b, 2n);
|
|
}
|
|
|
|
function doesGCDiv(a) {
|
|
let o = {};
|
|
let c = a / 2n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCDiv);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCDiv(4n);
|
|
assert(o.b, 2n);
|
|
}
|
|
|
|
function doesGCMul(a) {
|
|
let o = {};
|
|
let c = a * 2n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCMul);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCMul(4n);
|
|
assert(o.b, 8n);
|
|
}
|
|
|
|
function doesGCBitAnd(a) {
|
|
let o = {};
|
|
let c = a & 0b11n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCBitAnd);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCBitAnd(0b1010n);
|
|
assert(o.b, 0b10n);
|
|
}
|
|
|
|
function doesGCBitOr(a) {
|
|
let o = {};
|
|
let c = a | 0b11n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCBitOr);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCBitOr(0b10n);
|
|
assert(o.b, 0b11n);
|
|
}
|
|
|
|
function doesGCBitXor(a) {
|
|
let o = {};
|
|
let c = a ^ 0b11n;
|
|
o.b = c;
|
|
|
|
return o;
|
|
}
|
|
noInline(doesGCBitXor);
|
|
|
|
for (var i = 0; i < 10000; i++) {
|
|
let o = doesGCBitXor(0b10n);
|
|
assert(o.b, 0b1n);
|
|
}
|
|
|