Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ECMAScript test suite (test262) #567

Merged
merged 7 commits into from
Sep 6, 2020
Merged

Add ECMAScript test suite (test262) #567

merged 7 commits into from
Sep 6, 2020

Conversation

Razican
Copy link
Member

@Razican Razican commented Jul 15, 2020

This Pull Request fixes/closes #12.

It changes the following:

  • It adds a new crate to the workspace, the tester crate, in charge of running the test suite.
  • It adds a submodule to the project, ./test262, which contains the test262 repo.
  • Modifies forward_val() and parse_expr() in order to properly throw a SyntaxError, which closes Lexing and Parsing errors should throw a SyntaxError #539.

This is still early work in progress, and it's blocked waiting for #559 to land, and probably other things we didn't notice. I wanted to show you the design, though, to see if you like it. Note that it's currently everything in one file, so this is something we need to put in multiple modules.

This branch is based in the new_lexer branch. And the current main blocker is the fact that line terminators are not skipped by default, as it's the case in the master branch.

@Razican Razican added enhancement New feature or request test Issues and PRs related to the tests. labels Jul 15, 2020
@Razican Razican added this to the v0.10.0 milestone Jul 15, 2020
@Lan2u
Copy link

Lan2u commented Jul 15, 2020

Can u make this branch vs new_lexer so we can see differences?

@codecov
Copy link

codecov bot commented Jul 15, 2020

Codecov Report

Merging #567 into master will decrease coverage by 0.69%.
The diff coverage is 26.06%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #567      +/-   ##
==========================================
- Coverage   73.17%   72.48%   -0.70%     
==========================================
  Files         193      197       +4     
  Lines       14029    14181     +152     
==========================================
+ Hits        10266    10279      +13     
- Misses       3763     3902     +139     
Impacted Files Coverage Δ
boa/src/builtins/math/tests.rs 100.00% <ø> (ø)
boa/src/syntax/ast/position.rs 96.61% <ø> (ø)
boa/src/syntax/parser/tests.rs 100.00% <ø> (ø)
boa_cli/src/main.rs 33.33% <ø> (ø)
boa_wasm/src/lib.rs 0.00% <0.00%> (ø)
tester/src/exec.rs 0.00% <0.00%> (ø)
tester/src/main.rs 0.00% <0.00%> (ø)
tester/src/read.rs 0.00% <0.00%> (ø)
tester/src/results.rs 0.00% <0.00%> (ø)
boa/src/builtins/array/mod.rs 76.33% <50.00%> (-0.27%) ⬇️
... and 10 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 460b4a2...f22f265. Read the comment docs.

@github-actions
Copy link

Benchmark for 61cf6e9

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 437.5±9.62ns 433.7±10.12ns +0.88%
Arithmetic operations (Full) 179.6±5.76µs 182.8±18.32µs -1.75%
Array access (Execution) 14.4±0.66µs 14.5±0.29µs -0.69%
Array access (Full) 213.0±8.34µs 200.5±10.82µs +6.23%
Array creation (Execution) 4.0±0.09ms 4.0±0.03ms 0.00%
Array creation (Full) 4.2±0.10ms 4.4±0.06ms -4.55%
Array pop (Execution) 1501.3±43.93µs 1504.7±54.01µs -0.23%
Array pop (Full) 2.1±0.13ms 1893.8±144.07µs +10.89%
Boolean Object Access (Execution) 5.4±0.21µs 5.4±0.11µs 0.00%
Boolean Object Access (Full) 199.9±5.37µs 186.0±7.56µs +7.47%
Create Realm 160.7±3.24µs 161.2±4.64µs -0.31%
Dynamic Object Property Access (Execution) 7.2±0.14µs 7.5±0.19µs -4.00%
Dynamic Object Property Access (Full) 197.8±4.78µs 192.1±5.99µs +2.97%
Expression (Lexer) 2.2±0.08µs N/A N/A
Expression (Parser) 13.3±0.53µs 5.2±0.12µs +155.77%
Fibonacci (Execution) 1039.5±42.11µs 1026.7±23.72µs +1.25%
Fibonacci (Full) 1248.1±24.30µs 1241.0±22.11µs +0.57%
For loop (Execution) 23.5±0.74µs 23.5±0.38µs 0.00%
For loop (Full) 221.9±5.18µs 204.7±4.32µs +8.40%
For loop (Lexer) 8.2±0.19µs 5.8±0.07µs +41.38%
For loop (Parser) 40.5±0.89µs 13.9±0.24µs +191.37%
Goal Symbols (Parser) 24.6±0.41µs 8.8±0.26µs +179.55%
Hello World (Lexer) 1269.4±35.83ns 991.2±31.56ns +28.07%
Hello World (Parser) 6.1±0.22µs 2.3±0.04µs +165.22%
Long file (Parser) 800.3±13.87ns 6.2±0.05ms -99.99%
Number Object Access (Execution) 4.3±0.11µs 4.3±0.13µs 0.00%
Number Object Access (Full) 238.3±7.26µs 231.6±6.93µs +2.89%
Object Creation (Execution) 6.3±0.15µs 6.5±0.17µs -3.08%
Object Creation (Full) 214.2±10.06µs 210.4±6.88µs +1.81%
RegExp (Execution) 75.3±1.86µs 76.0±2.76µs -0.92%
RegExp (Full) 323.9±9.98µs 319.7±10.04µs +1.31%
RegExp Literal (Execution) 79.4±2.52µs 79.1±1.85µs +0.38%
RegExp Literal (Full) 277.6±6.71µs 275.1±9.08µs +0.91%
RegExp Literal Creation (Execution) 76.0±2.37µs 76.4±2.33µs -0.52%
RegExp Literal Creation (Full) 318.4±10.06µs 314.8±6.64µs +1.14%
Static Object Property Access (Execution) 6.6±0.13µs 6.8±0.22µs -2.94%
Static Object Property Access (Full) 193.8±4.16µs 188.2±9.44µs +2.98%
String Object Access (Execution) 9.0±0.17µs 9.1±0.36µs -1.10%
String Object Access (Full) 201.9±7.57µs 200.9±46.68µs +0.50%
String comparison (Execution) 7.0±0.23µs 7.2±0.19µs -2.78%
String comparison (Full) 202.7±6.68µs 190.2±10.19µs +6.57%
String concatenation (Execution) 5.9±0.22µs 6.0±0.12µs -1.67%
String concatenation (Full) 195.5±9.03µs 184.4±5.03µs +6.02%
String copy (Execution) 4.8±0.22µs 4.7±0.08µs +2.13%
String copy (Full) 185.7±6.18µs 181.6±8.19µs +2.26%
Symbols (Execution) 4.2±0.19µs 4.2±0.08µs 0.00%
Symbols (Full) 175.5±3.40µs 173.8±7.64µs +0.98%

@github-actions
Copy link

Benchmark for ab00e0a

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 356.9±0.17ns 366.4±0.16ns -2.59%
Arithmetic operations (Full) 150.1±0.21µs 146.0±0.15µs +2.81%
Array access (Execution) 11.7±0.03µs 11.8±0.03µs -0.85%
Array access (Full) 176.9±0.27µs 162.1±0.38µs +9.13%
Array creation (Execution) 3.3±0.00ms 3.2±0.00ms +3.13%
Array creation (Full) 3.5±0.00ms 3.6±0.01ms -2.78%
Array pop (Execution) 1228.3±2.73µs 1222.2±3.53µs +0.50%
Array pop (Full) 1734.5±1.37µs 1505.5±1.86µs +15.21%
Boolean Object Access (Execution) 4.5±0.04µs 4.4±0.01µs +2.27%
Boolean Object Access (Full) 165.0±0.33µs 152.3±0.45µs +8.34%
Create Realm 131.0±0.26µs 131.0±0.12µs 0.00%
Dynamic Object Property Access (Execution) 6.0±0.02µs 6.0±0.02µs 0.00%
Dynamic Object Property Access (Full) 165.5±0.23µs 157.2±0.26µs +5.28%
Expression (Lexer) 1759.4±1.37ns N/A N/A
Expression (Parser) 10.3±0.02µs 4.3±0.00µs +139.53%
Fibonacci (Execution) 842.1±1.36µs 842.7±1.17µs -0.07%
Fibonacci (Full) 1039.0±1.56µs 1011.0±1.14µs +2.77%
For loop (Execution) 19.1±0.03µs 19.3±0.08µs -1.04%
For loop (Full) 184.2±0.47µs 166.4±0.20µs +10.70%
For loop (Lexer) 6.8±0.06µs 4.5±0.04µs +51.11%
For loop (Parser) 31.7±0.09µs 12.2±0.01µs +159.84%
Goal Symbols (Parser) 19.1±0.04µs 7.6±0.01µs +151.32%
Hello World (Lexer) 1054.7±0.79ns 801.6±0.66ns +31.57%
Hello World (Parser) 4.9±0.01µs 1989.2±1.93ns +146.33%
Long file (Parser) 695.9±23.79ns 5.5±0.02ms -99.99%
Number Object Access (Execution) 3.5±0.00µs 3.5±0.00µs 0.00%
Number Object Access (Full) 201.2±0.24µs 190.2±0.20µs +5.78%
Object Creation (Execution) 5.2±0.00µs 5.3±0.08µs -1.89%
Object Creation (Full) 178.8±0.18µs 170.2±0.17µs +5.05%
RegExp (Execution) 62.1±0.46µs 61.9±0.42µs +0.32%
RegExp (Full) 269.5±0.50µs 259.4±0.39µs +3.89%
RegExp Literal (Execution) 65.6±0.50µs 65.0±0.46µs +0.92%
RegExp Literal (Full) 233.4±0.48µs 225.3±0.47µs +3.60%
RegExp Literal Creation (Execution) 62.2±0.43µs 61.9±0.57µs +0.48%
RegExp Literal Creation (Full) 263.4±0.47µs 260.3±0.61µs +1.19%
Static Object Property Access (Execution) 5.4±0.01µs 5.5±0.01µs -1.82%
Static Object Property Access (Full) 161.7±0.19µs 152.3±0.33µs +6.17%
String Object Access (Execution) 7.4±0.01µs 7.5±0.01µs -1.33%
String Object Access (Full) 166.4±0.18µs 154.6±0.21µs +7.63%
String comparison (Execution) 5.9±0.13µs 5.8±0.03µs +1.72%
String comparison (Full) 166.7±0.85µs 153.9±0.23µs +8.32%
String concatenation (Execution) 4.9±0.01µs 4.8±0.02µs +2.08%
String concatenation (Full) 160.4±0.35µs 150.3±0.19µs +6.72%
String copy (Execution) 3.8±0.01µs 3.9±0.01µs -2.56%
String copy (Full) 152.8±0.14µs 147.1±0.15µs +3.87%
Symbols (Execution) 3.4±0.01µs 3.4±0.00µs 0.00%
Symbols (Full) 145.4±0.18µs 140.5±0.26µs +3.49%

@Razican Razican changed the base branch from master to new_lexer July 15, 2020 14:29
@Razican
Copy link
Member Author

Razican commented Jul 15, 2020

Can u make this branch vs new_lexer so we can see differences?

Done! :) I did a small hack with the primary expressions, until the parser cursor skips line terminators by default and we can remove (or hide) skip_line_terminators().

It seems we get a stack overflow somewhere, but I didn't debug it. Still, we get some tests passing already :)

@Razican Razican linked an issue Jul 15, 2020 that may be closed by this pull request
@HalidOdat
Copy link
Member

It seems we get a stack overflow somewhere, but I didn't debug it. Still, we get some tests passing already :)

That is awesome!!! :D

I'm curious how many passed

@Razican
Copy link
Member Author

Razican commented Jul 15, 2020

I'm curious how many passed

Difficult to get stats with the stack overflow, and note that we are still not adding the environment to the tests. We only add the first two files, that are always required, but not the extra files that need inclusion, or the built-in required stuff.

But, until the stack overflow, here is what I get:

Details
Suite: syntax, total: 12, passed: 0, conformance: 0.00%
Suite: binding, total: 15, passed: 0, conformance: 0.00%
Suite: destructuring, total: 15, passed: 0, conformance: 0.00%
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Suite: syntax, total: 211, passed: 3, conformance: 1.42%
Suite: top-level-await, total: 240, passed: 9, conformance: 3.75%
Suite: internals, total: 34, passed: 0, conformance: 0.00%
Suite: namespace, total: 36, passed: 0, conformance: 0.00%
Suite: module-code, total: 535, passed: 179, conformance: 33.46%
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'Identifier x has already been declared', boa/src/environment/function_environment_record.rs:93:13
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'Identifier x has already been declared', boa/src/environment/function_environment_record.rs:93:13
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'Identifier x has already been declared', boa/src/environment/function_environment_record.rs:93:13
Suite: function-code, total: 217, passed: 12, conformance: 5.53%
Suite: indirect, total: 61, passed: 0, conformance: 0.00%
Suite: direct, total: 94, passed: 7, conformance: 7.45%
Suite: eval-code, total: 155, passed: 7, conformance: 4.52%
thread 'main' panicked at 'not implemented: Continue(Continue { label: None })', boa/src/exec/mod.rs:677:22
Suite: leave, total: 15, passed: 1, conformance: 6.67%
Suite: return-from, total: 2, passed: 2, conformance: 100.00%
Suite: for-in, total: 8, passed: 5, conformance: 62.50%
Suite: function-declarations, total: 7, passed: 7, conformance: 100.00%
Suite: redeclaration, total: 95, passed: 95, conformance: 100.00%
Suite: redeclaration-global, total: 3, passed: 3, conformance: 100.00%
Suite: syntax, total: 113, passed: 110, conformance: 97.35%
Suite: shadowing, total: 15, passed: 14, conformance: 93.33%
Suite: block-scope, total: 145, passed: 127, conformance: 87.59%
Suite: keywords, total: 25, passed: 25, conformance: 100.00%
Suite: mapped, total: 40, passed: 0, conformance: 0.00%
Suite: unmapped, total: 5, passed: 2, conformance: 40.00%
Suite: arguments-object, total: 260, passed: 26, conformance: 10.00%
thread 'main' panicked at 'SyntaxError: wrong delete argument deletethis', boa/src/exec/operator/mod.rs:221:22
thread 'main' panicked at 'Binding already exists!', boa/src/environment/global_environment_record.rs:109:13
Suite: global-code, total: 41, passed: 15, conformance: 36.59%
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
Suite: line-terminators, total: 41, passed: 22, conformance: 53.66%
Suite: statementList, total: 80, passed: 16, conformance: 20.00%
Suite: number, total: 21, passed: 16, conformance: 76.19%
Suite: boolean, total: 5, passed: 4, conformance: 80.00%
Suite: undefined, total: 8, passed: 7, conformance: 87.50%
thread 'main' panicked at 'not implemented: Const(Undefined)', boa/src/exec/mod.rs:677:22
Suite: list, total: 3, passed: 1, conformance: 33.33%
Suite: null, total: 4, passed: 4, conformance: 100.00%
Suite: string, total: 24, passed: 19, conformance: 79.17%
Suite: object, total: 19, passed: 6, conformance: 31.58%
Suite: reference, total: 29, passed: 18, conformance: 62.07%
Suite: types, total: 113, passed: 75, conformance: 66.37%
Suite: import, total: 4, passed: 4, conformance: 100.00%
Suite: white-space, total: 42, passed: 21, conformance: 50.00%
Suite: rest-parameters, total: 11, passed: 3, conformance: 27.27%
thread 'main' panicked at 'TypeError: Cannot mutate an immutable binding i', boa/src/environment/declarative_environment_record.rs:117:13
Suite: syntax, total: 25, passed: 22, conformance: 88.00%
Suite: dstr, total: 90, passed: 6, conformance: 6.67%
Suite: const, total: 131, passed: 38, conformance: 29.01%
Suite: dstr, total: 276, passed: 18, conformance: 6.52%
thread 'main' panicked at 'not implemented: Continue(Continue { label: None })', boa/src/exec/mod.rs:677:22
Suite: for, total: 375, passed: 57, conformance: 15.20%
Suite: dstr, total: 90, passed: 6, conformance: 6.67%
Suite: variable, total: 169, passed: 53, conformance: 31.36%
Suite: dstr, total: 553, passed: 57, conformance: 10.31%
Suite: for-of, total: 716, passed: 87, conformance: 12.15%
Suite: break, total: 19, passed: 10, conformance: 52.63%
Suite: dstr, total: 33, passed: 33, conformance: 100.00%
Suite: for-in, total: 114, passed: 62, conformance: 54.39%
Suite: dstr, total: 90, passed: 6, conformance: 6.67%
Suite: try, total: 192, passed: 33, conformance: 17.19%
Suite: expression, total: 3, passed: 1, conformance: 33.33%
Suite: dstr, total: 180, passed: 12, conformance: 6.67%
Suite: generators, total: 253, passed: 32, conformance: 12.65%
Suite: early-errors, total: 4, passed: 4, conformance: 100.00%
Suite: dstr, total: 180, passed: 12, conformance: 6.67%
thread 'main' panicked at 'Identifier arguments has already been declared', boa/src/environment/function_environment_record.rs:93:13
thread 'main' panicked at 'Identifier arguments has already been declared', boa/src/environment/function_environment_record.rs:93:13
thread 'main' panicked at 'Identifier arguments has already been declared', boa/src/environment/function_environment_record.rs:93:13
thread 'main' panicked at 'Binding already exists!', boa/src/environment/global_environment_record.rs:109:13
thread 'main' panicked at 'Binding already exists!', boa/src/environment/global_environment_record.rs:109:13
thread 'main' panicked at 'Identifier arguments has already been declared', boa/src/environment/function_environment_record.rs:93:13
Suite: function, total: 435, passed: 127, conformance: 29.20%
Suite: dstr, total: 180, passed: 12, conformance: 6.67%
Suite: async-generator, total: 287, passed: 33, conformance: 11.50%
Suite: redeclaration, total: 64, passed: 64, conformance: 100.00%
Suite: syntax, total: 64, passed: 64, conformance: 100.00%
thread 'main' panicked at 'Binding already exists!', boa/src/environment/global_environment_record.rs:109:13
Suite: switch, total: 105, passed: 71, conformance: 67.62%
Suite: async-function, total: 61, passed: 28, conformance: 45.90%
Suite: if, total: 69, passed: 45, conformance: 65.22%
Suite: syntax, total: 31, passed: 25, conformance: 80.65%
Suite: dstr, total: 90, passed: 6, conformance: 6.67%
Suite: let, total: 140, passed: 41, conformance: 29.29%
Suite: throw, total: 14, passed: 1, conformance: 7.14%
Suite: labeled, total: 23, passed: 13, conformance: 56.52%
Suite: for-await-of, total: 1231, passed: 90, conformance: 7.31%
Suite: debugger, total: 2, passed: 1, conformance: 50.00%
Suite: do-while, total: 36, passed: 22, conformance: 61.11%
Suite: early-errors, total: 4, passed: 4, conformance: 100.00%
Suite: block, total: 20, passed: 16, conformance: 80.00%
Suite: while, total: 38, passed: 21, conformance: 55.26%
Suite: strict-mode, total: 2, passed: 1, conformance: 50.00%
Suite: gen-method-static, total: 26, passed: 14, conformance: 53.85%
Suite: WeakSet, total: 2, passed: 0, conformance: 0.00%
Suite: Array, total: 5, passed: 0, conformance: 0.00%
Suite: Proxy, total: 1, passed: 0, conformance: 0.00%
Suite: Error, total: 3, passed: 0, conformance: 0.00%
Suite: Promise, total: 2, passed: 0, conformance: 0.00%
Suite: Map, total: 2, passed: 0, conformance: 0.00%
Suite: TypedArray, total: 2, passed: 0, conformance: 0.00%
Suite: Set, total: 2, passed: 0, conformance: 0.00%
Suite: GeneratorFunction, total: 5, passed: 0, conformance: 0.00%
Suite: RegExp, total: 3, passed: 0, conformance: 0.00%
Suite: NativeError, total: 18, passed: 0, conformance: 0.00%
Suite: Boolean, total: 2, passed: 0, conformance: 0.00%
Suite: Function, total: 4, passed: 0, conformance: 0.00%
Suite: WeakMap, total: 2, passed: 0, conformance: 0.00%
Suite: DataView, total: 2, passed: 0, conformance: 0.00%
Suite: String, total: 3, passed: 0, conformance: 0.00%
Suite: ArrayBuffer, total: 2, passed: 0, conformance: 0.00%
Suite: Symbol, total: 2, passed: 0, conformance: 0.00%
Suite: Object, total: 4, passed: 0, conformance: 0.00%
Suite: Date, total: 2, passed: 0, conformance: 0.00%
Suite: Number, total: 2, passed: 0, conformance: 0.00%
Suite: builtin-objects, total: 70, passed: 0, conformance: 0.00%
Suite: subclass, total: 99, passed: 0, conformance: 0.00%
Suite: accessor-name-inst, total: 21, passed: 0, conformance: 0.00%
Suite: async-gen-method, total: 94, passed: 20, conformance: 21.28%
Suite: definition, total: 62, passed: 16, conformance: 25.81%
Suite: async-gen-method-static, total: 94, passed: 20, conformance: 21.28%
Suite: method-static, total: 15, passed: 6, conformance: 40.00%
Suite: accessor-name-static, total: 21, passed: 0, conformance: 0.00%
Suite: async-method, total: 21, passed: 12, conformance: 57.14%
Suite: method, total: 15, passed: 6, conformance: 40.00%
Suite: super, total: 8, passed: 0, conformance: 0.00%
Suite: early-errors, total: 2, passed: 2, conformance: 100.00%
Suite: syntax, total: 13, passed: 3, conformance: 23.08%
Suite: async-method-static, total: 21, passed: 12, conformance: 57.14%
Suite: gen-method, total: 26, passed: 14, conformance: 53.85%
Suite: name-binding, total: 6, passed: 0, conformance: 0.00%
Suite: dstr, total: 1860, passed: 144, conformance: 7.74%
Suite: async-gen-private-method-static, total: 79, passed: 14, conformance: 17.72%
Suite: async-private-method-static, total: 6, passed: 6, conformance: 100.00%
Suite: private-accessor-name, total: 20, passed: 0, conformance: 0.00%
Suite: private-methods, total: 5, passed: 0, conformance: 0.00%
Suite: gen-private-method-static, total: 11, passed: 8, conformance: 72.73%
Suite: async-private-method, total: 6, passed: 6, conformance: 100.00%
Suite: evaluation-error, total: 6, passed: 0, conformance: 0.00%
Suite: valid, total: 22, passed: 0, conformance: 0.00%
Suite: invalid-names, total: 28, passed: 28, conformance: 100.00%
Suite: delete, total: 96, passed: 96, conformance: 100.00%
Suite: early-errors, total: 220, passed: 220, conformance: 100.00%
Suite: syntax, total: 242, passed: 220, conformance: 90.91%
Suite: async-gen-private-method, total: 79, passed: 14, conformance: 17.72%
Suite: gen-private-method, total: 11, passed: 8, conformance: 72.73%
Suite: elements, total: 1407, passed: 325, conformance: 23.10%
Suite: arguments, total: 2, passed: 0, conformance: 0.00%
Suite: class, total: 3917, passed: 612, conformance: 15.62%
thread 'main' panicked at 'not implemented: Continue(Continue { label: None })', boa/src/exec/mod.rs:677:22
thread 'main' panicked at 'not implemented: Continue(Continue { label: None })', boa/src/exec/mod.rs:677:22
thread 'main' panicked at 'not implemented: Continue(Continue { label: None })', boa/src/exec/mod.rs:677:22
thread 'main' panicked at 'not implemented: Continue(Continue { label: None })', boa/src/exec/mod.rs:677:22
Suite: continue, total: 22, passed: 10, conformance: 45.45%
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
Suite: return, total: 16, passed: 12, conformance: 75.00%
Suite: with, total: 169, passed: 17, conformance: 10.06%
Suite: empty, total: 2, passed: 0, conformance: 0.00%
Suite: statements, total: 8559, passed: 1533, conformance: 17.91%
Suite: identifiers, total: 185, passed: 133, conformance: 71.89%
Suite: export, total: 3, passed: 3, conformance: 100.00%
Suite: hashbang, total: 29, passed: 19, conformance: 65.52%
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
Suite: comments, total: 52, passed: 34, conformance: 65.38%
Suite: reserved-words, total: 27, passed: 15, conformance: 55.56%
Suite: equals, total: 47, passed: 19, conformance: 40.43%
Suite: logical-or, total: 18, passed: 3, conformance: 16.67%
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "unresolvableReference" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "undefined" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "undefined" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "unresolvableReference" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Const(Null)) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Const(Null)) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
Suite: new, total: 59, passed: 5, conformance: 8.47%
thread 'main' panicked at 'TypeError: Cannot mix BigInt and other types, use explicit conversions', boa/src/builtins/value/mod.rs:426:17
thread 'main' panicked at 'TypeError: Cannot mix BigInt and other types, use explicit conversions', boa/src/builtins/value/mod.rs:426:17
thread 'main' panicked at 'TypeError: Cannot mix BigInt and other types, use explicit conversions', boa/src/builtins/value/mod.rs:426:17
thread 'main' panicked at 'TypeError: Cannot mix BigInt and other types, use explicit conversions', boa/src/builtins/value/mod.rs:426:17
thread 'main' panicked at 'TypeError: Cannot mix BigInt and other types, use explicit conversions', boa/src/builtins/value/mod.rs:426:17
thread 'main' panicked at 'TypeError: Cannot mix BigInt and other types, use explicit conversions', boa/src/builtins/value/mod.rs:426:17
Suite: less-than-or-equal, total: 47, passed: 7, conformance: 14.89%
Suite: tagged-template, total: 27, passed: 0, conformance: 0.00%
Suite: instanceof, total: 43, passed: 0, conformance: 0.00%
Suite: assignment-expression, total: 28, passed: 0, conformance: 0.00%
Suite: catch, total: 112, passed: 0, conformance: 0.00%
Suite: usage, total: 108, passed: 0, conformance: 0.00%
Suite: valid, total: 66, passed: 2, conformance: 3.03%
Suite: invalid, total: 122, passed: 118, conformance: 96.72%
Suite: syntax, total: 188, passed: 120, conformance: 63.83%
Suite: namespace, total: 67, passed: 0, conformance: 0.00%
Suite: dynamic-import, total: 533, passed: 121, conformance: 22.70%
Suite: await, total: 21, passed: 3, conformance: 14.29%
Suite: destructuring, total: 3, passed: 0, conformance: 0.00%
thread 'main' panicked at 'not implemented: Const(Undefined)', boa/src/exec/mod.rs:677:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: Const(Undefined)', boa/src/exec/mod.rs:677:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
Suite: dstr, total: 361, passed: 55, conformance: 15.24%
thread 'main' panicked at 'a span cannot start after its end', boa/src/syntax/ast/position.rs:69:9
Suite: assignment, total: 466, passed: 74, conformance: 15.88%
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "unresolvableReference" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "undefined" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "undefined" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "unresolvableReference" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Const(Null)) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Const(Null)) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32
thread 'main' panicked at 'not implemented: other types of property method definitions.', boa/src/exec/object/mod.rs:34:25
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'not implemented: SpreadObject(Identifier(Identifier { ident: "o" })) type of property', boa/src/exec/object/mod.rs:37:22
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', boa/src/exec/call/mod.rs:35:32

thread 'main' has overflowed its stack
fatal runtime error: stack overflow
Aborted (core dumped)

I removed a bunch of errors like this one:

thread 'main' panicked at 'could not get binary operation for Comma', boa/src/syntax/parser/expression/mod.rs:130:1

It seems we have a bug xD expressions are divided by commas (,), but we try to generate a binary operation for it.

@jasonwilliams
Copy link
Member

could we add some documentation on how to set up and run the test262 gitmodule?
I know it won't work yet but we could still write assuming it does work.

Also, this is awesome!

@github-actions
Copy link

Benchmark for fa950d4

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 431.5±20.09ns 430.0±20.64ns +0.35%
Arithmetic operations (Full) 173.1±7.37µs 167.6±5.61µs +3.28%
Array access (Execution) 13.5±0.72µs 13.2±0.59µs +2.27%
Array access (Full) 201.1±10.02µs 189.6±7.33µs +6.07%
Array creation (Execution) 3.8±0.12ms 3.7±0.14ms +2.70%
Array creation (Full) 4.1±0.14ms 4.0±0.14ms +2.50%
Array pop (Execution) 1398.8±68.24µs 1369.3±64.50µs +2.15%
Array pop (Full) 2.0±0.08ms 1680.4±73.95µs +19.02%
Boolean Object Access (Execution) 5.2±0.23µs 5.1±0.17µs +1.96%
Boolean Object Access (Full) 192.8±10.61µs 178.1±13.37µs +8.25%
Create Realm 149.6±6.85µs 155.3±6.47µs -3.67%
Dynamic Object Property Access (Execution) 7.0±0.26µs 6.9±0.31µs +1.45%
Dynamic Object Property Access (Full) 193.8±7.68µs 178.2±6.24µs +8.75%
Expression (Lexer) 2.0±0.09µs N/A N/A
Expression (Parser) 13.1±0.59µs 5.2±0.24µs +151.92%
Fibonacci (Execution) 984.9±32.77µs 1001.0±61.07µs -1.61%
Fibonacci (Full) 1206.2±42.99µs 1177.3±35.54µs +2.45%
For loop (Execution) 22.2±0.89µs 22.7±1.30µs -2.20%
For loop (Full) 216.9±8.38µs 190.5±9.54µs +13.86%
For loop (Lexer) 7.9±0.42µs 5.1±0.39µs +54.90%
For loop (Parser) 37.9±2.13µs 14.1±1.04µs +168.79%
Goal Symbols (Parser) 23.3±1.11µs 8.6±0.26µs +170.93%
Hello World (Lexer) 1205.2±48.52ns 917.1±42.28ns +31.41%
Hello World (Parser) 5.8±0.30µs 2.2±0.10µs +163.64%
Long file (Parser) 562.2±30.95ns 6.3±0.71ms -99.99%
Number Object Access (Execution) 4.1±0.18µs 4.1±0.19µs 0.00%
Number Object Access (Full) 225.9±9.55µs 217.8±7.76µs +3.72%
Object Creation (Execution) 5.9±0.35µs 6.2±0.79µs -4.84%
Object Creation (Full) 207.3±10.73µs 195.9±8.98µs +5.82%
RegExp (Execution) 69.9±2.73µs 70.3±4.41µs -0.57%
RegExp (Full) 313.4±14.98µs 293.6±16.43µs +6.74%
RegExp Literal (Execution) 74.5±4.86µs 72.4±4.36µs +2.90%
RegExp Literal (Full) 271.7±8.68µs 256.0±17.62µs +6.13%
RegExp Literal Creation (Execution) 70.2±2.95µs 72.6±5.87µs -3.31%
RegExp Literal Creation (Full) 309.7±9.33µs 297.3±9.75µs +4.17%
Static Object Property Access (Execution) 6.3±0.26µs 6.3±0.28µs 0.00%
Static Object Property Access (Full) 188.7±8.01µs 177.0±9.09µs +6.61%
String Object Access (Execution) 8.6±0.49µs 8.7±0.47µs -1.15%
String Object Access (Full) 189.2±7.75µs 181.4±6.97µs +4.30%
String comparison (Execution) 6.9±0.30µs 7.0±0.22µs -1.43%
String comparison (Full) 195.2±7.56µs 175.3±9.33µs +11.35%
String concatenation (Execution) 5.7±0.36µs 5.6±0.30µs +1.79%
String concatenation (Full) 183.9±11.57µs 174.4±6.69µs +5.45%
String copy (Execution) 4.5±0.22µs 4.6±0.25µs -2.17%
String copy (Full) 183.0±8.29µs 168.9±9.62µs +8.35%
Symbols (Execution) 3.9±0.15µs 4.1±0.15µs -4.88%
Symbols (Full) 172.6±7.19µs 159.6±6.94µs +8.15%

@Razican
Copy link
Member Author

Razican commented Jul 15, 2020

could we add some documentation on how to set up and run the test262 gitmodule?
I know it won't work yet but we could still write assuming it does work.

Also, this is awesome!

Yep, for now, if any of you want to try it, you will need to switch to the branch, run git submodule update, and then cargo run --bin tester. I will add that documentation later.

The idea is that the tester should be able to generate a JSON output, with the stats. We can then use that JSON to paint a nice webpage with all of our conformance tests.

@github-actions
Copy link

Benchmark for 4afee8e

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 452.9±10.38ns 475.4±13.14ns -4.73%
Arithmetic operations (Full) 188.2±8.51µs 182.4±3.80µs +3.18%
Array access (Execution) 14.8±0.42µs 15.1±0.28µs -1.99%
Array access (Full) 225.4±12.85µs 205.1±7.46µs +9.90%
Array creation (Execution) 4.1±0.06ms 4.1±0.06ms 0.00%
Array creation (Full) 5.4±0.24ms 4.6±0.10ms +17.39%
Array pop (Execution) 1566.0±60.82µs 1583.9±130.85µs -1.13%
Array pop (Full) 2.7±0.16ms 1921.3±79.39µs +40.53%
Boolean Object Access (Execution) 5.6±0.20µs 5.6±0.17µs 0.00%
Boolean Object Access (Full) 206.0±6.37µs 192.4±5.18µs +7.07%
Create Realm 163.4±11.98µs 168.3±4.60µs -2.91%
Dynamic Object Property Access (Execution) 7.6±0.22µs 7.8±0.19µs -2.56%
Dynamic Object Property Access (Full) 265.6±20.27µs 193.7±3.53µs +37.12%
Expression (Lexer) 2.3±0.16µs N/A N/A
Expression (Parser) 14.1±1.06µs 5.5±0.30µs +156.36%
Fibonacci (Execution) 1065.5±39.65µs 1074.6±20.34µs -0.85%
Fibonacci (Full) 1292.1±37.78µs 1278.0±24.47µs +1.10%
For loop (Execution) 24.1±0.60µs 24.3±0.47µs -0.82%
For loop (Full) 233.1±6.04µs 209.7±4.18µs +11.16%
For loop (Lexer) 8.5±0.17µs 5.7±0.10µs +49.12%
For loop (Parser) 40.8±0.79µs 14.8±0.89µs +175.68%
Goal Symbols (Parser) 24.7±0.61µs 9.1±0.16µs +171.43%
Hello World (Lexer) 1333.7±76.28ns 1013.8±16.64ns +31.55%
Hello World (Parser) 6.2±0.13µs 2.3±0.04µs +169.57%
Long file (Parser) 807.5±30.95ns 6.5±0.10ms -99.99%
Number Object Access (Execution) 4.4±0.10µs 4.4±0.14µs 0.00%
Number Object Access (Full) 244.2±8.07µs 243.8±7.79µs +0.16%
Object Creation (Execution) 6.7±0.18µs 7.0±0.16µs -4.29%
Object Creation (Full) 279.2±14.59µs 214.3±5.40µs +30.28%
RegExp (Execution) 78.7±2.09µs 78.6±2.46µs +0.13%
RegExp (Full) 340.4±15.97µs 328.2±6.68µs +3.72%
RegExp Literal (Execution) 82.9±2.06µs 83.6±3.71µs -0.84%
RegExp Literal (Full) 290.0±6.47µs 281.7±7.34µs +2.95%
RegExp Literal Creation (Execution) 78.6±2.68µs 80.2±5.81µs -2.00%
RegExp Literal Creation (Full) 338.0±18.57µs 326.6±8.56µs +3.49%
Static Object Property Access (Execution) 6.8±0.14µs 7.2±0.12µs -5.56%
Static Object Property Access (Full) 252.3±9.86µs 193.3±7.88µs +30.52%
String Object Access (Execution) 9.4±0.22µs 9.3±0.18µs +1.08%
String Object Access (Full) 206.5±3.65µs 197.2±11.90µs +4.72%
String comparison (Execution) 7.3±0.24µs 7.7±0.63µs -5.19%
String comparison (Full) 207.6±4.51µs 194.2±4.82µs +6.90%
String concatenation (Execution) 6.2±0.16µs 6.3±0.15µs -1.59%
String concatenation (Full) 197.7±4.33µs 190.7±8.16µs +3.67%
String copy (Execution) 4.9±0.15µs 5.1±0.12µs -3.92%
String copy (Full) 191.7±8.77µs 184.4±3.74µs +3.96%
Symbols (Execution) 4.3±0.13µs 4.8±0.85µs -10.42%
Symbols (Full) 182.1±7.88µs 180.7±11.61µs +0.77%

@github-actions
Copy link

Benchmark for f3cbd60

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 355.2±0.15ns 355.2±0.17ns 0.00%
Arithmetic operations (Full) 146.0±0.24µs 143.3±0.13µs +1.88%
Array access (Execution) 11.6±0.03µs 12.0±0.03µs -3.33%
Array access (Full) 174.1±0.98µs 160.6±0.28µs +8.41%
Array creation (Execution) 3.2±0.01ms 3.3±0.00ms -3.03%
Array creation (Full) 3.6±0.00ms 3.6±0.00ms 0.00%
Array pop (Execution) 1221.5±2.93µs 1226.3±2.57µs -0.39%
Array pop (Full) 1784.0±1.51µs 1506.4±2.25µs +18.43%
Boolean Object Access (Execution) 4.4±0.01µs 4.4±0.01µs 0.00%
Boolean Object Access (Full) 161.1±0.14µs 151.4±0.20µs +6.41%
Create Realm 127.9±0.12µs 132.4±0.14µs -3.40%
Dynamic Object Property Access (Execution) 5.9±0.01µs 6.1±0.03µs -3.28%
Dynamic Object Property Access (Full) 162.5±2.52µs 152.9±0.38µs +6.28%
Expression (Lexer) 1764.6±1.40ns N/A N/A
Expression (Parser) 11.0±0.01µs 4.3±0.01µs +155.81%
Fibonacci (Execution) 839.7±1.06µs 847.6±2.68µs -0.93%
Fibonacci (Full) 1015.7±1.22µs 1004.0±0.96µs +1.17%
For loop (Execution) 19.2±0.06µs 19.3±0.03µs -0.52%
For loop (Full) 185.7±0.27µs 165.3±0.28µs +12.34%
For loop (Lexer) 6.8±0.01µs 4.6±0.00µs +47.83%
For loop (Parser) 32.5±0.02µs 12.2±0.01µs +166.39%
Goal Symbols (Parser) 19.8±0.02µs 7.6±0.01µs +160.53%
Hello World (Lexer) 1058.6±3.57ns 810.0±0.76ns +30.69%
Hello World (Parser) 5.0±0.01µs 1929.7±3.38ns +159.11%
Long file (Parser) 702.8±20.29ns 5.5±0.01ms -99.99%
Number Object Access (Execution) 3.5±0.01µs 3.5±0.00µs 0.00%
Number Object Access (Full) 191.0±0.40µs 188.9±0.30µs +1.11%
Object Creation (Execution) 5.2±0.01µs 5.3±0.01µs -1.89%
Object Creation (Full) 175.8±0.25µs 168.4±0.21µs +4.39%
RegExp (Execution) 61.9±0.55µs 62.1±0.42µs -0.32%
RegExp (Full) 264.9±0.94µs 259.2±0.46µs +2.20%
RegExp Literal (Execution) 65.6±0.51µs 65.2±0.53µs +0.61%
RegExp Literal (Full) 227.3±1.36µs 222.4±0.32µs +2.20%
RegExp Literal Creation (Execution) 62.0±0.57µs 62.1±0.52µs -0.16%
RegExp Literal Creation (Full) 261.8±2.41µs 257.2±0.25µs +1.79%
Static Object Property Access (Execution) 5.4±0.01µs 5.6±0.01µs -3.57%
Static Object Property Access (Full) 158.7±0.21µs 150.7±0.21µs +5.31%
String Object Access (Execution) 7.4±0.01µs 7.4±0.01µs 0.00%
String Object Access (Full) 162.5±0.89µs 156.5±0.21µs +3.83%
String comparison (Execution) 5.8±0.02µs 5.8±0.02µs 0.00%
String comparison (Full) 163.4±0.30µs 153.3±0.24µs +6.59%
String concatenation (Execution) 4.9±0.04µs 5.0±0.02µs -2.00%
String concatenation (Full) 155.3±0.34µs 151.7±0.16µs +2.37%
String copy (Execution) 3.9±0.01µs 4.0±0.01µs -2.50%
String copy (Full) 149.6±0.28µs 147.1±0.28µs +1.70%
Symbols (Execution) 3.4±0.03µs 3.5±0.00µs -2.86%
Symbols (Full) 142.6±0.19µs 139.7±0.24µs +2.08%

@github-actions
Copy link

Benchmark for e585e2c

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 441.5±9.64ns 436.0±19.68ns +1.26%
Arithmetic operations (Full) 173.0±7.60µs 169.5±4.20µs +2.06%
Array access (Execution) 14.7±1.19µs 13.9±0.75µs +5.76%
Array access (Full) 213.9±18.34µs 191.0±9.05µs +11.99%
Array creation (Execution) 3.9±0.17ms 3.7±0.09ms +5.41%
Array creation (Full) 4.3±0.17ms 4.2±0.09ms +2.38%
Array pop (Execution) 1404.3±38.52µs 1410.2±55.22µs -0.42%
Array pop (Full) 2.0±0.04ms 1737.9±51.66µs +15.08%
Boolean Object Access (Execution) 5.3±0.21µs 5.3±0.35µs 0.00%
Boolean Object Access (Full) 190.0±5.26µs 182.6±14.38µs +4.05%
Create Realm 153.3±8.31µs 158.6±11.12µs -3.34%
Dynamic Object Property Access (Execution) 7.2±0.18µs 7.3±0.29µs -1.37%
Dynamic Object Property Access (Full) 188.9±6.25µs 184.6±6.26µs +2.33%
Expression (Lexer) 2.1±0.09µs N/A N/A
Expression (Parser) 13.1±0.48µs 5.1±0.16µs +156.86%
Fibonacci (Execution) 1015.3±50.97µs 1004.6±69.03µs +1.07%
Fibonacci (Full) 1235.4±58.70µs 1240.4±370.28µs -0.40%
For loop (Execution) 24.0±1.81µs 23.2±0.81µs +3.45%
For loop (Full) 220.2±8.30µs 197.9±16.37µs +11.27%
For loop (Lexer) 8.0±0.52µs 5.3±0.13µs +50.94%
For loop (Parser) 38.9±2.83µs 14.0±0.67µs +177.86%
Goal Symbols (Parser) 24.9±6.31µs 8.7±0.27µs +186.21%
Hello World (Lexer) 1234.6±43.46ns 944.8±88.98ns +30.67%
Hello World (Parser) 6.0±0.30µs 2.3±0.04µs +160.87%
Long file (Parser) 583.9±37.15ns 6.2±0.26ms -99.99%
Number Object Access (Execution) 4.3±0.25µs 4.1±0.10µs +4.88%
Number Object Access (Full) 220.4±4.89µs 221.6±4.37µs -0.54%
Object Creation (Execution) 6.3±0.15µs 6.4±0.23µs -1.56%
Object Creation (Full) 205.6±10.47µs 200.9±8.43µs +2.34%
RegExp (Execution) 73.0±2.15µs 72.5±2.38µs +0.69%
RegExp (Full) 315.6±23.55µs 308.4±11.63µs +2.33%
RegExp Literal (Execution) 81.9±14.27µs 76.1±3.39µs +7.62%
RegExp Literal (Full) 264.6±7.83µs 270.9±16.50µs -2.33%
RegExp Literal Creation (Execution) 73.9±3.45µs 72.1±2.96µs +2.50%
RegExp Literal Creation (Full) 308.2±19.49µs 317.3±14.16µs -2.87%
Static Object Property Access (Execution) 6.5±0.34µs 6.7±0.37µs -2.99%
Static Object Property Access (Full) 184.8±5.80µs 182.4±15.91µs +1.32%
String Object Access (Execution) 8.9±0.23µs 8.7±0.27µs +2.30%
String Object Access (Full) 191.5±8.60µs 185.9±5.43µs +3.01%
String comparison (Execution) 7.0±0.50µs 7.1±0.27µs -1.41%
String comparison (Full) 190.8±6.42µs 186.2±8.50µs +2.47%
String concatenation (Execution) 5.7±0.28µs 5.8±0.18µs -1.72%
String concatenation (Full) 183.8±8.77µs 181.9±7.20µs +1.04%
String copy (Execution) 4.7±0.14µs 4.9±0.19µs -4.08%
String copy (Full) 174.8±6.56µs 174.6±6.25µs +0.11%
Symbols (Execution) 4.2±0.16µs 4.3±0.26µs -2.33%
Symbols (Full) 176.2±16.21µs 166.9±5.21µs +5.57%

@Razican
Copy link
Member Author

Razican commented Jul 16, 2020

I had to add some extra exceptions, but the test suite now runs fully. These are the full results:

Total tests: 38441
Passed tests: 6347
Conformance: 16.51%

Note that they are not very reliable. We might have false positives and false negatives, until we fully implement the test runner.

I also added a colorful visualization, that doesn't look super good with all the panics, but it's ok for now xD

An example:
Screenshot from 2020-07-16 09-15-10

Red dots are failing tests, green dots are passing tests.

@Lan2u
Copy link

Lan2u commented Jul 16, 2020

I had to add some extra exceptions, but the test suite now runs fully. These are the full results:

Total tests: 38441
Passed tests: 6347
Conformance: 16.51%

Note that they are not very reliable. We might have false positives and false negatives, until we fully implement the test runner.

I also added a colorful visualization, that doesn't look super good with all the panics, but it's ok for now xD

An example:
Screenshot from 2020-07-16 09-15-10

Red dots are failing tests, green dots are passing tests.

Awesome!

@github-actions
Copy link

Benchmark for 57b90ba

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 423.9±16.10ns 444.2±27.72ns -4.57%
Arithmetic operations (Full) 192.0±10.61µs 195.0±20.35µs -1.54%
Array access (Execution) 14.9±1.12µs 15.3±1.10µs -2.61%
Array access (Full) 227.2±16.10µs 213.3±10.29µs +6.52%
Array creation (Execution) 3.9±0.17ms 3.9±0.17ms 0.00%
Array creation (Full) 4.3±0.15ms 4.3±0.18ms 0.00%
Array pop (Execution) 1464.6±103.30µs 1457.6±88.84µs +0.48%
Array pop (Full) 2.1±0.11ms 1757.1±60.02µs +19.52%
Boolean Object Access (Execution) 5.5±0.29µs 5.5±0.24µs 0.00%
Boolean Object Access (Full) 211.7±13.25µs 200.2±11.24µs +5.74%
Create Realm 166.1±11.17µs 174.0±15.65µs -4.54%
Dynamic Object Property Access (Execution) 7.5±0.29µs 8.2±0.51µs -8.54%
Dynamic Object Property Access (Full) 210.9±9.82µs 209.7±16.18µs +0.57%
Expression (Lexer) 2.2±0.12µs N/A N/A
Expression (Parser) 14.4±0.92µs 5.2±0.53µs +176.92%
Fibonacci (Execution) 1124.0±40.92µs 1135.6±65.11µs -1.02%
Fibonacci (Full) 1385.0±85.62µs 1331.0±70.73µs +4.06%
For loop (Execution) 26.3±1.65µs 24.8±1.55µs +6.05%
For loop (Full) 244.0±15.47µs 241.9±17.72µs +0.87%
For loop (Lexer) 8.3±0.47µs 5.6±0.28µs +48.21%
For loop (Parser) 41.2±2.16µs 15.3±1.01µs +169.28%
Goal Symbols (Parser) 24.5±1.36µs 9.0±0.56µs +172.22%
Hello World (Lexer) 1306.5±80.25ns 1041.3±67.15ns +25.47%
Hello World (Parser) 6.2±0.30µs 2.5±0.18µs +148.00%
Long file (Parser) 818.9±45.02ns 6.7±0.29ms -99.99%
Number Object Access (Execution) 4.5±0.35µs 4.6±0.34µs -2.17%
Number Object Access (Full) 246.7±12.68µs 253.5±17.32µs -2.68%
Object Creation (Execution) 6.8±0.47µs 6.9±0.39µs -1.45%
Object Creation (Full) 231.4±13.93µs 228.2±15.32µs +1.40%
RegExp (Execution) 83.2±5.35µs 81.3±5.11µs +2.34%
RegExp (Full) 349.5±18.53µs 342.0±24.97µs +2.19%
RegExp Literal (Execution) 86.4±4.65µs 88.7±8.38µs -2.59%
RegExp Literal (Full) 308.2±20.88µs 306.1±21.64µs +0.69%
RegExp Literal Creation (Execution) 83.7±5.89µs 81.7±4.48µs +2.45%
RegExp Literal Creation (Full) 346.5±21.90µs 347.6±22.80µs -0.32%
Static Object Property Access (Execution) 7.2±0.49µs 7.4±0.49µs -2.70%
Static Object Property Access (Full) 208.0±12.04µs 208.0±24.77µs 0.00%
String Object Access (Execution) 9.2±0.40µs 9.6±0.60µs -4.17%
String Object Access (Full) 212.4±12.04µs 205.1±12.48µs +3.56%
String comparison (Execution) 7.7±0.38µs 7.9±0.43µs -2.53%
String comparison (Full) 213.7±11.90µs 199.9±8.79µs +6.90%
String concatenation (Execution) 6.9±0.39µs 6.6±0.40µs +4.55%
String concatenation (Full) 202.8±11.81µs 200.3±15.33µs +1.25%
String copy (Execution) 5.6±0.37µs 5.5±0.33µs +1.82%
String copy (Full) 199.1±13.37µs 200.5±13.31µs -0.70%
Symbols (Execution) 4.5±0.25µs 4.6±0.27µs -2.17%
Symbols (Full) 188.2±29.43µs 184.5±10.85µs +2.01%

@github-actions
Copy link

Benchmark for 57b90ba

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 438.2±19.69ns 431.2±21.70ns +1.62%
Arithmetic operations (Full) 174.6±4.42µs 175.9±4.22µs -0.74%
Array access (Execution) 14.1±0.52µs 14.2±0.56µs -0.70%
Array access (Full) 208.2±5.81µs 193.6±6.74µs +7.54%
Array creation (Execution) 3.8±0.07ms 3.9±0.05ms -2.56%
Array creation (Full) 4.3±0.10ms 4.3±0.07ms 0.00%
Array pop (Execution) 1444.5±35.85µs 1474.1±55.04µs -2.01%
Array pop (Full) 2.1±0.05ms 1813.0±43.50µs +15.83%
Boolean Object Access (Execution) 5.3±0.25µs 5.2±0.16µs +1.92%
Boolean Object Access (Full) 198.1±14.83µs 185.3±5.46µs +6.91%
Create Realm 151.8±3.84µs 157.9±4.14µs -3.86%
Dynamic Object Property Access (Execution) 7.2±0.43µs 7.3±0.36µs -1.37%
Dynamic Object Property Access (Full) 194.2±8.60µs 188.2±4.84µs +3.19%
Expression (Lexer) 2.2±0.16µs N/A N/A
Expression (Parser) 13.4±0.51µs 5.3±0.18µs +152.83%
Fibonacci (Execution) 1000.9±21.67µs 1015.7±24.31µs -1.46%
Fibonacci (Full) 1237.8±81.04µs 1193.3±27.22µs +3.73%
For loop (Execution) 23.1±0.58µs 23.3±1.78µs -0.86%
For loop (Full) 217.8±9.63µs 202.0±10.52µs +7.82%
For loop (Lexer) 8.1±0.23µs 5.6±0.39µs +44.64%
For loop (Parser) 39.2±1.41µs 14.1±0.34µs +178.01%
Goal Symbols (Parser) 23.4±0.73µs 9.0±0.53µs +160.00%
Hello World (Lexer) 1245.9±33.18ns 996.8±33.60ns +24.99%
Hello World (Parser) 5.9±0.13µs 2.3±0.13µs +156.52%
Long file (Parser) 777.7±21.13ns 6.3±0.14ms -99.99%
Number Object Access (Execution) 4.3±0.27µs 4.2±0.28µs +2.38%
Number Object Access (Full) 229.6±9.61µs 234.4±5.95µs -2.05%
Object Creation (Execution) 6.4±0.33µs 6.3±0.09µs +1.59%
Object Creation (Full) 207.9±4.86µs 203.0±8.27µs +2.41%
RegExp (Execution) 74.3±2.38µs 74.4±2.25µs -0.13%
RegExp (Full) 316.3±7.67µs 318.3±9.49µs -0.63%
RegExp Literal (Execution) 78.5±3.21µs 79.2±5.63µs -0.88%
RegExp Literal (Full) 271.1±13.87µs 294.3±33.07µs -7.88%
RegExp Literal Creation (Execution) 74.9±2.49µs 74.6±2.51µs +0.40%
RegExp Literal Creation (Full) 312.2±12.12µs 314.7±11.39µs -0.79%
Static Object Property Access (Execution) 6.4±0.12µs 6.6±0.19µs -3.03%
Static Object Property Access (Full) 189.0±4.43µs 184.7±18.55µs +2.33%
String Object Access (Execution) 8.8±0.24µs 8.9±0.26µs -1.12%
String Object Access (Full) 193.0±4.21µs 188.9±6.61µs +2.17%
String comparison (Execution) 6.9±0.23µs 7.0±0.22µs -1.43%
String comparison (Full) 193.0±5.48µs 187.7±5.76µs +2.82%
String concatenation (Execution) 5.8±0.35µs 5.9±0.18µs -1.69%
String concatenation (Full) 182.7±4.24µs 188.1±17.63µs -2.87%
String copy (Execution) 4.8±0.18µs 4.7±0.25µs +2.13%
String copy (Full) 177.6±7.26µs 185.6±14.56µs -4.31%
Symbols (Execution) 4.2±0.18µs 4.2±0.12µs 0.00%
Symbols (Full) 170.3±5.93µs 167.6±4.71µs +1.61%

@HalidOdat
Copy link
Member

HalidOdat commented Jul 16, 2020

I also added a colorful visualization, that doesn't look super good with all the panics, but it's ok for now xD

Still looks awesome! :)

Maybe we should have a verbose cli option that prints every test one by one and tells us if that test failed or not, maybe with green ✔️ and ❌ for fails

@Razican
Copy link
Member Author

Razican commented Jul 16, 2020

I added some a "ignore" file for tests. I seem to be getting a bunch of stack overflows now, not sure why.

@HalidOdat
Copy link
Member

I added some a "ignore" file for tests.

This is much better than hard coding it :)
I would put this in the tester directory rather than the main one

I seem to be getting a bunch of stack overflows now, not sure why.

That is strange 🤔

@github-actions
Copy link

Benchmark for e15914c

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 345.9±27.14ns 347.8±29.77ns -0.55%
Arithmetic operations (Full) 169.3±11.63µs 166.4±13.28µs +1.74%
Array access (Execution) 14.1±1.12µs 15.7±0.78µs -10.19%
Array access (Full) 205.6±14.01µs 199.4±12.26µs +3.11%
Array creation (Execution) 3.5±0.18ms 3.7±0.26ms -5.41%
Array creation (Full) 3.9±0.19ms 3.8±0.20ms +2.63%
Array pop (Execution) 1382.4±100.33µs 1336.8±88.74µs +3.41%
Array pop (Full) 1933.8±132.83µs 1703.6±124.54µs +13.51%
Boolean Object Access (Execution) 5.0±0.40µs 4.9±0.33µs +2.04%
Boolean Object Access (Full) 192.6±14.08µs 185.7±14.36µs +3.72%
Create Realm 147.5±8.45µs 157.0±12.15µs -6.05%
Dynamic Object Property Access (Execution) 7.6±0.37µs 7.5±0.49µs +1.33%
Dynamic Object Property Access (Full) 199.3±13.29µs 176.7±14.02µs +12.79%
Expression (Lexer) 2.3±0.17µs N/A N/A
Expression (Parser) 12.2±0.77µs 4.9±0.30µs +148.98%
Fibonacci (Execution) 1064.9±79.15µs 1111.0±91.44µs -4.15%
Fibonacci (Full) 1226.4±77.83µs 1201.9±73.84µs +2.04%
For loop (Execution) 22.4±1.90µs 22.2±2.09µs +0.90%
For loop (Full) 213.4±14.25µs 196.0±18.35µs +8.88%
For loop (Lexer) 7.2±0.45µs 4.9±0.36µs +46.94%
For loop (Parser) 37.2±2.68µs 13.6±1.19µs +173.53%
Goal Symbols (Parser) 22.7±1.47µs 8.2±0.60µs +176.83%
Hello World (Lexer) 1056.6±82.73ns 775.6±53.31ns +36.23%
Hello World (Parser) 5.5±0.40µs 1955.4±155.98ns +181.27%
Long file (Parser) 709.5±57.96ns 6.1±0.31ms -99.99%
Number Object Access (Execution) 3.9±0.33µs 4.0±0.26µs -2.50%
Number Object Access (Full) 221.1±12.65µs 215.3±14.49µs +2.69%
Object Creation (Execution) 6.7±0.39µs 6.5±0.53µs +3.08%
Object Creation (Full) 209.6±12.47µs 196.0±15.55µs +6.94%
RegExp (Execution) 72.6±3.39µs 66.6±5.29µs +9.01%
RegExp (Full) 306.3±21.06µs 300.4±21.05µs +1.96%
RegExp Literal (Execution) 78.6±4.96µs 75.1±6.53µs +4.66%
RegExp Literal (Full) 270.6±19.08µs 251.9±15.45µs +7.42%
RegExp Literal Creation (Execution) 72.5±3.98µs 67.5±4.44µs +7.41%
RegExp Literal Creation (Full) 301.0±23.53µs 299.4±16.83µs +0.53%
Static Object Property Access (Execution) 6.9±0.43µs 6.5±0.52µs +6.15%
Static Object Property Access (Full) 191.3±11.94µs 183.1±11.43µs +4.48%
String Object Access (Execution) 9.0±0.68µs 8.6±0.64µs +4.65%
String Object Access (Full) 187.0±11.44µs 186.6±42.90µs +0.21%
String comparison (Execution) 7.0±0.48µs 7.3±0.51µs -4.11%
String comparison (Full) 189.1±12.78µs 182.2±22.29µs +3.79%
String concatenation (Execution) 6.1±0.36µs 5.9±0.45µs +3.39%
String concatenation (Full) 182.7±10.36µs 173.9±11.75µs +5.06%
String copy (Execution) 4.7±0.33µs 4.7±0.41µs 0.00%
String copy (Full) 175.3±11.83µs 169.7±12.47µs +3.30%
Symbols (Execution) 4.2±0.26µs 4.3±0.26µs -2.33%
Symbols (Full) 172.6±13.77µs 162.8±11.28µs +6.02%

@github-actions
Copy link

Benchmark for d126e0f

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 356.1±33.18ns 364.5±29.16ns -2.30%
Arithmetic operations (Full) 171.1±11.84µs 169.0±12.05µs +1.24%
Array access (Execution) 14.3±1.22µs 14.0±0.92µs +2.14%
Array access (Full) 205.7±11.99µs 202.7±21.03µs +1.48%
Array creation (Execution) 3.5±0.18ms 3.4±0.23ms +2.94%
Array creation (Full) 3.9±0.26ms 4.2±0.13ms -7.14%
Array pop (Execution) 1345.3±106.77µs 1330.4±91.29µs +1.12%
Array pop (Full) 1973.2±106.89µs 1819.2±68.55µs +8.47%
Boolean Object Access (Execution) 5.0±0.31µs 5.0±0.32µs 0.00%
Boolean Object Access (Full) 192.8±11.53µs 177.3±13.90µs +8.74%
Create Realm 145.4±14.37µs 147.5±9.58µs -1.42%
Dynamic Object Property Access (Execution) 7.2±0.56µs 7.4±0.55µs -2.70%
Dynamic Object Property Access (Full) 197.6±11.92µs 193.1±7.16µs +2.33%
Expression (Lexer) 2.3±0.19µs N/A N/A
Expression (Parser) 13.1±1.19µs 4.9±0.39µs +167.35%
Fibonacci (Execution) 1090.2±68.72µs 991.1±66.49µs +10.00%
Fibonacci (Full) 1248.3±94.45µs 1247.2±85.68µs +0.09%
For loop (Execution) 23.5±2.12µs 22.0±1.34µs +6.82%
For loop (Full) 215.5±15.31µs 190.8±11.47µs +12.95%
For loop (Lexer) 7.1±0.52µs 4.9±0.42µs +44.90%
For loop (Parser) 38.8±2.86µs 13.1±1.13µs +196.18%
Goal Symbols (Parser) 21.3±1.53µs 7.9±0.60µs +169.62%
Hello World (Lexer) 1026.7±72.94ns 803.0±64.29ns +27.86%
Hello World (Parser) 5.4±0.38µs 1977.7±168.26ns +173.04%
Long file (Parser) 720.9±54.98ns 6.1±0.44ms -99.99%
Number Object Access (Execution) 3.9±0.30µs 3.9±0.32µs 0.00%
Number Object Access (Full) 241.4±12.78µs 220.5±14.14µs +9.48%
Object Creation (Execution) 6.5±0.45µs 6.3±0.44µs +3.17%
Object Creation (Full) 222.5±11.09µs 221.2±55.48µs +0.59%
RegExp (Execution) 66.4±4.24µs 68.1±6.09µs -2.50%
RegExp (Full) 342.5±29.03µs 306.1±14.34µs +11.89%
RegExp Literal (Execution) 71.8±4.60µs 78.2±6.46µs -8.18%
RegExp Literal (Full) 276.7±17.57µs 261.0±20.34µs +6.02%
RegExp Literal Creation (Execution) 64.3±4.27µs 66.6±3.67µs -3.45%
RegExp Literal Creation (Full) 312.7±21.90µs 299.6±13.51µs +4.37%
Static Object Property Access (Execution) 6.5±0.47µs 6.6±0.46µs -1.52%
Static Object Property Access (Full) 198.3±11.59µs 192.0±8.19µs +3.28%
String Object Access (Execution) 8.8±0.64µs 9.1±0.66µs -3.30%
String Object Access (Full) 189.8±10.77µs 178.3±14.06µs +6.45%
String comparison (Execution) 6.9±0.54µs 6.8±0.50µs +1.47%
String comparison (Full) 204.3±12.14µs 191.8±13.93µs +6.52%
String concatenation (Execution) 5.9±0.43µs 5.8±0.39µs +1.72%
String concatenation (Full) 196.3±11.40µs 191.0±13.31µs +2.77%
String copy (Execution) 4.7±0.37µs 4.7±0.33µs 0.00%
String copy (Full) 189.3±12.52µs 177.2±11.61µs +6.83%
Symbols (Execution) 4.1±0.31µs 4.1±0.34µs 0.00%
Symbols (Full) 162.0±9.45µs 158.9±10.01µs +1.95%

@github-actions
Copy link

Benchmark for bedb1b0

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 350.2±18.72ns 388.6±14.28ns -9.88%
Arithmetic operations (Full) 194.9±13.31µs 185.4±7.09µs +5.12%
Array access (Execution) 16.3±9.27µs 16.1±1.03µs +1.24%
Array access (Full) 232.3±15.17µs 221.3±10.05µs +4.97%
Array creation (Execution) 3.8±0.17ms 3.8±0.18ms 0.00%
Array creation (Full) 4.3±0.19ms 4.3±0.16ms 0.00%
Array pop (Execution) 1475.5±114.07µs 1554.4±58.62µs -5.08%
Array pop (Full) 2.2±0.09ms 1862.5±111.26µs +18.12%
Boolean Object Access (Execution) 5.3±0.35µs 5.5±0.34µs -3.64%
Boolean Object Access (Full) 216.2±9.82µs 197.3±17.20µs +9.58%
Create Realm 156.7±10.86µs 164.6±11.73µs -4.80%
Dynamic Object Property Access (Execution) 8.0±0.51µs 8.1±0.67µs -1.23%
Dynamic Object Property Access (Full) 213.5±8.47µs 207.9±12.11µs +2.69%
Expression (Lexer) 2.5±0.12µs N/A N/A
Expression (Parser) 14.0±0.86µs 5.5±0.27µs +154.55%
Fibonacci (Execution) 1146.0±55.83µs 1113.6±88.03µs +2.91%
Fibonacci (Full) 1389.1±60.20µs 1391.6±67.15µs -0.18%
For loop (Execution) 24.8±1.90µs 25.6±1.33µs -3.13%
For loop (Full) 236.7±12.75µs 215.9±10.41µs +9.63%
For loop (Lexer) 7.8±0.35µs 5.5±0.43µs +41.82%
For loop (Parser) 41.2±1.80µs 14.8±0.93µs +178.38%
Goal Symbols (Parser) 25.0±2.40µs 8.1±0.58µs +208.64%
Hello World (Lexer) 1135.0±77.04ns 881.4±42.69ns +28.77%
Hello World (Parser) 6.1±0.51µs 2.2±0.11µs +177.27%
Long file (Parser) 806.3±52.34ns 6.4±0.30ms -99.99%
Number Object Access (Execution) 4.2±0.19µs 4.5±0.30µs -6.67%
Number Object Access (Full) 244.1±11.76µs 239.2±12.32µs +2.05%
Object Creation (Execution) 7.1±0.35µs 7.1±0.43µs 0.00%
Object Creation (Full) 231.3±10.58µs 222.5±12.91µs +3.96%
RegExp (Execution) 74.3±3.93µs 74.8±14.05µs -0.67%
RegExp (Full) 337.2±17.48µs 322.6±27.86µs +4.53%
RegExp Literal (Execution) 79.4±4.19µs 75.6±6.27µs +5.03%
RegExp Literal (Full) 293.6±17.94µs 289.7±15.82µs +1.35%
RegExp Literal Creation (Execution) 73.3±4.28µs 76.9±12.12µs -4.68%
RegExp Literal Creation (Full) 336.6±16.13µs 329.8±16.72µs +2.06%
Static Object Property Access (Execution) 7.3±0.42µs 7.4±0.37µs -1.35%
Static Object Property Access (Full) 206.9±10.49µs 207.6±10.38µs -0.34%
String Object Access (Execution) 9.1±0.55µs 9.7±0.57µs -6.19%
String Object Access (Full) 219.2±10.64µs 201.0±11.10µs +9.05%
String comparison (Execution) 7.8±0.59µs 8.0±0.47µs -2.50%
String comparison (Full) 215.1±11.25µs 203.2±12.32µs +5.86%
String concatenation (Execution) 6.6±0.41µs 6.5±0.38µs +1.54%
String concatenation (Full) 202.1±8.70µs 198.5±9.45µs +1.81%
String copy (Execution) 4.8±0.27µs 5.2±0.30µs -7.69%
String copy (Full) 199.2±14.26µs 192.8±10.00µs +3.32%
Symbols (Execution) 4.4±0.26µs 4.6±0.29µs -4.35%
Symbols (Full) 172.2±8.29µs 179.4±8.87µs -4.01%

@HalidOdat HalidOdat removed this from the v0.10.0 milestone Jul 19, 2020
@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for 2f91dda

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 282.8±15.20ns 296.6±13.44ns -4.65%
Arithmetic operations (Full) 209.2±9.31µs 236.6±26.97µs -11.58%
Array access (Execution) 6.7±0.41µs 6.7±0.33µs 0.00%
Array access (Full) 227.3±10.81µs 236.6±18.07µs -3.93%
Array creation (Execution) 2.5±0.12ms 2.6±0.08ms -3.85%
Array creation (Full) 2.8±0.11ms 2.9±0.21ms -3.45%
Array pop (Execution) 864.0±40.96µs 905.2±48.32µs -4.55%
Array pop (Full) 1249.4±51.71µs 1222.3±60.88µs +2.22%
Boolean Object Access (Execution) 3.8±0.17µs 4.0±0.25µs -5.00%
Boolean Object Access (Full) 218.7±8.86µs 226.2±15.18µs -3.32%
Clean js (Execution) 586.3±36.71µs 584.0±25.67µs +0.39%
Clean js (Full) 840.2±39.42µs 902.2±63.47µs -6.87%
Clean js (Parser) 29.1±1.50µs 42.5±6.60µs -31.53%
Create Realm 356.1±17.55ns 378.8±18.00ns -5.99%
Dynamic Object Property Access (Execution) 4.5±0.14µs 4.4±0.21µs +2.27%
Dynamic Object Property Access (Full) 222.4±9.71µs 227.6±19.75µs -2.28%
Expression (Parser) 5.5±0.35µs 6.6±0.68µs -16.67%
Fibonacci (Execution) 724.3±34.80µs 724.0±36.87µs +0.04%
Fibonacci (Full) 968.1±56.05µs 942.7±42.31µs +2.69%
For loop (Execution) 18.3±1.01µs 18.6±1.02µs -1.61%
For loop (Full) 236.1±10.24µs 236.0±8.45µs +0.04%
For loop (Parser) 14.3±0.79µs 19.0±1.92µs -24.74%
Goal Symbols (Parser) 9.5±0.66µs 12.8±1.06µs -25.78%
Hello World (Parser) 2.3±0.10µs 3.3±0.20µs -30.30%
Long file (Parser) 627.7±42.22ns 815.0±70.81ns -22.98%
Mini js (Execution) 521.5±27.42µs 528.6±32.61µs -1.34%
Mini js (Full) 752.8±29.41µs 888.4±101.99µs -15.26%
Mini js (Parser) 25.5±1.11µs 34.0±2.23µs -25.00%
Number Object Access (Execution) 3.1±0.11µs 3.1±0.15µs 0.00%
Number Object Access (Full) 218.5±12.96µs 218.4±10.32µs +0.05%
Object Creation (Execution) 3.8±0.20µs 3.9±0.25µs -2.56%
Object Creation (Full) 261.7±13.46µs 258.5±12.52µs +1.24%
RegExp (Execution) 58.5±2.36µs 58.9±2.88µs -0.68%
RegExp (Full) 287.6±15.82µs 297.5±19.90µs -3.33%
RegExp Literal (Execution) 57.6±2.40µs 58.6±3.46µs -1.71%
RegExp Literal (Full) 284.7±17.13µs 315.9±39.48µs -9.88%
RegExp Literal Creation (Execution) 54.5±1.70µs 55.5±3.24µs -1.80%
RegExp Literal Creation (Full) 342.8±29.41µs 339.0±13.88µs +1.12%
Static Object Property Access (Execution) 4.1±0.18µs 4.1±0.26µs 0.00%
Static Object Property Access (Full) 219.0±8.96µs 217.4±11.42µs +0.74%
String Object Access (Execution) 5.6±0.28µs 5.8±0.39µs -3.45%
String Object Access (Full) 220.7±10.79µs 250.0±28.52µs -11.72%
String comparison (Execution) 5.3±0.44µs 5.2±0.21µs +1.92%
String comparison (Full) 222.2±10.18µs 221.6±11.23µs +0.27%
String concatenation (Execution) 4.2±0.23µs 4.2±0.20µs 0.00%
String concatenation (Full) 217.2±8.29µs 237.5±27.87µs -8.55%
String copy (Execution) 3.2±0.18µs 3.2±0.16µs 0.00%
String copy (Full) 215.8±11.10µs 215.8±10.91µs 0.00%
Symbols (Execution) 2.6±0.11µs 2.6±0.17µs 0.00%
Symbols (Full) 198.1±10.42µs 195.9±10.26µs +1.12%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for e799ebc

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 380.6±4.56ns 379.2±12.30ns +0.37%
Arithmetic operations (Full) 250.4±3.54µs 260.1±2.61µs -3.73%
Array access (Execution) 8.2±0.23µs 8.3±0.10µs -1.20%
Array access (Full) 274.4±6.30µs 277.7±3.80µs -1.19%
Array creation (Execution) 3.5±0.05ms 3.5±0.04ms 0.00%
Array creation (Full) 4.0±0.03ms 3.7±0.03ms +8.11%
Array pop (Execution) 1257.8±20.40µs 1240.3±21.68µs +1.41%
Array pop (Full) 1729.7±24.00µs 1646.3±41.20µs +5.07%
Boolean Object Access (Execution) 4.9±0.07µs 4.9±0.07µs 0.00%
Boolean Object Access (Full) 268.8±5.69µs 269.6±4.73µs -0.30%
Clean js (Execution) 761.4±15.47µs 767.8±23.76µs -0.83%
Clean js (Full) 1073.3±16.76µs 1045.2±14.02µs +2.69%
Clean js (Parser) 36.1±0.28µs 36.3±0.72µs -0.55%
Create Realm 474.5±2.92ns 472.2±8.74ns +0.49%
Dynamic Object Property Access (Execution) 5.5±0.13µs 5.5±0.11µs 0.00%
Dynamic Object Property Access (Full) 267.3±8.14µs 268.6±3.57µs -0.48%
Expression (Parser) 6.8±0.07µs 6.8±0.07µs 0.00%
Fibonacci (Execution) 831.2±28.70µs 821.3±10.70µs +1.21%
Fibonacci (Full) 1118.3±50.67µs 1110.0±17.22µs +0.75%
For loop (Execution) 22.7±0.31µs 22.7±0.24µs 0.00%
For loop (Full) 288.0±6.48µs 294.6±7.32µs -2.24%
For loop (Parser) 17.9±0.19µs 17.6±0.25µs +1.70%
Goal Symbols (Parser) 12.1±0.25µs 11.9±0.17µs +1.68%
Hello World (Parser) 3.0±0.06µs 2.9±0.05µs +3.45%
Long file (Parser) 777.7±11.59ns 778.3±9.83ns -0.08%
Mini js (Execution) 684.4±10.41µs 692.0±12.69µs -1.10%
Mini js (Full) 991.0±11.93µs 967.6±13.01µs +2.42%
Mini js (Parser) 32.0±0.23µs 31.7±0.56µs +0.95%
Number Object Access (Execution) 3.9±0.04µs 3.9±0.03µs 0.00%
Number Object Access (Full) 261.6±3.88µs 266.2±5.48µs -1.73%
Object Creation (Execution) 4.6±0.05µs 4.6±0.05µs 0.00%
Object Creation (Full) 317.1±5.34µs 323.5±5.10µs -1.98%
RegExp (Execution) 69.2±1.66µs 70.1±2.22µs -1.28%
RegExp (Full) 347.4±7.23µs 347.8±7.12µs -0.12%
RegExp Literal (Execution) 69.2±1.31µs 69.7±1.63µs -0.72%
RegExp Literal (Full) 342.2±5.03µs 346.0±6.33µs -1.10%
RegExp Literal Creation (Execution) 66.1±1.48µs 66.6±1.59µs -0.75%
RegExp Literal Creation (Full) 413.4±5.59µs 418.4±4.32µs -1.20%
Static Object Property Access (Execution) 4.9±0.08µs 4.9±0.13µs 0.00%
Static Object Property Access (Full) 264.7±4.08µs 271.6±3.68µs -2.54%
String Object Access (Execution) 7.1±0.09µs 7.1±0.09µs 0.00%
String Object Access (Full) 269.5±3.04µs 271.2±5.21µs -0.63%
String comparison (Execution) 6.4±0.16µs 6.4±0.09µs 0.00%
String comparison (Full) 267.4±10.62µs 272.5±12.51µs -1.87%
String concatenation (Execution) 5.2±0.09µs 5.3±0.19µs -1.89%
String concatenation (Full) 262.9±10.03µs 265.3±5.29µs -0.90%
String copy (Execution) 3.9±0.06µs 3.8±0.10µs +2.63%
String copy (Full) 256.4±5.44µs 260.9±8.36µs -1.72%
Symbols (Execution) 3.2±0.02µs 3.2±0.04µs 0.00%
Symbols (Full) 241.1±5.35µs 243.7±2.77µs -1.07%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for e730036

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 377.2±18.23ns 376.0±13.51ns +0.32%
Arithmetic operations (Full) 248.5±9.72µs 255.5±12.12µs -2.74%
Array access (Execution) 8.2±0.44µs 8.2±0.65µs 0.00%
Array access (Full) 280.0±68.00µs 269.8±11.47µs +3.78%
Array creation (Execution) 3.5±0.08ms 3.5±0.14ms 0.00%
Array creation (Full) 4.0±0.12ms 3.7±0.11ms +8.11%
Array pop (Execution) 1277.5±243.07µs 1229.2±35.79µs +3.93%
Array pop (Full) 1736.8±69.66µs 1643.1±47.48µs +5.70%
Boolean Object Access (Execution) 4.9±0.28µs 4.9±0.23µs 0.00%
Boolean Object Access (Full) 264.5±9.44µs 265.5±6.56µs -0.38%
Clean js (Execution) 764.0±24.04µs 767.3±33.72µs -0.43%
Clean js (Full) 1063.7±35.00µs 1049.2±32.99µs +1.38%
Clean js (Parser) 36.2±1.92µs 35.6±1.03µs +1.69%
Create Realm 478.5±19.43ns 468.8±24.72ns +2.07%
Dynamic Object Property Access (Execution) 5.3±0.21µs 5.4±0.23µs -1.85%
Dynamic Object Property Access (Full) 263.9±7.52µs 265.7±8.19µs -0.68%
Expression (Parser) 6.8±0.20µs 6.9±0.51µs -1.45%
Fibonacci (Execution) 827.1±23.37µs 819.2±21.07µs +0.96%
Fibonacci (Full) 1119.2±33.07µs 1100.1±40.57µs +1.74%
For loop (Execution) 22.6±0.65µs 22.7±0.55µs -0.44%
For loop (Full) 286.6±17.55µs 289.3±10.94µs -0.93%
For loop (Parser) 17.8±0.68µs 17.5±0.54µs +1.71%
Goal Symbols (Parser) 12.0±0.37µs 12.0±0.67µs 0.00%
Hello World (Parser) 3.1±0.15µs 3.0±0.16µs +3.33%
Long file (Parser) 774.1±30.76ns 762.7±30.44ns +1.49%
Mini js (Execution) 685.0±26.51µs 684.7±43.50µs +0.04%
Mini js (Full) 990.7±59.17µs 959.4±62.43µs +3.26%
Mini js (Parser) 32.3±2.07µs 31.6±0.65µs +2.22%
Number Object Access (Execution) 3.9±0.09µs 4.0±1.11µs -2.50%
Number Object Access (Full) 254.8±9.15µs 267.8±14.86µs -4.85%
Object Creation (Execution) 4.5±0.13µs 4.4±0.15µs +2.27%
Object Creation (Full) 317.4±14.22µs 320.8±16.18µs -1.06%
RegExp (Execution) 69.8±3.53µs 70.1±4.62µs -0.43%
RegExp (Full) 341.1±13.54µs 344.1±10.06µs -0.87%
RegExp Literal (Execution) 69.2±2.45µs 69.8±3.53µs -0.86%
RegExp Literal (Full) 341.3±13.25µs 340.8±12.34µs +0.15%
RegExp Literal Creation (Execution) 65.9±2.43µs 65.4±3.49µs +0.76%
RegExp Literal Creation (Full) 421.4±85.91µs 412.9±8.97µs +2.06%
Static Object Property Access (Execution) 4.8±0.17µs 4.9±0.24µs -2.04%
Static Object Property Access (Full) 261.9±9.54µs 265.4±11.67µs -1.32%
String Object Access (Execution) 7.2±0.53µs 7.1±0.45µs +1.41%
String Object Access (Full) 262.6±8.56µs 267.8±18.02µs -1.94%
String comparison (Execution) 6.3±0.20µs 6.5±0.26µs -3.08%
String comparison (Full) 267.1±8.04µs 263.1±11.41µs +1.52%
String concatenation (Execution) 5.0±0.17µs 5.0±0.23µs 0.00%
String concatenation (Full) 259.4±13.98µs 262.1±11.24µs -1.03%
String copy (Execution) 3.9±0.10µs 3.9±0.13µs 0.00%
String copy (Full) 258.1±14.84µs 259.5±13.93µs -0.54%
Symbols (Execution) 3.2±0.19µs 3.2±0.15µs 0.00%
Symbols (Full) 239.2±4.82µs 239.7±12.64µs -0.21%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for 79b3b6a

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 362.6±11.02ns 350.6±13.22ns +3.42%
Arithmetic operations (Full) 238.9±9.19µs 254.6±11.94µs -6.17%
Array access (Execution) 7.6±0.36µs 7.8±0.37µs -2.56%
Array access (Full) 264.2±9.79µs 263.1±8.26µs +0.42%
Array creation (Execution) 3.3±0.32ms 3.2±0.11ms +3.13%
Array creation (Full) 3.8±0.11ms 3.5±0.11ms +8.57%
Array pop (Execution) 1177.6±45.64µs 1155.7±28.32µs +1.89%
Array pop (Full) 1634.5±56.84µs 1552.5±59.97µs +5.28%
Boolean Object Access (Execution) 4.6±0.20µs 4.5±0.22µs +2.22%
Boolean Object Access (Full) 254.6±8.43µs 255.7±10.72µs -0.43%
Clean js (Execution) 727.3±28.29µs 715.3±31.47µs +1.68%
Clean js (Full) 998.3±38.13µs 1032.6±35.46µs -3.32%
Clean js (Parser) 34.0±1.59µs 34.7±1.39µs -2.02%
Create Realm 456.4±18.66ns 444.8±25.00ns +2.61%
Dynamic Object Property Access (Execution) 5.1±0.25µs 5.1±0.19µs 0.00%
Dynamic Object Property Access (Full) 255.6±11.79µs 258.2±18.12µs -1.01%
Expression (Parser) 6.5±0.24µs 6.6±0.22µs -1.52%
Fibonacci (Execution) 776.5±32.55µs 782.5±28.43µs -0.77%
Fibonacci (Full) 1102.1±57.09µs 1039.6±40.29µs +6.01%
For loop (Execution) 21.5±1.02µs 21.4±1.35µs +0.47%
For loop (Full) 271.7±11.27µs 284.4±13.18µs -4.47%
For loop (Parser) 16.6±0.62µs 17.4±0.65µs -4.60%
Goal Symbols (Parser) 11.3±0.44µs 11.7±1.54µs -3.42%
Hello World (Parser) 2.8±0.10µs 2.8±0.18µs 0.00%
Long file (Parser) 720.3±27.78ns 740.9±28.48ns -2.78%
Mini js (Execution) 661.9±19.19µs 650.1±20.01µs +1.82%
Mini js (Full) 925.7±45.81µs 955.0±41.09µs -3.07%
Mini js (Parser) 30.4±2.32µs 30.8±0.95µs -1.30%
Number Object Access (Execution) 3.6±0.14µs 3.7±0.23µs -2.70%
Number Object Access (Full) 250.9±10.77µs 252.0±11.59µs -0.44%
Object Creation (Execution) 4.3±0.22µs 4.3±0.25µs 0.00%
Object Creation (Full) 304.5±19.23µs 306.5±14.27µs -0.65%
RegExp (Execution) 67.8±4.26µs 65.1±3.34µs +4.15%
RegExp (Full) 324.8±14.87µs 322.6±7.76µs +0.68%
RegExp Literal (Execution) 68.5±3.90µs 65.1±3.85µs +5.22%
RegExp Literal (Full) 327.0±13.27µs 324.3±9.90µs +0.83%
RegExp Literal Creation (Execution) 62.8±2.58µs 63.3±2.54µs -0.79%
RegExp Literal Creation (Full) 392.8±14.71µs 393.2±13.02µs -0.10%
Static Object Property Access (Execution) 4.5±0.21µs 4.5±0.17µs 0.00%
Static Object Property Access (Full) 250.2±10.56µs 252.5±9.24µs -0.91%
String Object Access (Execution) 6.8±0.18µs 6.7±0.34µs +1.49%
String Object Access (Full) 252.9±16.02µs 262.0±8.68µs -3.47%
String comparison (Execution) 6.0±0.19µs 6.0±0.25µs 0.00%
String comparison (Full) 258.4±11.67µs 256.2±23.44µs +0.86%
String concatenation (Execution) 5.0±0.20µs 5.0±0.24µs 0.00%
String concatenation (Full) 247.4±8.93µs 254.9±12.10µs -2.94%
String copy (Execution) 3.6±0.17µs 3.6±0.14µs 0.00%
String copy (Full) 240.2±9.90µs 246.5±10.11µs -2.56%
Symbols (Execution) 3.1±0.14µs 3.0±0.12µs +3.33%
Symbols (Full) 231.7±12.53µs 234.3±8.81µs -1.11%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for 6c45f38

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 356.1±30.92ns 357.9±25.70ns -0.50%
Arithmetic operations (Full) 225.5±20.39µs 236.0±18.45µs -4.45%
Array access (Execution) 7.8±4.44µs 6.9±0.44µs +13.04%
Array access (Full) 259.9±23.34µs 230.9±13.09µs +12.56%
Array creation (Execution) 2.7±0.20ms 2.8±0.25ms -3.57%
Array creation (Full) 3.1±0.29ms 2.9±0.22ms +6.90%
Array pop (Execution) 1044.7±75.78µs 922.7±63.45µs +13.22%
Array pop (Full) 1363.3±101.34µs 1282.1±101.38µs +6.33%
Boolean Object Access (Execution) 4.3±0.36µs 4.5±0.28µs -4.44%
Boolean Object Access (Full) 237.1±11.43µs 230.7±14.90µs +2.77%
Clean js (Execution) 751.1±40.00µs 647.1±37.48µs +16.07%
Clean js (Full) 1001.5±80.86µs 882.6±99.27µs +13.47%
Clean js (Parser) 30.8±2.46µs 30.5±2.03µs +0.98%
Create Realm 397.1±32.45ns 394.0±28.29ns +0.79%
Dynamic Object Property Access (Execution) 4.9±0.38µs 4.7±0.37µs +4.26%
Dynamic Object Property Access (Full) 274.3±18.00µs 274.9±21.90µs -0.22%
Expression (Parser) 5.4±0.37µs 5.6±0.44µs -3.57%
Fibonacci (Execution) 760.6±55.14µs 781.1±60.63µs -2.62%
Fibonacci (Full) 1094.6±78.76µs 1001.2±89.93µs +9.33%
For loop (Execution) 19.2±1.76µs 18.5±0.80µs +3.78%
For loop (Full) 279.0±22.02µs 244.6±16.67µs +14.06%
For loop (Parser) 15.7±0.96µs 14.9±0.99µs +5.37%
Goal Symbols (Parser) 10.1±1.12µs 10.3±1.02µs -1.94%
Hello World (Parser) 2.5±0.12µs 2.5±0.26µs 0.00%
Long file (Parser) 677.7±32.88ns 634.6±35.08ns +6.79%
Mini js (Execution) 587.6±65.79µs 573.5±32.13µs +2.46%
Mini js (Full) 852.2±60.61µs 791.3±48.88µs +7.70%
Mini js (Parser) 30.2±2.51µs 27.0±2.08µs +11.85%
Number Object Access (Execution) 3.3±0.24µs 3.5±0.18µs -5.71%
Number Object Access (Full) 228.5±13.42µs 225.0±16.43µs +1.56%
Object Creation (Execution) 4.3±0.26µs 3.9±0.24µs +10.26%
Object Creation (Full) 283.9±17.12µs 280.9±21.92µs +1.07%
RegExp (Execution) 67.8±6.04µs 58.5±3.95µs +15.90%
RegExp (Full) 308.8±19.72µs 296.6±25.09µs +4.11%
RegExp Literal (Execution) 71.5±4.59µs 59.2±4.29µs +20.78%
RegExp Literal (Full) 332.6±32.72µs 301.9±22.30µs +10.17%
RegExp Literal Creation (Execution) 65.2±5.54µs 57.8±5.63µs +12.80%
RegExp Literal Creation (Full) 366.0±27.79µs 428.9±27.12µs -14.67%
Static Object Property Access (Execution) 4.7±0.31µs 4.3±0.30µs +9.30%
Static Object Property Access (Full) 234.0±17.73µs 249.0±27.84µs -6.02%
String Object Access (Execution) 6.2±0.60µs 6.9±0.45µs -10.14%
String Object Access (Full) 243.4±17.80µs 232.0±15.27µs +4.91%
String comparison (Execution) 6.3±0.49µs 5.8±0.54µs +8.62%
String comparison (Full) 235.3±11.69µs 257.9±34.43µs -8.76%
String concatenation (Execution) 5.1±0.31µs 4.4±0.28µs +15.91%
String concatenation (Full) 241.8±28.02µs 223.1±14.15µs +8.38%
String copy (Execution) 3.5±0.23µs 3.7±0.20µs -5.41%
String copy (Full) 228.3±17.31µs 220.6±14.33µs +3.49%
Symbols (Execution) 2.9±0.21µs 2.6±0.16µs +11.54%
Symbols (Full) 222.7±18.50µs 203.4±17.35µs +9.49%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for d1d4fe7

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 368.4±10.67ns 371.5±8.26ns -0.83%
Arithmetic operations (Full) 258.5±5.83µs 261.6±5.57µs -1.19%
Array access (Execution) 8.5±0.39µs 8.4±0.17µs +1.19%
Array access (Full) 283.6±12.92µs 288.6±5.90µs -1.73%
Array creation (Execution) 3.2±0.06ms 3.2±0.05ms 0.00%
Array creation (Full) 3.7±0.16ms 3.5±0.23ms +5.71%
Array pop (Execution) 1119.9±84.36µs 1154.4±36.00µs -2.99%
Array pop (Full) 1646.8±59.97µs 1554.9±22.43µs +5.91%
Boolean Object Access (Execution) 4.8±0.07µs 4.9±0.81µs -2.04%
Boolean Object Access (Full) 272.8±4.91µs 280.0±29.20µs -2.57%
Clean js (Execution) 771.9±61.63µs 749.5±13.16µs +2.99%
Clean js (Full) 1048.8±19.52µs 1033.3±26.13µs +1.50%
Clean js (Parser) 37.1±0.88µs 37.6±0.91µs -1.33%
Create Realm 456.7±11.30ns 463.8±11.82ns -1.53%
Dynamic Object Property Access (Execution) 5.6±0.25µs 5.6±0.20µs 0.00%
Dynamic Object Property Access (Full) 272.6±9.76µs 283.7±7.64µs -3.91%
Expression (Parser) 7.0±0.30µs 6.8±0.19µs +2.94%
Fibonacci (Execution) 896.3±37.08µs 884.3±16.79µs +1.36%
Fibonacci (Full) 1177.6±36.18µs 1178.9±30.69µs -0.11%
For loop (Execution) 23.1±0.79µs 23.2±0.67µs -0.43%
For loop (Full) 299.9±19.99µs 299.1±8.25µs +0.27%
For loop (Parser) 18.3±0.46µs 18.4±0.38µs -0.54%
Goal Symbols (Parser) 12.3±0.35µs 12.3±0.33µs 0.00%
Hello World (Parser) 3.1±0.07µs 3.1±0.14µs 0.00%
Long file (Parser) 789.9±19.42ns 796.8±17.63ns -0.87%
Mini js (Execution) 673.1±49.54µs 672.7±24.33µs +0.06%
Mini js (Full) 964.5±18.14µs 950.3±21.42µs +1.49%
Mini js (Parser) 32.6±0.48µs 33.4±1.29µs -2.40%
Number Object Access (Execution) 4.0±0.08µs 3.9±0.11µs +2.56%
Number Object Access (Full) 271.8±23.29µs 277.0±11.99µs -1.88%
Object Creation (Execution) 4.8±0.18µs 4.7±0.09µs +2.13%
Object Creation (Full) 327.6±13.14µs 334.6±13.17µs -2.09%
RegExp (Execution) 73.3±2.85µs 72.3±2.86µs +1.38%
RegExp (Full) 358.7±20.08µs 360.6±8.41µs -0.53%
RegExp Literal (Execution) 74.0±4.82µs 72.0±2.18µs +2.78%
RegExp Literal (Full) 357.5±16.36µs 361.7±6.93µs -1.16%
RegExp Literal Creation (Execution) 70.9±2.43µs 68.6±2.25µs +3.35%
RegExp Literal Creation (Full) 426.4±13.77µs 431.2±14.90µs -1.11%
Static Object Property Access (Execution) 5.1±0.21µs 5.2±0.35µs -1.92%
Static Object Property Access (Full) 275.6±10.30µs 279.6±25.04µs -1.43%
String Object Access (Execution) 7.2±0.23µs 7.1±0.21µs +1.41%
String Object Access (Full) 275.0±7.58µs 277.3±5.99µs -0.83%
String comparison (Execution) 6.6±0.17µs 6.5±0.14µs +1.54%
String comparison (Full) 276.5±9.96µs 281.8±8.56µs -1.88%
String concatenation (Execution) 5.4±0.18µs 5.3±0.10µs +1.89%
String concatenation (Full) 271.8±8.24µs 274.7±12.07µs -1.06%
String copy (Execution) 4.1±0.23µs 4.0±0.10µs +2.50%
String copy (Full) 261.5±6.70µs 269.4±5.53µs -2.93%
Symbols (Execution) 3.3±0.15µs 3.3±0.08µs 0.00%
Symbols (Full) 243.4±5.34µs 246.4±5.69µs -1.22%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for 069949d

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 367.8±3.49ns 367.6±5.26ns +0.05%
Arithmetic operations (Full) 243.5±2.76µs 246.7±2.32µs -1.30%
Array access (Execution) 8.1±0.15µs 8.0±0.07µs +1.25%
Array access (Full) 264.2±3.56µs 269.8±3.46µs -2.08%
Array creation (Execution) 3.4±0.03ms 3.3±0.01ms +3.03%
Array creation (Full) 3.7±0.03ms 3.7±0.04ms 0.00%
Array pop (Execution) 1215.6±13.64µs 1187.6±11.25µs +2.36%
Array pop (Full) 1645.1±15.77µs 1630.7±18.53µs +0.88%
Boolean Object Access (Execution) 4.7±0.10µs 4.7±0.05µs 0.00%
Boolean Object Access (Full) 258.2±2.06µs 263.5±9.39µs -2.01%
Clean js (Execution) 744.1±7.89µs 738.2±6.67µs +0.80%
Clean js (Full) 1033.5±13.27µs 1016.9±20.27µs +1.63%
Clean js (Parser) 35.5±0.40µs 35.7±0.28µs -0.56%
Create Realm 466.3±4.01ns 458.9±4.31ns +1.61%
Dynamic Object Property Access (Execution) 5.4±0.07µs 5.3±0.11µs +1.89%
Dynamic Object Property Access (Full) 258.6±3.07µs 260.1±2.77µs -0.58%
Expression (Parser) 6.8±0.08µs 6.6±0.08µs +3.03%
Fibonacci (Execution) 795.1±7.47µs 791.2±7.78µs +0.49%
Fibonacci (Full) 1068.4±10.20µs 1069.3±15.26µs -0.08%
For loop (Execution) 22.5±0.29µs 22.2±0.29µs +1.35%
For loop (Full) 277.8±6.60µs 281.1±4.27µs -1.17%
For loop (Parser) 17.3±0.22µs 17.1±0.17µs +1.17%
Goal Symbols (Parser) 11.8±0.17µs 11.7±0.23µs +0.85%
Hello World (Parser) 3.1±0.04µs 3.0±0.06µs +3.33%
Long file (Parser) 762.5±5.20ns 755.1±9.12ns +0.98%
Mini js (Execution) 670.9±9.30µs 667.6±7.67µs +0.49%
Mini js (Full) 946.8±9.33µs 934.2±11.53µs +1.35%
Mini js (Parser) 31.5±0.28µs 31.4±0.34µs +0.32%
Number Object Access (Execution) 3.8±0.05µs 3.8±0.04µs 0.00%
Number Object Access (Full) 258.0±4.68µs 256.2±3.12µs +0.70%
Object Creation (Execution) 4.4±0.07µs 4.4±0.03µs 0.00%
Object Creation (Full) 306.5±2.80µs 314.4±3.02µs -2.51%
RegExp (Execution) 67.5±1.39µs 67.4±1.68µs +0.15%
RegExp (Full) 333.2±3.49µs 341.4±3.25µs -2.40%
RegExp Literal (Execution) 67.6±1.35µs 67.9±1.23µs -0.44%
RegExp Literal (Full) 330.7±6.84µs 335.9±3.15µs -1.55%
RegExp Literal Creation (Execution) 64.1±1.23µs 64.3±0.97µs -0.31%
RegExp Literal Creation (Full) 401.6±3.88µs 403.5±4.36µs -0.47%
Static Object Property Access (Execution) 4.7±0.04µs 4.7±0.04µs 0.00%
Static Object Property Access (Full) 258.5±3.70µs 262.6±3.54µs -1.56%
String Object Access (Execution) 6.9±0.09µs 6.9±0.05µs 0.00%
String Object Access (Full) 261.4±3.06µs 261.3±2.56µs +0.04%
String comparison (Execution) 6.2±0.09µs 6.2±0.09µs 0.00%
String comparison (Full) 259.2±3.14µs 261.0±2.64µs -0.69%
String concatenation (Execution) 5.0±0.04µs 5.0±0.05µs 0.00%
String concatenation (Full) 252.2±3.71µs 255.5±2.96µs -1.29%
String copy (Execution) 3.8±0.06µs 3.8±0.03µs 0.00%
String copy (Full) 249.2±3.11µs 251.0±4.05µs -0.72%
Symbols (Execution) 3.2±0.03µs 3.1±0.03µs +3.23%
Symbols (Full) 232.8±4.95µs 235.6±2.83µs -1.19%

@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for c19c3da

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 299.3±24.63ns 319.8±22.29ns -6.41%
Arithmetic operations (Full) 195.7±12.03µs 205.2±13.59µs -4.63%
Array access (Execution) 6.8±0.45µs 6.9±0.44µs -1.45%
Array access (Full) 220.3±14.88µs 234.7±16.10µs -6.14%
Array creation (Execution) 3.0±0.16ms 2.8±0.16ms +7.14%
Array creation (Full) 3.0±0.18ms 3.2±0.16ms -6.25%
Array pop (Execution) 1055.5±73.52µs 974.2±72.58µs +8.35%
Array pop (Full) 1328.4±95.19µs 1449.9±85.85µs -8.38%
Boolean Object Access (Execution) 3.8±0.23µs 4.0±0.26µs -5.00%
Boolean Object Access (Full) 203.1±12.23µs 219.8±14.55µs -7.60%
Clean js (Execution) 591.6±37.10µs 638.8±40.70µs -7.39%
Clean js (Full) 824.2±48.69µs 824.3±52.92µs -0.01%
Clean js (Parser) 30.6±1.65µs 29.4±1.72µs +4.08%
Create Realm 390.4±27.86ns 415.0±23.64ns -5.93%
Dynamic Object Property Access (Execution) 4.5±0.33µs 4.5±0.33µs 0.00%
Dynamic Object Property Access (Full) 208.6±13.33µs 222.6±12.44µs -6.29%
Expression (Parser) 6.0±0.56µs 5.4±0.37µs +11.11%
Fibonacci (Execution) 679.1±44.58µs 676.5±33.06µs +0.38%
Fibonacci (Full) 882.4±52.11µs 906.3±63.98µs -2.64%
For loop (Execution) 18.5±1.26µs 18.8±1.27µs -1.60%
For loop (Full) 227.2±13.07µs 244.4±17.41µs -7.04%
For loop (Parser) 14.7±1.00µs 14.6±0.99µs +0.68%
Goal Symbols (Parser) 10.3±0.86µs 9.7±0.71µs +6.19%
Hello World (Parser) 2.6±0.14µs 2.4±0.19µs +8.33%
Long file (Parser) 678.6±57.47ns 650.3±43.46ns +4.35%
Mini js (Execution) 574.2±41.64µs 569.8±39.25µs +0.77%
Mini js (Full) 760.1±42.48µs 792.9±46.17µs -4.14%
Mini js (Parser) 27.4±1.04µs 27.3±1.71µs +0.37%
Number Object Access (Execution) 3.0±0.20µs 3.3±0.31µs -9.09%
Number Object Access (Full) 201.8±10.33µs 225.1±13.13µs -10.35%
Object Creation (Execution) 4.0±0.34µs 4.2±0.42µs -4.76%
Object Creation (Full) 248.8±17.53µs 262.2±18.84µs -5.11%
RegExp (Execution) 57.4±3.57µs 58.9±4.04µs -2.55%
RegExp (Full) 276.4±18.12µs 285.7±20.77µs -3.26%
RegExp Literal (Execution) 58.8±3.97µs 56.8±3.99µs +3.52%
RegExp Literal (Full) 265.6±16.16µs 277.9±20.20µs -4.43%
RegExp Literal Creation (Execution) 54.6±4.37µs 55.2±3.71µs -1.09%
RegExp Literal Creation (Full) 318.5±17.31µs 346.8±26.96µs -8.16%
Static Object Property Access (Execution) 4.2±0.19µs 4.1±0.25µs +2.44%
Static Object Property Access (Full) 222.9±22.20µs 222.7±12.81µs +0.09%
String Object Access (Execution) 5.5±0.35µs 5.8±0.40µs -5.17%
String Object Access (Full) 210.1±16.53µs 218.6±16.78µs -3.89%
String comparison (Execution) 5.1±0.42µs 5.5±0.26µs -7.27%
String comparison (Full) 208.6±12.12µs 223.0±13.54µs -6.46%
String concatenation (Execution) 4.4±0.33µs 4.3±0.29µs +2.33%
String concatenation (Full) 205.8±15.06µs 215.2±16.81µs -4.37%
String copy (Execution) 3.1±0.22µs 3.2±0.23µs -3.13%
String copy (Full) 200.8±12.05µs 211.1±13.96µs -4.88%
Symbols (Execution) 2.6±0.20µs 2.7±0.21µs -3.70%
Symbols (Full) 185.3±12.23µs 200.9±16.64µs -7.77%

@Razican Razican linked an issue Sep 2, 2020 that may be closed by this pull request
@github-actions
Copy link

github-actions bot commented Sep 2, 2020

Benchmark for d8fecc0

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 374.0±0.84ns 373.9±0.33ns +0.03%
Arithmetic operations (Full) 263.7±12.05µs 251.9±0.69µs +4.68%
Array access (Execution) 8.1±0.07µs 8.1±0.01µs 0.00%
Array access (Full) 269.1±0.69µs 272.4±0.85µs -1.21%
Array creation (Execution) 3.4±0.01ms 3.4±0.01ms 0.00%
Array creation (Full) 3.6±0.05ms 4.0±0.14ms -10.00%
Array pop (Execution) 1200.1±7.89µs 1206.8±4.76µs -0.56%
Array pop (Full) 1608.3±4.62µs 1686.5±5.42µs -4.64%
Boolean Object Access (Execution) 4.8±0.02µs 5.1±0.32µs -5.88%
Boolean Object Access (Full) 263.9±0.54µs 260.1±0.60µs +1.46%
Clean js (Execution) 735.0±3.93µs 784.3±34.97µs -6.29%
Clean js (Full) 1034.9±7.27µs 1041.4±13.69µs -0.62%
Clean js (Parser) 35.5±0.04µs 35.5±0.07µs 0.00%
Create Realm 487.8±19.32ns 463.9±0.50ns +5.15%
Dynamic Object Property Access (Execution) 5.5±0.43µs 5.4±0.02µs +1.85%
Dynamic Object Property Access (Full) 263.2±0.83µs 260.6±0.77µs +1.00%
Expression (Parser) 6.8±0.02µs 7.1±0.49µs -4.23%
Fibonacci (Execution) 806.3±3.61µs 791.5±1.46µs +1.87%
Fibonacci (Full) 1084.7±8.30µs 1096.4±2.32µs -1.07%
For loop (Execution) 22.4±0.15µs 22.4±0.14µs 0.00%
For loop (Full) 281.7±1.71µs 287.3±0.59µs -1.95%
For loop (Parser) 17.6±0.03µs 17.3±0.05µs +1.73%
Goal Symbols (Parser) 11.9±0.02µs 11.7±0.05µs +1.71%
Hello World (Parser) 3.0±0.01µs 3.0±0.01µs 0.00%
Long file (Parser) 766.4±1.11ns 764.4±2.02ns +0.26%
Mini js (Execution) 669.7±4.96µs 668.5±3.39µs +0.18%
Mini js (Full) 940.9±3.77µs 952.8±4.49µs -1.25%
Mini js (Parser) 31.5±0.05µs 31.4±0.09µs +0.32%
Number Object Access (Execution) 4.0±0.24µs 3.8±0.01µs +5.26%
Number Object Access (Full) 261.3±0.66µs 258.3±0.60µs +1.16%
Object Creation (Execution) 4.5±0.03µs 4.5±0.01µs 0.00%
Object Creation (Full) 313.1±1.55µs 315.0±1.02µs -0.60%
RegExp (Execution) 71.7±3.96µs 68.4±1.04µs +4.82%
RegExp (Full) 338.8±0.49µs 337.4±0.77µs +0.41%
RegExp Literal (Execution) 68.2±1.11µs 68.5±1.04µs -0.44%
RegExp Literal (Full) 368.0±32.51µs 336.7±0.76µs +9.30%
RegExp Literal Creation (Execution) 65.2±0.88µs 65.1±0.85µs +0.15%
RegExp Literal Creation (Full) 406.9±1.63µs 407.0±1.07µs -0.02%
Static Object Property Access (Execution) 4.9±0.03µs 4.8±0.01µs +2.08%
Static Object Property Access (Full) 261.2±2.36µs 258.5±0.60µs +1.04%
String Object Access (Execution) 7.1±0.02µs 7.0±0.02µs +1.43%
String Object Access (Full) 265.3±0.56µs 265.5±0.59µs -0.08%
String comparison (Execution) 6.4±0.08µs 6.4±0.02µs 0.00%
String comparison (Full) 263.6±1.10µs 262.7±0.42µs +0.34%
String concatenation (Execution) 5.0±0.03µs 5.1±0.01µs -1.96%
String concatenation (Full) 258.5±1.27µs 257.5±0.29µs +0.39%
String copy (Execution) 4.0±0.21µs 3.8±0.01µs +5.26%
String copy (Full) 250.3±1.06µs 254.1±0.37µs -1.50%
Symbols (Execution) 3.3±0.12µs 3.2±0.01µs +3.12%
Symbols (Full) 238.8±0.78µs 253.8±14.95µs -5.91%

Copy link
Member

@jasonwilliams jasonwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.
Why is the workflow running on this PR though when it should only run on merges to master?

Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks awesome :)

@Razican
Copy link
Member Author

Razican commented Sep 2, 2020

Why is the workflow running on this PR though when it should only run on merges to master?

Everything runs on PRs too, except for the benchmark store.

@jasonwilliams
Copy link
Member

Why is the workflow running on this PR though when it should only run on merges to master?

Everything runs on PRs too, except for the benchmark store.

Should it be failing ?

@Razican
Copy link
Member Author

Razican commented Sep 3, 2020

Why is the workflow running on this PR though when it should only run on merges to master?

Everything runs on PRs too, except for the benchmark store.

Should it be failing ?

It shouldn't I forgot to change the name of the binary after the change in Cargo.toml. Everything should be fine now. I will try to add some tests for Codecov not to complain.

@github-actions
Copy link

github-actions bot commented Sep 3, 2020

Benchmark for fcfd27b

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 368.9±2.57ns 368.4±3.38ns +0.14%
Arithmetic operations (Full) 250.3±1.49µs 247.6±1.01µs +1.09%
Array access (Execution) 8.1±0.06µs 8.0±0.07µs +1.25%
Array access (Full) 272.3±1.08µs 267.4±2.04µs +1.83%
Array creation (Execution) 3.4±0.02ms 3.4±0.02ms 0.00%
Array creation (Full) 3.6±0.02ms 3.8±0.02ms -5.26%
Array pop (Execution) 1200.2±10.55µs 1203.2±11.83µs -0.25%
Array pop (Full) 1609.5±4.47µs 1681.0±11.24µs -4.25%
Boolean Object Access (Execution) 4.9±0.04µs 4.7±0.05µs +4.26%
Boolean Object Access (Full) 265.6±1.42µs 260.9±1.01µs +1.80%
Clean js (Execution) 734.5±6.86µs 742.8±5.51µs -1.12%
Clean js (Full) 1027.5±9.85µs 1031.9±9.50µs -0.43%
Clean js (Parser) 35.8±0.29µs 35.4±0.23µs +1.13%
Create Realm 476.0±10.30ns 459.3±8.50ns +3.64%
Dynamic Object Property Access (Execution) 5.4±0.04µs 5.3±0.04µs +1.89%
Dynamic Object Property Access (Full) 264.7±2.96µs 262.2±2.01µs +0.95%
Expression (Parser) 6.8±0.02µs 6.8±0.05µs 0.00%
Fibonacci (Execution) 805.1±3.03µs 791.5±7.06µs +1.72%
Fibonacci (Full) 1078.2±13.14µs 1077.7±7.22µs +0.05%
For loop (Execution) 22.4±0.16µs 22.4±0.21µs 0.00%
For loop (Full) 285.6±1.76µs 284.2±1.52µs +0.49%
For loop (Parser) 17.5±0.10µs 17.2±0.16µs +1.74%
Goal Symbols (Parser) 11.8±0.11µs 11.8±0.07µs 0.00%
Hello World (Parser) 3.0±0.05µs 3.0±0.02µs 0.00%
Long file (Parser) 785.2±4.51ns 789.3±2.54ns -0.52%
Mini js (Execution) 669.2±5.19µs 673.6±5.41µs -0.65%
Mini js (Full) 939.6±7.40µs 947.7±7.25µs -0.85%
Mini js (Parser) 31.8±0.14µs 31.3±0.18µs +1.60%
Number Object Access (Execution) 3.9±0.03µs 3.8±0.03µs +2.63%
Number Object Access (Full) 258.6±1.76µs 254.6±1.53µs +1.57%
Object Creation (Execution) 4.5±0.04µs 4.5±0.02µs 0.00%
Object Creation (Full) 317.9±3.25µs 309.0±2.46µs +2.88%
RegExp (Execution) 68.1±1.11µs 68.3±1.18µs -0.29%
RegExp (Full) 339.1±2.62µs 335.0±2.00µs +1.22%
RegExp Literal (Execution) 68.0±1.34µs 68.3±1.15µs -0.44%
RegExp Literal (Full) 336.6±2.32µs 335.0±1.91µs +0.48%
RegExp Literal Creation (Execution) 64.9±1.01µs 64.9±1.03µs 0.00%
RegExp Literal Creation (Full) 413.0±3.04µs 402.7±1.73µs +2.56%
Static Object Property Access (Execution) 4.7±0.02µs 4.7±0.04µs 0.00%
Static Object Property Access (Full) 265.2±3.67µs 257.0±1.61µs +3.19%
String Object Access (Execution) 7.2±0.07µs 6.9±0.04µs +4.35%
String Object Access (Full) 264.1±1.66µs 262.6±0.63µs +0.57%
String comparison (Execution) 6.4±0.02µs 6.3±0.06µs +1.59%
String comparison (Full) 263.1±2.99µs 261.4±1.23µs +0.65%
String concatenation (Execution) 5.2±0.02µs 5.0±0.06µs +4.00%
String concatenation (Full) 261.6±1.81µs 254.5±2.21µs +2.79%
String copy (Execution) 3.9±0.02µs 3.8±0.03µs +2.63%
String copy (Full) 254.7±2.78µs 250.9±1.14µs +1.51%
Symbols (Execution) 3.2±0.03µs 3.1±0.03µs +3.23%
Symbols (Full) 237.1±1.56µs 240.0±11.77µs -1.21%

@github-actions
Copy link

github-actions bot commented Sep 3, 2020

Benchmark for 5208d30

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 393.9±15.55ns 411.6±22.13ns -4.30%
Arithmetic operations (Full) 264.3±16.57µs 272.3±10.77µs -2.94%
Array access (Execution) 8.9±0.39µs 9.1±1.28µs -2.20%
Array access (Full) 299.5±13.38µs 302.0±13.46µs -0.83%
Array creation (Execution) 3.2±0.10ms 3.4±0.10ms -5.88%
Array creation (Full) 3.8±0.09ms 3.8±0.13ms 0.00%
Array pop (Execution) 1112.4±56.16µs 1193.0±53.02µs -6.76%
Array pop (Full) 1677.2±51.53µs 1743.1±76.12µs -3.78%
Boolean Object Access (Execution) 5.0±0.20µs 5.1±0.16µs -1.96%
Boolean Object Access (Full) 285.3±18.36µs 286.5±15.21µs -0.42%
Clean js (Execution) 759.6±27.65µs 779.3±21.54µs -2.53%
Clean js (Full) 1047.7±68.15µs 1100.0±85.87µs -4.75%
Clean js (Parser) 41.1±2.12µs 39.7±0.71µs +3.53%
Create Realm 463.9±17.10ns 494.9±32.28ns -6.26%
Dynamic Object Property Access (Execution) 5.8±0.26µs 6.2±0.31µs -6.45%
Dynamic Object Property Access (Full) 286.9±12.90µs 286.2±9.88µs +0.24%
Expression (Parser) 7.0±0.39µs 7.1±0.22µs -1.41%
Fibonacci (Execution) 925.1±30.85µs 974.7±30.43µs -5.09%
Fibonacci (Full) 1236.5±53.55µs 1269.9±49.13µs -2.63%
For loop (Execution) 23.8±0.78µs 23.2±1.19µs +2.59%
For loop (Full) 307.1±11.70µs 317.0±12.29µs -3.12%
For loop (Parser) 18.1±1.04µs 19.2±0.61µs -5.73%
Goal Symbols (Parser) 12.7±0.49µs 12.6±0.46µs +0.79%
Hello World (Parser) 3.4±0.14µs 3.3±0.09µs +3.03%
Long file (Parser) 875.1±40.80ns 835.5±26.18ns +4.74%
Mini js (Execution) 683.7±26.25µs 701.8±26.57µs -2.58%
Mini js (Full) 968.9±58.51µs 1017.6±53.41µs -4.79%
Mini js (Parser) 37.0±1.68µs 35.0±0.78µs +5.71%
Number Object Access (Execution) 4.0±0.21µs 4.1±0.20µs -2.44%
Number Object Access (Full) 287.4±16.89µs 287.5±11.47µs -0.03%
Object Creation (Execution) 5.0±0.28µs 5.1±0.16µs -1.96%
Object Creation (Full) 338.6±14.51µs 349.4±18.57µs -3.09%
RegExp (Execution) 75.2±3.43µs 77.5±3.86µs -2.97%
RegExp (Full) 370.2±32.24µs 382.4±18.67µs -3.19%
RegExp Literal (Execution) 75.4±2.36µs 75.5±3.28µs -0.13%
RegExp Literal (Full) 369.7±13.74µs 371.3±20.25µs -0.43%
RegExp Literal Creation (Execution) 71.0±3.45µs 72.7±5.41µs -2.34%
RegExp Literal Creation (Full) 441.6±15.41µs 443.6±19.46µs -0.45%
Static Object Property Access (Execution) 5.3±0.20µs 5.7±0.50µs -7.02%
Static Object Property Access (Full) 284.5±15.92µs 297.0±11.43µs -4.21%
String Object Access (Execution) 7.7±0.46µs 7.5±0.28µs +2.67%
String Object Access (Full) 294.3±33.57µs 291.4±11.54µs +1.00%
String comparison (Execution) 6.7±0.32µs 6.8±0.45µs -1.47%
String comparison (Full) 279.9±12.61µs 288.5±8.34µs -2.98%
String concatenation (Execution) 5.8±0.23µs 5.6±0.37µs +3.57%
String concatenation (Full) 274.5±9.53µs 294.1±25.58µs -6.66%
String copy (Execution) 4.3±0.18µs 4.3±0.21µs 0.00%
String copy (Full) 271.4±14.96µs 280.7±8.70µs -3.31%
Symbols (Execution) 3.4±0.14µs 3.6±0.11µs -5.56%
Symbols (Full) 254.5±8.95µs 259.3±12.95µs -1.85%

@github-actions
Copy link

github-actions bot commented Sep 3, 2020

Benchmark for 5e28a1d

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 370.6±1.97ns 371.3±2.12ns -0.19%
Arithmetic operations (Full) 247.6±1.84µs 251.5±8.18µs -1.55%
Array access (Execution) 8.1±0.04µs 8.0±0.05µs +1.25%
Array access (Full) 268.4±1.37µs 270.0±1.54µs -0.59%
Array creation (Execution) 3.4±0.01ms 3.4±0.01ms 0.00%
Array creation (Full) 3.6±0.07ms 3.9±0.02ms -7.69%
Array pop (Execution) 1201.0±9.30µs 1204.9±8.72µs -0.32%
Array pop (Full) 1597.8±6.36µs 1694.6±8.77µs -5.71%
Boolean Object Access (Execution) 4.8±0.02µs 4.8±0.03µs 0.00%
Boolean Object Access (Full) 261.0±2.04µs 262.7±2.18µs -0.65%
Clean js (Execution) 733.8±8.51µs 739.0±5.99µs -0.70%
Clean js (Full) 1025.5±14.76µs 1039.3±11.40µs -1.33%
Clean js (Parser) 35.6±0.19µs 35.4±0.19µs +0.56%
Create Realm 475.1±4.30ns 460.9±2.73ns +3.08%
Dynamic Object Property Access (Execution) 5.5±0.11µs 5.3±0.03µs +3.77%
Dynamic Object Property Access (Full) 263.4±2.33µs 261.7±2.33µs +0.65%
Expression (Parser) 7.0±0.05µs 6.7±0.03µs +4.48%
Fibonacci (Execution) 801.6±3.94µs 790.8±7.64µs +1.37%
Fibonacci (Full) 1078.9±6.98µs 1079.5±7.33µs -0.06%
For loop (Execution) 22.3±0.16µs 22.3±0.18µs 0.00%
For loop (Full) 284.8±1.86µs 286.6±1.40µs -0.63%
For loop (Parser) 17.6±0.09µs 17.3±0.10µs +1.73%
Goal Symbols (Parser) 11.8±0.10µs 11.7±0.14µs +0.85%
Hello World (Parser) 3.1±0.02µs 3.0±0.02µs +3.33%
Long file (Parser) 759.3±5.52ns 763.2±3.38ns -0.51%
Mini js (Execution) 664.8±4.24µs 668.7±5.42µs -0.58%
Mini js (Full) 940.5±8.96µs 956.0±5.00µs -1.62%
Mini js (Parser) 31.6±0.27µs 31.4±0.18µs +0.64%
Number Object Access (Execution) 3.8±0.01µs 3.8±0.03µs 0.00%
Number Object Access (Full) 255.7±1.84µs 260.3±1.13µs -1.77%
Object Creation (Execution) 4.5±0.02µs 4.5±0.03µs 0.00%
Object Creation (Full) 311.7±2.04µs 308.3±1.59µs +1.10%
RegExp (Execution) 68.0±1.15µs 67.6±1.34µs +0.59%
RegExp (Full) 341.1±1.72µs 334.5±2.53µs +1.97%
RegExp Literal (Execution) 67.9±1.11µs 67.7±1.22µs +0.30%
RegExp Literal (Full) 336.2±1.79µs 336.0±2.02µs +0.06%
RegExp Literal Creation (Execution) 64.7±0.92µs 64.7±0.91µs 0.00%
RegExp Literal Creation (Full) 410.2±1.66µs 407.1±2.78µs +0.76%
Static Object Property Access (Execution) 4.8±0.04µs 4.7±0.03µs +2.13%
Static Object Property Access (Full) 260.5±1.65µs 261.4±1.07µs -0.34%
String Object Access (Execution) 7.1±0.05µs 6.9±0.04µs +2.90%
String Object Access (Full) 261.6±1.44µs 264.9±2.27µs -1.25%
String comparison (Execution) 6.3±0.05µs 6.3±0.04µs 0.00%
String comparison (Full) 261.4±1.92µs 269.1±2.18µs -2.86%
String concatenation (Execution) 5.1±0.05µs 5.1±0.03µs 0.00%
String concatenation (Full) 259.2±1.73µs 263.1±3.07µs -1.48%
String copy (Execution) 3.8±0.02µs 3.8±0.03µs 0.00%
String copy (Full) 256.7±1.67µs 253.5±1.75µs +1.26%
Symbols (Execution) 3.2±0.04µs 3.1±0.06µs +3.23%
Symbols (Full) 236.0±1.98µs 237.6±1.32µs -0.67%

@HalidOdat
Copy link
Member

Lets merge this :)

@HalidOdat HalidOdat merged commit 8fde98a into master Sep 6, 2020
@HalidOdat HalidOdat deleted the test262 branch September 6, 2020 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request test Issues and PRs related to the tests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Lexing and Parsing errors should throw a SyntaxError Parser Panic setup test262 harness
6 participants