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 |
name: Custom |
||||||
about: Open an issue in the repo that is neither a bug or a feature, such a new idea |
about: Open an issue in the repo that is neither a bug or a feature, such a new idea |
||||||
title: '' |
title: "" |
||||||
labels: '' |
labels: "" |
||||||
assignees: '' |
assignees: "" |
||||||
|
|
||||||
--- |
--- |
||||||
|
|
||||||
<!-- |
<!-- |
||||||
Thank you for contributing to Boa! Please, let us know how can we help you. |
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... |
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. |
# Boa Benchmarks. |
||||||
|
|
||||||
We divide the benchmarks in 3 sections: |
We divide the benchmarks in 3 sections: |
||||||
- Full engine benchmarks (lexing + parsing + realm creation + execution) |
|
||||||
- Execution benchmarks |
- Full engine benchmarks (lexing + parsing + realm creation + execution) |
||||||
- Parsing benchmarks (lexing + parse - these are tightly coupled so must be benchmarked together) |
- 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 |
The idea is to check the performance of Boa in different scenarios and dividing the Boa execution |
||||||
process in its different parts. |
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 () { |
(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(){ |
(function () { |
||||||
let testArr = []; |
let testArr = []; |
||||||
for (let a = 0; a <= 500; a++) { |
for (let a = 0; a <= 500; a++) { |
||||||
testArr[a] = ('p' + a); |
testArr[a] = "p" + a; |
||||||
} |
} |
||||||
|
|
||||||
return testArr; |
return testArr; |
||||||
})(); |
})(); |
||||||
|
@ -1,24 +1,221 @@ |
|||||||
(function(){ |
(function () { |
||||||
let testArray = [83, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, |
let testArray = [ |
||||||
45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, |
83, |
||||||
234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, |
93, |
||||||
99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, |
27, |
||||||
77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, |
29, |
||||||
2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, |
2828, |
||||||
83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, |
234, |
||||||
56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, 28, 93, |
23, |
||||||
27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, 45, 93, |
56, |
||||||
17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, 23, |
32, |
||||||
56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, 36, |
56, |
||||||
28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, |
67, |
||||||
45, 93, 17, 28, 83, 62, 99, 36, 28, 93, 27, 29, 2828, 234, |
77, |
||||||
23, 56, 32, 56, 67, 77, 32, 45, 93, 17, 28, 83, 62, 99, |
32, |
||||||
36, 28, 93, 27, 29, 2828, 234, 23, 56, 32, 56, 67, 77, 32, |
45, |
||||||
45, 93, 17, 28, 83, 62, 99, 36, 28]; |
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) { |
while (testArray.length > 0) { |
||||||
testArray.pop(); |
testArray.pop(); |
||||||
} |
} |
||||||
|
|
||||||
return testArray; |
return testArray; |
||||||
})(); |
})(); |
||||||
|
@ -1,7 +1,7 @@ |
|||||||
new Boolean( |
new Boolean( |
||||||
!new Boolean( |
!new Boolean( |
||||||
new Boolean( |
new Boolean( |
||||||
!(new Boolean(false).valueOf()) && (new Boolean(true).valueOf()) |
!new Boolean(false).valueOf() && new Boolean(true).valueOf() |
||||||
).valueOf() |
|
||||||
).valueOf() |
).valueOf() |
||||||
).valueOf() |
).valueOf() |
||||||
|
).valueOf(); |
||||||
|
@ -1,10 +1,10 @@ |
|||||||
(function () { |
(function () { |
||||||
let num = 12; |
let num = 12; |
||||||
|
|
||||||
function fib(n) { |
function fib(n) { |
||||||
if (n <= 1) return 1; |
if (n <= 1) return 1; |
||||||
return fib(n - 1) + fib(n - 2); |
return fib(n - 1) + fib(n - 2); |
||||||
} |
} |
||||||
|
|
||||||
return fib(num); |
return fib(num); |
||||||
})(); |
})(); |
||||||
|
@ -1,10 +1,10 @@ |
|||||||
(function () { |
(function () { |
||||||
let b = "hello"; |
let b = "hello"; |
||||||
for (let a = 10; a < 100; a += 5) { |
for (let a = 10; a < 100; a += 5) { |
||||||
if (a < 50) { |
if (a < 50) { |
||||||
b += "world"; |
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++) { |
for (let a = 10; a < 100; a++) { |
||||||
if (a < 10) { |
if (a < 10) { |
||||||
console.log("impossible D:"); |
console.log("impossible D:"); |
||||||
} else if (a < 50) { |
} else if (a < 50) { |
||||||
console.log("starting"); |
console.log("starting"); |
||||||
} else { |
} else { |
||||||
console.log("finishing"); |
console.log("finishing"); |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -1,7 +1,5 @@ |
|||||||
new Number( |
new Number( |
||||||
new Number( |
new Number( |
||||||
new Number( |
new Number(new Number(100).valueOf() - 10.5).valueOf() + 100 |
||||||
new Number(100).valueOf() - 10.5 |
).valueOf() * 1.6 |
||||||
).valueOf() + 100 |
); |
||||||
).valueOf() * 1.6 |
|
||||||
) |
|
||||||
|
@ -1,8 +1,8 @@ |
|||||||
(function () { |
(function () { |
||||||
let test = { |
let test = { |
||||||
my_prop: "hello", |
my_prop: "hello", |
||||||
another: 65, |
another: 65, |
||||||
}; |
}; |
||||||
|
|
||||||
return test; |
return test; |
||||||
})(); |
})(); |
||||||
|
@ -1,8 +1,8 @@ |
|||||||
(function () { |
(function () { |
||||||
let test = { |
let test = { |
||||||
my_prop: "hello", |
my_prop: "hello", |
||||||
another: 65, |
another: 65, |
||||||
}; |
}; |
||||||
|
|
||||||
return test.my_prop; |
return test.my_prop; |
||||||
})(); |
})(); |
||||||
|
@ -1,8 +1,8 @@ |
|||||||
(function () { |
(function () { |
||||||
let test = { |
let test = { |
||||||
my_prop: "hello", |
my_prop: "hello", |
||||||
another: 65, |
another: 65, |
||||||
}; |
}; |
||||||
|
|
||||||
return test["my" + "_prop"]; |
return test["my" + "_prop"]; |
||||||
})(); |
})(); |
||||||
|
@ -1,5 +1,5 @@ |
|||||||
(function () { |
(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 () { |
(function () { |
||||||
let regExp = new RegExp('hello', 'i'); |
let regExp = new RegExp("hello", "i"); |
||||||
|
|
||||||
return regExp; |
return regExp; |
||||||
})(); |
})(); |
||||||
|
@ -1,5 +1,5 @@ |
|||||||
(function () { |
(function () { |
||||||
let regExp = /hello/i; |
let regExp = /hello/i; |
||||||
|
|
||||||
return regExp.test("Hello World"); |
return regExp.test("Hello World"); |
||||||
})(); |
})(); |
||||||
|
@ -1,5 +1,5 @@ |
|||||||
(function () { |
(function () { |
||||||
let regExp = /hello/i; |
let regExp = /hello/i; |
||||||
|
|
||||||
return regExp; |
return regExp; |
||||||
})(); |
})(); |
||||||
|
@ -1,9 +1,9 @@ |
|||||||
(function(){ |
(function () { |
||||||
var a = "hello"; |
var a = "hello"; |
||||||
var b = "world"; |
var b = "world"; |
||||||
|
|
||||||
var c = a == b; |
var c = a == b; |
||||||
|
|
||||||
var d = b; |
var d = b; |
||||||
var e = d == b; |
var e = d == b; |
||||||
})(); |
})(); |
||||||
|
@ -1,6 +1,6 @@ |
|||||||
(function(){ |
(function () { |
||||||
var a = "hello"; |
var a = "hello"; |
||||||
var b = "world"; |
var b = "world"; |
||||||
|
|
||||||
var c = a + b; |
var c = a + b; |
||||||
})(); |
})(); |
||||||
|
@ -1,4 +1,4 @@ |
|||||||
(function(){ |
(function () { |
||||||
var a = "hello"; |
var a = "hello"; |
||||||
var b = a; |
var b = a; |
||||||
})(); |
})(); |
||||||
|
@ -1,7 +1,7 @@ |
|||||||
new String( |
new String( |
||||||
|
new String( |
||||||
new String( |
new String( |
||||||
new String( |
new String("Hello").valueOf() + new String(", world").valueOf() |
||||||
new String('Hello').valueOf() + new String(", world").valueOf() |
).valueOf() + "!" |
||||||
).valueOf() + '!' |
).valueOf() |
||||||
).valueOf() |
).valueOf(); |
||||||
).valueOf() |
|
||||||
|
@ -1,3 +1,3 @@ |
|||||||
(function () { |
(function () { |
||||||
return Symbol(); |
return Symbol(); |
||||||
})(); |
})(); |
||||||
|
Loading…
Reference in new issue