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

Implement closure functions #1442

Merged
merged 4 commits into from
Jul 30, 2021
Merged

Implement closure functions #1442

merged 4 commits into from
Jul 30, 2021

Conversation

HalidOdat
Copy link
Member

@HalidOdat HalidOdat commented Jul 28, 2021

This Pull Request fixes/closes #1439 #1441 #1440 #1443.

It changes the following:

  • Implement closure functions
  • Implement a way to register through context
  • Add example for closure examples/closures.rs

@HalidOdat HalidOdat added enhancement New feature or request builtins PRs and Issues related to builtins/intrinsics execution Issues or PRs related to code execution labels Jul 28, 2021
@HalidOdat HalidOdat added this to the v0.13.0 milestone Jul 28, 2021
@github-actions
Copy link

github-actions bot commented Jul 28, 2021

Test262 conformance changes:

Test result master count PR count difference
Total 78,897 78,897 0
Passed 28,442 28,478 +36
Ignored 15,614 15,614 0
Failed 34,841 34,805 -36
Panics 2 2 0
Conformance 36.05% 36.10% +0.05%
Fixed tests:
test/built-ins/Array/prototype/shift/throws-when-this-value-length-is-writable-false.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/shift/throws-when-this-value-length-is-writable-false.js (previously Failed)
test/built-ins/Function/prototype/name.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/name.js (previously Failed)
test/built-ins/Function/prototype/length.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/length.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-5-a-7.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-5-a-7.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-2-9.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-2-9.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-5-b-239.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-5-b-239.js (previously Failed)
test/built-ins/Object/create/15.2.3.5-4-28.js [strict mode] (previously Failed)
test/built-ins/Object/create/15.2.3.5-4-28.js (previously Failed)
test/built-ins/Object/create/15.2.3.5-4-5.js [strict mode] (previously Failed)
test/built-ins/Object/create/15.2.3.5-4-5.js (previously Failed)
test/language/expressions/arrow-function/name.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/name.js (previously Failed)
test/language/expressions/assignment/fn-name-lhs-member.js [strict mode] (previously Failed)
test/language/expressions/assignment/fn-name-lhs-member.js (previously Failed)
test/language/expressions/assignment/fn-name-lhs-cover.js [strict mode] (previously Failed)
test/language/expressions/assignment/fn-name-lhs-cover.js (previously Failed)
test/language/expressions/function/name.js [strict mode] (previously Failed)
test/language/expressions/function/name.js (previously Failed)
test/language/expressions/object/method-definition/name-length.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/name-length.js (previously Failed)
test/language/statements/function/S13.2_A4_T2.js [strict mode] (previously Failed)
test/language/statements/function/S13.2_A4_T2.js (previously Failed)
test/language/statements/function/name.js [strict mode] (previously Failed)
test/language/statements/function/name.js (previously Failed)
test/language/statements/function/13.2-18-1.js [strict mode] (previously Failed)
test/language/statements/function/13.2-18-1.js (previously Failed)
test/language/statements/function/13.2-15-1.js [strict mode] (previously Failed)
test/language/statements/function/13.2-15-1.js (previously Failed)
test/language/statements/function/S13.2_A4_T1.js [strict mode] (previously Failed)
test/language/statements/function/S13.2_A4_T1.js (previously Failed)

@github-actions
Copy link

Benchmark for 71e3dd0

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 275.2±1.80ns 306.0±3.30ns -10.07%
Arithmetic operations (Full) 283.2±1.17µs 283.4±1.61µs -0.07%
Array access (Execution) 6.3±0.05µs 6.5±0.03µs -3.08%
Array access (Full) 309.4±1.96µs 306.6±2.34µs +0.91%
Array creation (Execution) 2.7±0.01ms 2.8±0.02ms -3.57%
Array creation (Full) 3.0±0.02ms 3.1±0.01ms -3.23%
Array pop (Execution) 893.4±5.42µs 902.9±5.03µs -1.05%
Array pop (Full) 1372.6±11.57µs 1394.4±48.59µs -1.56%
Boolean Object Access (Execution) 5.4±0.02µs 5.4±0.05µs 0.00%
Boolean Object Access (Full) 301.2±1.77µs 300.3±2.56µs +0.30%
Clean js (Execution) 719.2±5.90µs 720.6±6.92µs -0.19%
Clean js (Full) 1048.5±6.33µs 1051.7±11.39µs -0.30%
Clean js (Parser) 38.9±0.19µs 39.1±0.20µs -0.51%
Create Realm 429.6±3.28ns 422.7±3.79ns +1.63%
Dynamic Object Property Access (Execution) 5.2±0.05µs 5.3±0.05µs -1.89%
Dynamic Object Property Access (Full) 305.9±1.31µs 302.4±1.86µs +1.16%
Expression (Parser) 6.9±0.13µs 7.0±0.04µs -1.43%
Fibonacci (Execution) 775.8±4.40µs 770.4±3.72µs +0.70%
Fibonacci (Full) 1104.7±6.71µs 1108.0±17.67µs -0.30%
For loop (Execution) 20.2±0.20µs 21.1±0.16µs -4.27%
For loop (Full) 318.8±3.41µs 318.6±1.15µs +0.06%
For loop (Parser) 18.7±0.10µs 18.8±0.08µs -0.53%
Goal Symbols (Parser) 13.6±0.14µs 13.6±0.06µs 0.00%
Hello World (Parser) 3.7±0.02µs 3.7±0.01µs 0.00%
Long file (Parser) 801.5±2.55ns 796.2±5.21ns +0.67%
Mini js (Execution) 661.0±13.12µs 658.9±7.07µs +0.32%
Mini js (Full) 980.0±6.77µs 984.3±4.06µs -0.44%
Mini js (Parser) 33.7±0.10µs 33.8±0.24µs -0.30%
Number Object Access (Execution) 4.3±0.03µs 4.3±0.02µs 0.00%
Number Object Access (Full) 298.7±1.43µs 295.1±1.74µs +1.22%
Object Creation (Execution) 4.4±0.05µs 4.6±0.03µs -4.35%
Object Creation (Full) 301.1±2.34µs 299.5±1.40µs +0.53%
RegExp (Execution) 12.8±0.12µs 13.6±0.08µs -5.88%
RegExp (Full) 308.5±2.39µs 306.0±1.62µs +0.82%
RegExp Literal (Execution) 12.8±0.08µs 13.7±0.09µs -6.57%
RegExp Literal (Full) 322.0±1.36µs 315.2±1.75µs +2.16%
RegExp Literal Creation (Execution) 9.7±0.06µs 10.2±0.06µs -4.90%
RegExp Literal Creation (Full) 307.4±3.26µs 303.0±0.99µs +1.45%
Static Object Property Access (Execution) 4.7±0.03µs 4.8±0.03µs -2.08%
Static Object Property Access (Full) 302.4±1.73µs 299.5±2.11µs +0.97%
String Object Access (Execution) 7.1±0.08µs 7.3±0.05µs -2.74%
String Object Access (Full) 303.3±2.05µs 303.5±1.84µs -0.07%
String comparison (Execution) 6.3±0.04µs 6.5±0.05µs -3.08%
String comparison (Full) 304.1±2.24µs 301.7±1.46µs +0.80%
String concatenation (Execution) 5.0±0.04µs 5.2±0.03µs -3.85%
String concatenation (Full) 300.5±3.59µs 297.8±2.88µs +0.91%
String copy (Execution) 4.0±0.03µs 4.1±0.03µs -2.44%
String copy (Full) 292.3±1.30µs 289.3±2.01µs +1.04%
Symbols (Execution) 3.4±0.02µs 3.5±0.03µs -2.86%
Symbols (Full) 278.0±1.90µs 274.8±2.03µs +1.16%

@github-actions
Copy link

Benchmark for a325e9f

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 252.4±11.14ns 272.2±16.21ns -7.27%
Arithmetic operations (Full) 284.0±16.47µs 281.0±10.83µs +1.07%
Array access (Execution) 6.2±0.37µs 6.4±0.24µs -3.13%
Array access (Full) 318.8±21.75µs 315.5±30.00µs +1.05%
Array creation (Execution) 2.5±0.09ms 2.5±0.11ms 0.00%
Array creation (Full) 2.8±0.11ms 2.9±0.17ms -3.45%
Array pop (Execution) 822.2±36.35µs 784.9±31.59µs +4.75%
Array pop (Full) 1305.8±77.89µs 1311.5±66.33µs -0.43%
Boolean Object Access (Execution) 5.6±0.55µs 5.4±0.27µs +3.70%
Boolean Object Access (Full) 298.4±11.37µs 299.4±13.34µs -0.33%
Clean js (Execution) 702.1±40.62µs 681.9±32.45µs +2.96%
Clean js (Full) 992.9±44.12µs 1022.7±49.60µs -2.91%
Clean js (Parser) 39.8±2.09µs 38.1±2.58µs +4.46%
Create Realm 404.6±20.72ns 431.7±26.77ns -6.28%
Dynamic Object Property Access (Execution) 5.0±0.22µs 5.4±0.30µs -7.41%
Dynamic Object Property Access (Full) 304.4±15.50µs 299.1±9.92µs +1.77%
Expression (Parser) 6.4±0.30µs 6.5±0.28µs -1.54%
Fibonacci (Execution) 798.5±40.69µs 788.3±28.45µs +1.29%
Fibonacci (Full) 1166.8±66.51µs 1138.5±51.36µs +2.49%
For loop (Execution) 19.8±0.92µs 21.8±1.05µs -9.17%
For loop (Full) 312.7±13.30µs 316.9±15.94µs -1.33%
For loop (Parser) 19.4±1.02µs 17.9±0.67µs +8.38%
Goal Symbols (Parser) 12.9±0.55µs 13.2±0.63µs -2.27%
Hello World (Parser) 3.6±0.25µs 3.5±0.18µs +2.86%
Long file (Parser) 749.5±29.86ns 758.9±41.47ns -1.24%
Mini js (Execution) 615.7±33.34µs 606.3±21.87µs +1.55%
Mini js (Full) 959.2±40.68µs 954.2±39.16µs +0.52%
Mini js (Parser) 34.0±1.88µs 33.2±1.52µs +2.41%
Number Object Access (Execution) 4.2±0.22µs 4.2±0.25µs 0.00%
Number Object Access (Full) 301.1±15.27µs 292.4±11.92µs +2.98%
Object Creation (Execution) 4.4±0.23µs 4.6±0.37µs -4.35%
Object Creation (Full) 299.4±14.61µs 309.4±19.16µs -3.23%
RegExp (Execution) 13.0±0.74µs 13.5±1.52µs -3.70%
RegExp (Full) 306.4±14.22µs 312.0±19.63µs -1.79%
RegExp Literal (Execution) 12.9±0.67µs 13.5±0.73µs -4.44%
RegExp Literal (Full) 313.2±11.51µs 326.1±15.63µs -3.96%
RegExp Literal Creation (Execution) 9.4±0.49µs 9.6±0.39µs -2.08%
RegExp Literal Creation (Full) 307.9±16.23µs 301.7±8.29µs +2.06%
Static Object Property Access (Execution) 4.6±0.19µs 4.8±0.30µs -4.17%
Static Object Property Access (Full) 301.6±11.98µs 304.7±12.80µs -1.02%
String Object Access (Execution) 7.2±0.93µs 7.2±0.39µs 0.00%
String Object Access (Full) 302.7±9.48µs 304.5±14.62µs -0.59%
String comparison (Execution) 6.3±0.32µs 6.4±0.29µs -1.56%
String comparison (Full) 306.2±18.90µs 309.7±15.82µs -1.13%
String concatenation (Execution) 4.8±0.27µs 5.2±0.22µs -7.69%
String concatenation (Full) 297.0±12.82µs 291.7±11.46µs +1.82%
String copy (Execution) 3.8±0.16µs 4.1±0.19µs -7.32%
String copy (Full) 295.2±14.18µs 305.0±41.43µs -3.21%
Symbols (Execution) 3.3±0.17µs 3.7±0.22µs -10.81%
Symbols (Full) 279.1±12.74µs 279.5±19.28µs -0.14%

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.

I like the API. It might have made sense to group functions and closures together, but this makes it a bit more performant for functions :)

@HalidOdat HalidOdat merged commit 91f0fe6 into master Jul 30, 2021
@HalidOdat HalidOdat deleted the feature/closure-functions branch July 30, 2021 13:54
@github-actions
Copy link

Benchmark for 15c7a00

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 190.2±0.64ns 200.9±0.27ns -5.33%
Arithmetic operations (Full) 237.6±0.32µs 235.7±0.24µs +0.81%
Array access (Execution) 4.5±0.02µs 4.7±0.01µs -4.26%
Array access (Full) 227.4±0.35µs 258.8±0.62µs -12.13%
Array creation (Execution) 2.4±0.00ms 1921.7±6.84µs +24.89%
Array creation (Full) 2.3±0.00ms 2.4±0.00ms -4.17%
Array pop (Execution) 780.7±3.31µs 622.7±2.62µs +25.37%
Array pop (Full) 1153.2±2.28µs 1180.7±6.98µs -2.33%
Boolean Object Access (Execution) 4.1±0.01µs 4.6±0.01µs -10.87%
Boolean Object Access (Full) 253.1±0.32µs 221.9±0.43µs +14.06%
Clean js (Execution) 531.2±4.92µs 523.4±3.28µs +1.49%
Clean js (Full) 774.1±4.72µs 887.1±2.48µs -12.74%
Clean js (Parser) 31.0±0.28µs 27.4±0.25µs +13.14%
Create Realm 351.2±0.37ns 322.8±0.50ns +8.80%
Dynamic Object Property Access (Execution) 4.0±0.01µs 4.4±0.08µs -9.09%
Dynamic Object Property Access (Full) 224.7±0.33µs 224.9±0.55µs -0.09%
Expression (Parser) 4.7±0.04µs 5.4±0.02µs -12.96%
Fibonacci (Execution) 569.4±0.66µs 572.8±0.80µs -0.59%
Fibonacci (Full) 811.3±1.60µs 926.4±2.73µs -12.42%
For loop (Execution) 16.2±0.03µs 15.7±0.04µs +3.18%
For loop (Full) 233.9±2.65µs 235.2±0.48µs -0.55%
For loop (Parser) 13.2±0.09µs 13.2±0.12µs 0.00%
Goal Symbols (Parser) 9.7±0.10µs 9.6±0.08µs +1.04%
Hello World (Parser) 2.7±0.03µs 2.7±0.04µs 0.00%
Long file (Parser) 722.3±9.18ns 649.6±2.54ns +11.19%
Mini js (Execution) 555.1±3.93µs 538.8±3.48µs +3.03%
Mini js (Full) 742.7±35.36µs 836.1±2.20µs -11.17%
Mini js (Parser) 27.2±0.06µs 24.1±0.08µs +12.86%
Number Object Access (Execution) 3.2±0.04µs 3.2±0.01µs 0.00%
Number Object Access (Full) 249.8±0.35µs 219.2±0.45µs +13.96%
Object Creation (Execution) 3.0±0.02µs 3.3±0.01µs -9.09%
Object Creation (Full) 250.7±0.42µs 222.5±0.57µs +12.67%
RegExp (Execution) 9.5±0.04µs 9.7±0.03µs -2.06%
RegExp (Full) 227.6±0.65µs 226.9±1.85µs +0.31%
RegExp Literal (Execution) 9.5±0.08µs 9.6±0.05µs -1.04%
RegExp Literal (Full) 234.3±0.44µs 265.5±0.36µs -11.75%
RegExp Literal Creation (Execution) 8.1±0.02µs 8.1±0.03µs 0.00%
RegExp Literal Creation (Full) 225.5±0.41µs 225.2±0.60µs +0.13%
Static Object Property Access (Execution) 3.6±0.01µs 3.4±0.01µs +5.88%
Static Object Property Access (Full) 222.4±0.40µs 221.4±0.31µs +0.45%
String Object Access (Execution) 5.2±0.01µs 6.3±0.02µs -17.46%
String Object Access (Full) 255.0±1.65µs 223.9±0.47µs +13.89%
String comparison (Execution) 5.2±0.01µs 4.8±0.01µs +8.33%
String comparison (Full) 256.3±0.40µs 222.9±0.39µs +14.98%
String concatenation (Execution) 3.9±0.01µs 3.9±0.01µs 0.00%
String concatenation (Full) 218.5±0.41µs 217.9±0.31µs +0.28%
String copy (Execution) 3.1±0.01µs 3.4±0.02µs -8.82%
String copy (Full) 246.7±7.92µs 214.6±0.33µs +14.96%
Symbols (Execution) 2.6±0.01µs 2.6±0.01µs 0.00%
Symbols (Full) 234.6±1.26µs 205.0±0.57µs +14.44%

@github-actions
Copy link

Benchmark for c7bcceb

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 215.5±0.37ns 228.1±0.58ns -5.52%
Arithmetic operations (Full) 237.3±0.46µs 235.9±0.32µs +0.59%
Array access (Execution) 5.0±0.02µs 5.3±0.01µs -5.66%
Array access (Full) 256.3±0.38µs 257.9±0.51µs -0.62%
Array creation (Execution) 2.4±0.01ms 2.2±0.00ms +9.09%
Array creation (Full) 2.6±0.00ms 2.7±0.00ms -3.70%
Array pop (Execution) 778.8±3.31µs 702.6±2.72µs +10.85%
Array pop (Full) 1150.7±3.32µs 1171.4±2.73µs -1.77%
Boolean Object Access (Execution) 4.6±0.00µs 4.6±0.01µs 0.00%
Boolean Object Access (Full) 252.4±0.23µs 254.1±0.60µs -0.67%
Clean js (Execution) 601.6±2.52µs 595.2±3.81µs +1.08%
Clean js (Full) 875.6±10.40µs 884.2±2.42µs -0.97%
Clean js (Parser) 30.9±0.22µs 31.2±0.24µs -0.96%
Create Realm 353.9±0.19ns 357.8±0.39ns -1.09%
Dynamic Object Property Access (Execution) 4.0±0.01µs 4.4±0.01µs -9.09%
Dynamic Object Property Access (Full) 254.4±0.57µs 254.3±0.42µs +0.04%
Expression (Parser) 5.4±0.03µs 5.3±0.03µs +1.89%
Fibonacci (Execution) 646.8±1.39µs 648.0±2.32µs -0.19%
Fibonacci (Full) 916.6±0.53µs 919.4±3.23µs -0.30%
For loop (Execution) 16.2±0.04µs 17.8±0.14µs -8.99%
For loop (Full) 262.4±1.27µs 263.7±0.64µs -0.49%
For loop (Parser) 15.1±0.10µs 15.0±0.06µs +0.67%
Goal Symbols (Parser) 10.9±0.09µs 11.0±0.07µs -0.91%
Hello World (Parser) 3.1±0.04µs 3.1±0.03µs 0.00%
Long file (Parser) 745.4±17.86ns 725.1±3.60ns +2.80%
Mini js (Execution) 550.5±3.62µs 540.4±3.90µs +1.87%
Mini js (Full) 821.1±3.31µs 834.9±2.28µs -1.65%
Mini js (Parser) 27.1±0.03µs 27.1±0.02µs 0.00%
Number Object Access (Execution) 3.6±0.03µs 3.7±0.02µs -2.70%
Number Object Access (Full) 249.1±0.27µs 247.7±1.66µs +0.57%
Object Creation (Execution) 3.5±0.02µs 3.9±0.01µs -10.26%
Object Creation (Full) 251.7±0.57µs 250.0±0.29µs +0.68%
RegExp (Execution) 10.7±0.05µs 10.9±0.06µs -1.83%
RegExp (Full) 256.5±0.48µs 258.1±0.38µs -0.62%
RegExp Literal (Execution) 10.8±0.05µs 10.9±0.06µs -0.92%
RegExp Literal (Full) 264.6±0.74µs 265.4±0.36µs -0.30%
RegExp Literal Creation (Execution) 8.1±0.03µs 8.1±0.02µs 0.00%
RegExp Literal Creation (Full) 253.7±0.41µs 258.8±0.42µs -1.97%
Static Object Property Access (Execution) 3.6±0.01µs 4.0±0.02µs -10.00%
Static Object Property Access (Full) 251.3±0.33µs 251.2±0.49µs +0.04%
String Object Access (Execution) 5.9±0.01µs 6.2±0.03µs -4.84%
String Object Access (Full) 256.1±0.49µs 256.1±0.51µs 0.00%
String comparison (Execution) 5.1±0.01µs 5.4±0.02µs -5.56%
String comparison (Full) 254.6±0.28µs 255.2±0.31µs -0.24%
String concatenation (Execution) 3.9±0.01µs 4.4±0.02µs -11.36%
String concatenation (Full) 247.6±0.74µs 249.3±0.37µs -0.68%
String copy (Execution) 3.1±0.01µs 3.5±0.03µs -11.43%
String copy (Full) 244.0±1.07µs 244.9±0.28µs -0.37%
Symbols (Execution) 2.7±0.00µs 2.9±0.01µs -6.90%
Symbols (Full) 231.9±2.25µs 232.1±1.84µs -0.09%

@github-actions
Copy link

Benchmark for 5011f45

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 235.4±14.42ns 253.9±9.97ns -7.29%
Arithmetic operations (Full) 267.1±10.17µs 267.5±10.76µs -0.15%
Array access (Execution) 6.0±0.24µs 6.2±0.39µs -3.23%
Array access (Full) 297.1±17.91µs 292.7±8.41µs +1.50%
Array creation (Execution) 2.4±0.08ms 2.4±0.06ms 0.00%
Array creation (Full) 2.7±0.09ms 2.7±0.11ms 0.00%
Array pop (Execution) 771.4±24.57µs 773.1±18.19µs -0.22%
Array pop (Full) 1228.7±63.31µs 1228.3±78.55µs +0.03%
Boolean Object Access (Execution) 5.1±0.25µs 5.3±0.28µs -3.77%
Boolean Object Access (Full) 288.0±14.97µs 291.6±27.61µs -1.23%
Clean js (Execution) 651.0±23.57µs 655.0±15.48µs -0.61%
Clean js (Full) 958.2±49.17µs 971.1±47.63µs -1.33%
Clean js (Parser) 32.8±0.99µs 32.6±1.08µs +0.61%
Create Realm 377.1±13.15ns 374.9±12.14ns +0.59%
Dynamic Object Property Access (Execution) 4.7±0.19µs 5.2±0.28µs -9.62%
Dynamic Object Property Access (Full) 288.4±10.64µs 290.7±8.75µs -0.79%
Expression (Parser) 5.5±0.19µs 5.5±0.13µs 0.00%
Fibonacci (Execution) 748.1±21.03µs 757.6±51.89µs -1.25%
Fibonacci (Full) 1063.8±34.53µs 1058.1±28.33µs +0.54%
For loop (Execution) 18.8±0.90µs 20.0±0.55µs -6.00%
For loop (Full) 309.3±84.18µs 298.5±9.72µs +3.62%
For loop (Parser) 15.7±0.85µs 15.8±0.81µs -0.63%
Goal Symbols (Parser) 11.3±0.27µs 11.4±0.72µs -0.88%
Hello World (Parser) 3.2±0.10µs 3.2±0.13µs 0.00%
Long file (Parser) 728.5±40.37ns 710.6±20.65ns +2.52%
Mini js (Execution) 581.7±20.05µs 594.1±18.34µs -2.09%
Mini js (Full) 907.0±53.58µs 909.6±22.30µs -0.29%
Mini js (Parser) 28.5±0.86µs 28.7±1.47µs -0.70%
Number Object Access (Execution) 4.0±0.17µs 4.0±0.20µs 0.00%
Number Object Access (Full) 282.6±10.22µs 283.5±15.33µs -0.32%
Object Creation (Execution) 4.1±0.20µs 4.4±0.13µs -6.82%
Object Creation (Full) 283.0±8.76µs 291.8±41.20µs -3.02%
RegExp (Execution) 12.2±0.69µs 12.5±0.43µs -2.40%
RegExp (Full) 292.9±8.43µs 293.0±11.17µs -0.03%
RegExp Literal (Execution) 12.0±0.51µs 12.5±0.48µs -4.00%
RegExp Literal (Full) 299.9±8.61µs 302.2±14.11µs -0.76%
RegExp Literal Creation (Execution) 8.8±0.22µs 9.1±0.23µs -3.30%
RegExp Literal Creation (Full) 295.4±14.79µs 290.4±9.07µs +1.72%
Static Object Property Access (Execution) 4.4±0.16µs 4.6±0.17µs -4.35%
Static Object Property Access (Full) 283.0±6.78µs 295.1±12.60µs -4.10%
String Object Access (Execution) 6.5±0.19µs 7.0±0.19µs -7.14%
String Object Access (Full) 286.4±9.50µs 288.6±12.53µs -0.76%
String comparison (Execution) 5.8±0.26µs 6.2±0.23µs -6.45%
String comparison (Full) 293.9±12.26µs 289.5±12.22µs +1.52%
String concatenation (Execution) 4.5±0.20µs 5.1±0.14µs -11.76%
String concatenation (Full) 290.3±40.24µs 282.5±8.98µs +2.76%
String copy (Execution) 3.6±0.12µs 3.9±0.15µs -7.69%
String copy (Full) 278.6±8.28µs 278.4±11.28µs +0.07%
Symbols (Execution) 3.0±0.11µs 3.4±0.20µs -11.76%
Symbols (Full) 259.0±7.98µs 260.4±8.54µs -0.54%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builtins PRs and Issues related to builtins/intrinsics enhancement New feature or request execution Issues or PRs related to code execution
Projects
None yet
3 participants