mirror of https://github.com/boa-dev/boa.git
Iban Eguia
4 years ago
committed by
GitHub
47 changed files with 972 additions and 482 deletions
@ -1,13 +1,13 @@
|
||||
--- |
||||
name: Custom |
||||
about: Open an issue in the repo that is neither a bug or a feature, such a new idea |
||||
title: '' |
||||
labels: '' |
||||
assignees: '' |
||||
|
||||
title: "" |
||||
labels: "" |
||||
assignees: "" |
||||
--- |
||||
|
||||
<!-- |
||||
Thank you for contributing to Boa! Please, let us know how can we help you. |
||||
--> |
||||
|
||||
E.g.: I think we should improve the way the JavaScript interpreter works by... |
||||
|
@ -0,0 +1,51 @@
|
||||
on: |
||||
pull_request: |
||||
branches: |
||||
- master |
||||
push: |
||||
branches: |
||||
- master |
||||
|
||||
name: Webassembly demo |
||||
|
||||
jobs: |
||||
check_style: |
||||
name: Check webassembly demo style |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v2 |
||||
- name: Check code formatting |
||||
uses: creyD/prettier_action@v3.0 |
||||
with: |
||||
dry: true |
||||
prettier_options: --check . |
||||
|
||||
build: |
||||
name: Build webassembly demo |
||||
runs-on: ubuntu-latest |
||||
env: |
||||
WASM_PACK_PATH: ~/.cargo/bin/wasm-pack |
||||
steps: |
||||
- uses: actions/checkout@v2 |
||||
- uses: actions-rs/toolchain@v1 |
||||
with: |
||||
toolchain: stable |
||||
override: true |
||||
profile: minimal |
||||
- name: Install wasm-pack |
||||
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh |
||||
- name: Cache yarn build |
||||
uses: actions/cache@v2 |
||||
with: |
||||
path: | |
||||
node_modules |
||||
target |
||||
boa_wasm/pkg |
||||
key: ${{ runner.os }}-yarn-build-target-${{ hashFiles('**/yarn.lock') }} |
||||
- uses: Borales/actions-yarn@v2.3.0 |
||||
with: |
||||
cmd: install |
||||
- uses: Borales/actions-yarn@v2.3.0 |
||||
with: |
||||
cmd: build |
@ -0,0 +1,8 @@
|
||||
# Ignore artifacts: |
||||
*.rs |
||||
target |
||||
node_modules |
||||
boa/benches/bench_scripts/mini_js.js |
||||
boa/benches/bench_scripts/clean_js.js |
||||
boa_wasm/pkg |
||||
dist |
@ -1,14 +0,0 @@
|
||||
docker-build: |
||||
docker build --tag boa .
|
||||
|
||||
docker-container: |
||||
docker create --tty --interactive \
|
||||
--name boa \
|
||||
--hostname boa \
|
||||
--volume ${PWD}/:/usr/src/myapp \
|
||||
--publish 9228:9228 \
|
||||
boa
|
||||
|
||||
docker-clean: |
||||
docker rm boa || echo "no container"
|
||||
docker rmi boa || echo "no image"
|
@ -1,9 +1,10 @@
|
||||
# Boa Benchmarks. |
||||
|
||||
We divide the benchmarks in 3 sections: |
||||
- Full engine benchmarks (lexing + parsing + realm creation + execution) |
||||
- Execution benchmarks |
||||
- Parsing benchmarks (lexing + parse - these are tightly coupled so must be benchmarked together) |
||||
|
||||
- Full engine benchmarks (lexing + parsing + realm creation + execution) |
||||
- Execution benchmarks |
||||
- Parsing benchmarks (lexing + parse - these are tightly coupled so must be benchmarked together) |
||||
|
||||
The idea is to check the performance of Boa in different scenarios and dividing the Boa execution |
||||
process in its different parts. |
||||
|
@ -1 +1 @@
|
||||
((2 + 2) ** 3 / 100 - 5 ** 3 * -1000) ** 2 + 100 - 8 |
||||
((2 + 2) ** 3 / 100 - 5 ** 3 * -1000) ** 2 + 100 - 8; |
||||
|
@ -1,7 +1,7 @@
|
||||
(function () { |
||||
let testArr = [1,2,3,4,5]; |
||||
let testArr = [1, 2, 3, 4, 5]; |
||||
|
||||
let res = testArr[2]; |
||||
let res = testArr[2]; |
||||
|
||||
return res; |
||||
return res; |
||||
})(); |
||||
|
@ -1,8 +1,8 @@
|
||||
(function(){ |
||||
let testArr = []; |
||||
for (let a = 0; a <= 500; a++) { |
||||
testArr[a] = ('p' + a); |
||||
} |
||||
(function () { |
||||
let testArr = []; |
||||
for (let a = 0; a <= 500; a++) { |
||||
testArr[a] = "p" + a; |
||||
} |
||||
|
||||
return testArr; |
||||
return testArr; |
||||
})(); |
||||
|
@ -1,24 +1,221 @@
|
||||
(function(){ |
||||
let testArray = [83, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, |
||||
45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, |
||||
234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, |
||||
99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, |
||||
77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, |
||||
2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, |
||||
83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, |
||||
56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, |
||||
27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, |
||||
17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, |
||||
56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, |
||||
28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, |
||||
45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, |
||||
23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, |
||||
36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, |
||||
45, 93, 17, 28, 83, 62, 99, 36, 28]; |
||||
(function () { |
||||
let testArray = [ |
||||
83, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
93, |
||||
27, |
||||
29, |
||||
2828, |
||||
234, |
||||
23, |
||||
56, |
||||
32, |
||||
56, |
||||
67, |
||||
77, |
||||
32, |
||||
45, |
||||
93, |
||||
17, |
||||
28, |
||||
83, |
||||
62, |
||||
99, |
||||
36, |
||||
28, |
||||
]; |
||||
|
||||
while (testArray.length > 0) { |
||||
testArray.pop(); |
||||
} |
||||
while (testArray.length > 0) { |
||||
testArray.pop(); |
||||
} |
||||
|
||||
return testArray; |
||||
return testArray; |
||||
})(); |
||||
|
@ -1,7 +1,7 @@
|
||||
new Boolean( |
||||
!new Boolean( |
||||
new Boolean( |
||||
!(new Boolean(false).valueOf()) && (new Boolean(true).valueOf()) |
||||
).valueOf() |
||||
!new Boolean( |
||||
new Boolean( |
||||
!new Boolean(false).valueOf() && new Boolean(true).valueOf() |
||||
).valueOf() |
||||
).valueOf() |
||||
).valueOf() |
||||
).valueOf(); |
||||
|
@ -1,10 +1,10 @@
|
||||
(function () { |
||||
let num = 12; |
||||
let num = 12; |
||||
|
||||
function fib(n) { |
||||
if (n <= 1) return 1; |
||||
return fib(n - 1) + fib(n - 2); |
||||
} |
||||
function fib(n) { |
||||
if (n <= 1) return 1; |
||||
return fib(n - 1) + fib(n - 2); |
||||
} |
||||
|
||||
return fib(num); |
||||
return fib(num); |
||||
})(); |
||||
|
@ -1,10 +1,10 @@
|
||||
(function () { |
||||
let b = "hello"; |
||||
for (let a = 10; a < 100; a += 5) { |
||||
if (a < 50) { |
||||
b += "world"; |
||||
} |
||||
let b = "hello"; |
||||
for (let a = 10; a < 100; a += 5) { |
||||
if (a < 50) { |
||||
b += "world"; |
||||
} |
||||
} |
||||
|
||||
return b; |
||||
return b; |
||||
})(); |
||||
|
@ -1 +1,2 @@
|
||||
let foo = 'hello world!'; foo; |
||||
let foo = "hello world!"; |
||||
foo; |
||||
|
@ -1,9 +1,9 @@
|
||||
for (let a = 10; a < 100; a++) { |
||||
if (a < 10) { |
||||
console.log("impossible D:"); |
||||
} else if (a < 50) { |
||||
console.log("starting"); |
||||
} else { |
||||
console.log("finishing"); |
||||
} |
||||
if (a < 10) { |
||||
console.log("impossible D:"); |
||||
} else if (a < 50) { |
||||
console.log("starting"); |
||||
} else { |
||||
console.log("finishing"); |
||||
} |
||||
} |
||||
|
@ -1,7 +1,5 @@
|
||||
new Number( |
||||
new Number( |
||||
new Number( |
||||
new Number(100).valueOf() - 10.5 |
||||
).valueOf() + 100 |
||||
).valueOf() * 1.6 |
||||
) |
||||
new Number( |
||||
new Number(new Number(100).valueOf() - 10.5).valueOf() + 100 |
||||
).valueOf() * 1.6 |
||||
); |
||||
|
@ -1,8 +1,8 @@
|
||||
(function () { |
||||
let test = { |
||||
my_prop: "hello", |
||||
another: 65, |
||||
}; |
||||
let test = { |
||||
my_prop: "hello", |
||||
another: 65, |
||||
}; |
||||
|
||||
return test; |
||||
return test; |
||||
})(); |
||||
|
@ -1,8 +1,8 @@
|
||||
(function () { |
||||
let test = { |
||||
my_prop: "hello", |
||||
another: 65, |
||||
}; |
||||
let test = { |
||||
my_prop: "hello", |
||||
another: 65, |
||||
}; |
||||
|
||||
return test.my_prop; |
||||
return test.my_prop; |
||||
})(); |
||||
|
@ -1,8 +1,8 @@
|
||||
(function () { |
||||
let test = { |
||||
my_prop: "hello", |
||||
another: 65, |
||||
}; |
||||
let test = { |
||||
my_prop: "hello", |
||||
another: 65, |
||||
}; |
||||
|
||||
return test["my" + "_prop"]; |
||||
return test["my" + "_prop"]; |
||||
})(); |
||||
|
@ -1,5 +1,5 @@
|
||||
(function () { |
||||
let regExp = new RegExp('hello', 'i'); |
||||
let regExp = new RegExp("hello", "i"); |
||||
|
||||
return regExp.test("Hello World"); |
||||
return regExp.test("Hello World"); |
||||
})(); |
||||
|
@ -1,5 +1,5 @@
|
||||
(function () { |
||||
let regExp = new RegExp('hello', 'i'); |
||||
let regExp = new RegExp("hello", "i"); |
||||
|
||||
return regExp; |
||||
return regExp; |
||||
})(); |
||||
|
@ -1,5 +1,5 @@
|
||||
(function () { |
||||
let regExp = /hello/i; |
||||
let regExp = /hello/i; |
||||
|
||||
return regExp.test("Hello World"); |
||||
return regExp.test("Hello World"); |
||||
})(); |
||||
|
@ -1,5 +1,5 @@
|
||||
(function () { |
||||
let regExp = /hello/i; |
||||
let regExp = /hello/i; |
||||
|
||||
return regExp; |
||||
return regExp; |
||||
})(); |
||||
|
@ -1,9 +1,9 @@
|
||||
(function(){ |
||||
var a = "hello"; |
||||
var b = "world"; |
||||
(function () { |
||||
var a = "hello"; |
||||
var b = "world"; |
||||
|
||||
var c = a == b; |
||||
var c = a == b; |
||||
|
||||
var d = b; |
||||
var e = d == b; |
||||
var d = b; |
||||
var e = d == b; |
||||
})(); |
||||
|
@ -1,6 +1,6 @@
|
||||
(function(){ |
||||
var a = "hello"; |
||||
var b = "world"; |
||||
(function () { |
||||
var a = "hello"; |
||||
var b = "world"; |
||||
|
||||
var c = a + b; |
||||
var c = a + b; |
||||
})(); |
||||
|
@ -1,4 +1,4 @@
|
||||
(function(){ |
||||
var a = "hello"; |
||||
var b = a; |
||||
(function () { |
||||
var a = "hello"; |
||||
var b = a; |
||||
})(); |
||||
|
@ -1,7 +1,7 @@
|
||||
new String( |
||||
new String( |
||||
new String( |
||||
new String( |
||||
new String('Hello').valueOf() + new String(", world").valueOf() |
||||
).valueOf() + '!' |
||||
).valueOf() |
||||
).valueOf() |
||||
new String("Hello").valueOf() + new String(", world").valueOf() |
||||
).valueOf() + "!" |
||||
).valueOf() |
||||
).valueOf(); |
||||
|
@ -1,3 +1,3 @@
|
||||
(function () { |
||||
return Symbol(); |
||||
return Symbol(); |
||||
})(); |
||||
|
Loading…
Reference in new issue