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

Move require_object_coercible to Value #654

Merged
merged 1 commit into from
Aug 22, 2020

Conversation

HalidOdat
Copy link
Member

This is something I missed when I was moving the methods in #625 , like to_string() this is a value operation so it belongs in Value .

It changes the following:

  • Move Interpreter::require_object_coercible to Value::require_object_coercible

@HalidOdat HalidOdat added execution Issues or PRs related to code execution API labels Aug 21, 2020
@HalidOdat HalidOdat added this to the v0.10.0 milestone Aug 21, 2020
@codecov
Copy link

codecov bot commented Aug 21, 2020

Codecov Report

Merging #654 into master will not change coverage.
The diff coverage is 90.90%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #654   +/-   ##
=======================================
  Coverage   72.50%   72.50%           
=======================================
  Files         179      179           
  Lines       13376    13376           
=======================================
  Hits         9698     9698           
  Misses       3678     3678           
Impacted Files Coverage Δ
boa/src/exec/mod.rs 69.75% <ø> (-0.13%) ⬇️
boa/src/builtins/value/mod.rs 69.34% <75.00%> (+0.05%) ⬆️
boa/src/builtins/string/mod.rs 45.81% <100.00%> (ø)

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 4009204...9ef7127. Read the comment docs.

@github-actions
Copy link

Benchmark for 2c02efd

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 338.9±18.71ns 339.4±19.25ns -0.15%
Arithmetic operations (Full) 243.8±13.30µs 249.1±11.14µs -2.13%
Array access (Execution) 7.9±0.33µs 8.2±0.38µs -3.66%
Array access (Full) 264.8±11.91µs 275.9±12.50µs -4.02%
Array creation (Execution) 3.1±0.11ms 3.1±0.13ms 0.00%
Array creation (Full) 3.4±0.15ms 3.4±0.12ms 0.00%
Array pop (Execution) 1103.5±49.82µs 1106.2±113.11µs -0.24%
Array pop (Full) 1489.8±50.59µs 1441.7±65.27µs +3.34%
Boolean Object Access (Execution) 4.7±0.25µs 4.8±0.21µs -2.08%
Boolean Object Access (Full) 271.2±18.82µs 254.8±14.79µs +6.44%
Clean js (Execution) 702.2±29.99µs 698.6±29.98µs +0.52%
Clean js (Full) 968.6±46.39µs 961.2±39.74µs +0.77%
Clean js (Parser) 23.5±1.16µs 24.2±1.50µs -2.89%
Create Realm 447.1±24.42ns 439.8±25.71ns +1.66%
Dynamic Object Property Access (Execution) 5.4±0.27µs 5.5±0.24µs -1.82%
Dynamic Object Property Access (Full) 266.5±20.05µs 259.8±16.90µs +2.58%
Expression (Lexer) 2.2±0.12µs 2.3±0.11µs -4.35%
Expression (Parser) 5.0±0.30µs 5.1±0.21µs -1.96%
Fibonacci (Execution) 874.6±43.36µs 893.5±28.19µs -2.12%
Fibonacci (Full) 1132.6±53.93µs 1213.0±69.76µs -6.63%
For loop (Execution) 22.5±1.21µs 22.6±1.20µs -0.44%
For loop (Full) 280.5±13.96µs 286.2±15.38µs -1.99%
For loop (Lexer) 3.9±0.19µs 4.1±0.20µs -4.88%
For loop (Parser) 11.9±0.73µs 11.7±0.64µs +1.71%
Goal Symbols (Parser) 8.1±0.61µs 8.0±0.36µs +1.25%
Hello World (Lexer) 803.1±44.07ns 853.8±27.27ns -5.94%
Hello World (Parser) 2.1±0.14µs 2.1±0.14µs 0.00%
Long file (Parser) 6.2±0.17ms 6.1±0.19ms +1.64%
Mini js (Execution) 648.4±50.18µs 630.4±46.95µs +2.86%
Mini js (Full) 896.7±41.79µs 912.2±40.86µs -1.70%
Mini js (Parser) 20.7±1.26µs 21.2±1.18µs -2.36%
Number Object Access (Execution) 3.7±0.21µs 3.7±0.19µs 0.00%
Number Object Access (Full) 254.6±13.36µs 254.8±13.85µs -0.08%
Object Creation (Execution) 4.8±0.27µs 4.8±0.27µs 0.00%
Object Creation (Full) 314.7±18.16µs 305.8±16.84µs +2.91%
RegExp (Execution) 66.6±3.32µs 66.6±4.78µs 0.00%
RegExp (Full) 405.6±20.00µs 402.2±20.75µs +0.85%
RegExp Literal (Execution) 71.5±3.45µs 70.3±4.13µs +1.71%
RegExp Literal (Full) 330.3±16.91µs 332.8±17.14µs -0.75%
RegExp Literal Creation (Execution) 66.3±3.55µs 66.8±3.80µs -0.75%
RegExp Literal Creation (Full) 398.2±19.74µs 414.7±23.30µs -3.98%
Static Object Property Access (Execution) 4.9±0.23µs 4.9±0.25µs 0.00%
Static Object Property Access (Full) 263.8±14.19µs 253.5±21.74µs +4.06%
String Object Access (Execution) 6.7±0.41µs 6.9±0.64µs -2.90%
String Object Access (Full) 257.7±13.34µs 255.2±15.97µs +0.98%
String comparison (Execution) 6.2±0.31µs 6.4±0.32µs -3.13%
String comparison (Full) 259.9±12.82µs 271.4±19.30µs -4.24%
String concatenation (Execution) 5.2±0.34µs 5.3±0.31µs -1.89%
String concatenation (Full) 253.6±13.39µs 255.2±12.33µs -0.63%
String copy (Execution) 3.9±0.24µs 3.9±0.32µs 0.00%
String copy (Full) 244.6±10.62µs 250.3±17.02µs -2.28%
Symbols (Execution) 3.2±0.20µs 3.2±0.14µs 0.00%
Symbols (Full) 235.0±13.03µs 230.0±10.72µs +2.17%

@HalidOdat HalidOdat changed the title Move Interpreter::require_object_coercible to Value::require_object_coercible Move require_object_coercible to Value Aug 22, 2020
@HalidOdat HalidOdat merged commit 14d7791 into master Aug 22, 2020
@HalidOdat HalidOdat deleted the move-require-object-coercible branch August 22, 2020 01:40
Copy link
Member

@Razican Razican 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, thanks!

Lan2u pushed a commit that referenced this pull request Aug 22, 2020
* Added CLEAN_JS and MINI_JS benches (#581)

* Added CLEAN_JS and MINI_JS benches

These benches are arbitrary code which is subject to change,
functionally the programs are identical.

* Forgot semicolon

* Adding parsing benchmarks for CleanJS & MiniJS

Added identical benchmark cases for parser.

* Migrating Clean and Mini benchmarks to new format

Adding js scripts in bench_scripts & moving exec, full and parser
benchmarks to new include_str!() macro.

* Move `require_object_coercible` to `Value` (#654)

Co-authored-by: neeldug <5161147+neeldug@users.noreply.github.com>
Co-authored-by: HalidOdat <halidodat@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API execution Issues or PRs related to code execution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants