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 Symbol.for and Symbol.keyFor #1424

Merged
merged 1 commit into from Jul 25, 2021
Merged

Conversation

HalidOdat
Copy link
Member

It changes the following:

  • Implement Symbol.for( key )
  • Implement Symbol.keyFor( sym )

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

Test262 conformance changes:

Test result master count PR count difference
Total 78,897 78,897 0
Passed 27,984 28,014 +30
Ignored 15,616 15,616 0
Failed 35,297 35,267 -30
Panics 0 0 0
Conformance 35.47% 35.51% +0.04%
Fixed tests:
test/built-ins/Symbol/keyFor/name.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/name.js (previously Failed)
test/built-ins/Symbol/keyFor/arg-non-symbol.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/arg-non-symbol.js (previously Failed)
test/built-ins/Symbol/keyFor/prop-desc.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/prop-desc.js (previously Failed)
test/built-ins/Symbol/keyFor/cross-realm.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/cross-realm.js (previously Failed)
test/built-ins/Symbol/keyFor/arg-symbol-registry-miss.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/arg-symbol-registry-miss.js (previously Failed)
test/built-ins/Symbol/keyFor/length.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/length.js (previously Failed)
test/built-ins/Symbol/keyFor/arg-symbol-registry-hit.js [strict mode] (previously Failed)
test/built-ins/Symbol/keyFor/arg-symbol-registry-hit.js (previously Failed)
test/built-ins/Symbol/for/name.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/name.js (previously Failed)
test/built-ins/Symbol/for/create-value.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/create-value.js (previously Failed)
test/built-ins/Symbol/for/prop-desc.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/prop-desc.js (previously Failed)
test/built-ins/Symbol/for/to-string-err.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/to-string-err.js (previously Failed)
test/built-ins/Symbol/for/retrieve-value.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/retrieve-value.js (previously Failed)
test/built-ins/Symbol/for/cross-realm.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/cross-realm.js (previously Failed)
test/built-ins/Symbol/for/description.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/description.js (previously Failed)
test/built-ins/Symbol/for/length.js [strict mode] (previously Failed)
test/built-ins/Symbol/for/length.js (previously Failed)

@github-actions
Copy link

Benchmark for 2b2d916

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 233.3±0.42ns 239.5±0.85ns -2.59%
Arithmetic operations (Full) 236.0±0.44µs 235.6±1.53µs +0.17%
Array access (Execution) 5.4±0.02µs 5.4±0.02µs 0.00%
Array access (Full) 257.9±0.41µs 256.9±0.50µs +0.39%
Array creation (Execution) 2.4±0.00ms 2.3±0.00ms +4.35%
Array creation (Full) 2.5±0.02ms 2.6±0.00ms -3.85%
Array pop (Execution) 788.1±2.11µs 771.8±2.25µs +2.11%
Array pop (Full) 1170.9±2.85µs 1181.0±2.56µs -0.86%
Boolean Object Access (Execution) 4.6±0.01µs 4.6±0.04µs 0.00%
Boolean Object Access (Full) 253.0±1.02µs 250.1±0.70µs +1.16%
Clean js (Execution) 531.6±2.34µs 532.3±5.54µs -0.13%
Clean js (Full) 810.7±9.46µs 812.6±2.69µs -0.23%
Clean js (Parser) 34.9±0.04µs 34.9±0.06µs 0.00%
Create Realm 355.9±0.55ns 351.5±0.92ns +1.25%
Dynamic Object Property Access (Execution) 4.3±0.02µs 4.4±0.01µs -2.27%
Dynamic Object Property Access (Full) 256.6±1.98µs 252.6±0.46µs +1.58%
Expression (Parser) 5.8±0.01µs 5.8±0.01µs 0.00%
Fibonacci (Execution) 651.0±1.43µs 643.2±4.70µs +1.21%
Fibonacci (Full) 932.3±3.32µs 921.5±0.83µs +1.17%
For loop (Execution) 17.1±0.06µs 17.2±0.10µs -0.58%
For loop (Full) 265.4±0.53µs 262.8±0.46µs +0.99%
For loop (Parser) 16.6±0.04µs 16.7±0.04µs -0.60%
Goal Symbols (Parser) 12.0±0.02µs 12.0±0.03µs 0.00%
Hello World (Parser) 3.2±0.00µs 3.2±0.03µs 0.00%
Long file (Parser) 724.7±7.78ns 729.2±0.98ns -0.62%
Mini js (Execution) 482.0±2.25µs 482.8±5.06µs -0.17%
Mini js (Full) 751.6±2.75µs 758.0±2.43µs -0.84%
Mini js (Parser) 30.2±0.04µs 30.4±0.03µs -0.66%
Number Object Access (Execution) 3.5±0.01µs 3.6±0.01µs -2.78%
Number Object Access (Full) 249.5±1.09µs 246.5±2.97µs +1.22%
Object Creation (Execution) 3.9±0.02µs 3.8±0.01µs +2.63%
Object Creation (Full) 252.4±0.34µs 248.3±0.66µs +1.65%
RegExp (Execution) 11.1±0.07µs 10.9±0.03µs +1.83%
RegExp (Full) 259.6±0.40µs 255.3±0.48µs +1.68%
RegExp Literal (Execution) 11.0±0.06µs 10.8±0.04µs +1.85%
RegExp Literal (Full) 265.4±0.42µs 262.6±0.71µs +1.07%
RegExp Literal Creation (Execution) 8.5±0.02µs 8.2±0.03µs +3.66%
RegExp Literal Creation (Full) 257.6±0.62µs 252.6±0.55µs +1.98%
Static Object Property Access (Execution) 4.0±0.01µs 4.1±0.09µs -2.44%
Static Object Property Access (Full) 254.8±0.44µs 249.9±0.37µs +1.96%
String Object Access (Execution) 5.8±0.02µs 6.0±0.03µs -3.33%
String Object Access (Full) 255.6±0.43µs 253.0±0.53µs +1.03%
String comparison (Execution) 5.5±0.02µs 5.5±0.03µs 0.00%
String comparison (Full) 254.1±0.50µs 252.8±0.35µs +0.51%
String concatenation (Execution) 4.2±0.01µs 4.3±0.02µs -2.33%
String concatenation (Full) 249.2±0.70µs 246.2±0.47µs +1.22%
String copy (Execution) 3.4±0.01µs 3.4±0.01µs 0.00%
String copy (Full) 245.6±0.29µs 241.3±0.46µs +1.78%
Symbols (Execution) 2.9±0.01µs 3.0±0.01µs -3.33%
Symbols (Full) 231.8±2.35µs 230.2±1.35µs +0.70%

@HalidOdat HalidOdat merged commit beecb2d into master Jul 25, 2021
@HalidOdat HalidOdat deleted the feature/symbol-for-forKey branch July 25, 2021 12:48
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants