Skip to content

Commit

Permalink
Merge pull request #61 from oven-sh/upgrade
Browse files Browse the repository at this point in the history
Sync with upstream
  • Loading branch information
dylan-conway authored Jul 9, 2024
2 parents 615e858 + 8c18b9a commit 5d4c3da
Show file tree
Hide file tree
Showing 5,988 changed files with 690,258 additions and 68,989 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 7 additions & 0 deletions JSTests/microbenchmarks/double-to-string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
function test(num) {
return num + 'px';
}
noInline(test);

for (var i = 0; i < 1e6; ++i)
test(i + 30.4);
24 changes: 24 additions & 0 deletions JSTests/microbenchmarks/js-map-get-int-no-dfg-no-inline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}
noDFG(testSet);
noInline(testSet);

function testGet(m, k) {
m.get(k);
}
noDFG(testGet);
noInline(testGet);

let count = 1e4;
for (let i = 0; i < count; ++i) {
testSet(m, i, i);
}

for (let i = 0; i < count; ++i) {
for (let j = 0; j < 20; j++) {
testGet(m, i, i);
}
}
21 changes: 21 additions & 0 deletions JSTests/microbenchmarks/js-map-get-int.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}

function testGet(m, k) {
m.get(k);
}

let count = 1e4;
for (let i = 0; i < count; ++i) {
testSet(m, i, i);
}

for (let i = 0; i < count; ++i) {
for (let j = 0; j < 20; j++) {
testGet(m, i, i);
}
}

27 changes: 27 additions & 0 deletions JSTests/microbenchmarks/js-map-get-string-no-dfg-no-inline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}
noDFG(testSet);
noInline(testSet);

function testGet(m, k) {
m.get(k);
}
noDFG(testGet);
noInline(testGet);

let count = 1e4;
for (let i = 0; i < count; ++i) {
let s = i.toString();
testSet(m, s, s);
}

for (let i = 0; i < count; ++i) {
let s = i.toString();
for (let j = 0; j < 20; j++) {
testGet(m, s);
}
}

22 changes: 22 additions & 0 deletions JSTests/microbenchmarks/js-map-get-string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}

function testGet(m, k) {
m.get(k);
}

let count = 1e4;
for (let i = 0; i < count; ++i) {
let s = i.toString();
testSet(m, s, s);
}

for (let i = 0; i < count; ++i) {
let s = i.toString();
for (let j = 0; j < 20; j++) {
testGet(m, s);
}
}
12 changes: 12 additions & 0 deletions JSTests/microbenchmarks/js-map-set-int-no-dfg-no-inline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}
noDFG(testSet);
noInline(testSet);

let count = 1e4;
for (let i = 0; i < count; ++i) {
testSet(m, i, i);
}
10 changes: 10 additions & 0 deletions JSTests/microbenchmarks/js-map-set-int.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}

let count = 1e4;
for (let i = 0; i < count; ++i) {
testSet(m, i, i);
}
13 changes: 13 additions & 0 deletions JSTests/microbenchmarks/js-map-set-string-no-dfg-no-inline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}
noDFG(testSet);
noInline(testSet);

let count = 1e4;
for (let i = 0; i < count; ++i) {
let s = i.toString();
testSet(m, s, s);
}
11 changes: 11 additions & 0 deletions JSTests/microbenchmarks/js-map-set-string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
let m = new Map();

function testSet(m, k, v) {
m.set(k, v);
}

let count = 1e4;
for (let i = 0; i < count; ++i) {
let s = i.toString();
testSet(m, s, s);
}
14 changes: 14 additions & 0 deletions JSTests/microbenchmarks/to-hex.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//@ requireOptions("--useUint8ArrayBase64Methods=1")

function test(buffer)
{
return buffer.toHex();
}
noInline(test);

let buffer = new Uint8Array(16 * 1024);
for (let i = 0; i < buffer.length; ++i)
buffer[i] = i & 0xff;

for (let i = 0; i < 1e4; ++i)
test(buffer);
12 changes: 12 additions & 0 deletions JSTests/stress/double-to-string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
function shouldBe(actual, expected) {
if (actual !== expected)
throw new Error('bad value: ' + actual);
}

function test(num) {
return num + 'px';
}
noInline(test);

for (var i = 0; i < 1e6; ++i)
shouldBe(test(i + 30.4), (i + 30.4) + 'px');
110 changes: 110 additions & 0 deletions JSTests/stress/map-iterators-next-2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
function assert(b) {
if (!b)
throw new Error("Bad result!");
}
noInline(assert);

let item1 = [1, 2];
let item2 = [3, 4];

{
let map = new Map();
let iterator = map[Symbol.iterator]();
map.set(item1[0], item1[1]);
let element = iterator.next();

assert(element.done == false);
assert(element.value[0] == item1[0]);
}

{
let map = new Map([item1]);
let iterator = map[Symbol.iterator]();
map.set(item2[0], item2[1]);
let element = iterator.next();
assert(element.done == false);
assert(element.value[0] == item1[0]);

element = iterator.next();
assert(element.done == false);
assert(element.value[0] == item2[0]);
}

{
let map = new Map([item1]);
let iterator = map[Symbol.iterator]();
map.delete(item1[0]);

let element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);

element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);
}

{
let map = new Map([item1, item2]);
let iterator = map[Symbol.iterator]();
map.delete(item2[0]);

let element = iterator.next();
assert(element.done == false);
assert(element.value[0] == item1[0]);

element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);

element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);
}

{
let map = new Map([item1, item2]);
let iterator = map[Symbol.iterator]();

let element = iterator.next();
assert(element.done == false);
assert(element.value[0] == item1[0]);

element = iterator.next();
assert(element.done == false);
assert(element.value[0] == item2[0]);

element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);
}

{
let map = new Map([item1]);
let iterator = map[Symbol.iterator]();
map.clear();

let element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);

element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);

map.set(item1[0], item1[1]);
element = iterator.next();
assert(element.done == true);
assert(element.value == undefined);
}

{
let map = new Map([item1]);
let iterator = map[Symbol.iterator]();
map.clear();

map.set(item1[0], item1[1]);
element = iterator.next();
assert(element.done == false);
assert(element.value[0] == item1[0]);
}
Loading

0 comments on commit 5d4c3da

Please sign in to comment.