-
Notifications
You must be signed in to change notification settings - Fork 471
Add some docs to stblib Symbol #7336
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
Changes from 5 commits
398d0f5
42cdf74
5520d1d
0326321
e5734fa
eb1e28c
370d85a
25113a7
f6debf9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,105 @@ | ||||||||
/*** | ||||||||
A built-in object that serves as a namespace for globally-unique identifiers. | ||||||||
|
||||||||
Compiles to a regular JavaScript Symbol. | ||||||||
*/ | ||||||||
|
||||||||
/** | ||||||||
Type representing a Symbol. | ||||||||
*/ | ||||||||
type t | ||||||||
|
||||||||
/** | ||||||||
`make(key)` | ||||||||
|
||||||||
Makes a new unique Symbol value. | ||||||||
|
||||||||
## Examples | ||||||||
|
||||||||
```rescript | ||||||||
Symbol.make("sym1")->assetEqual("sym1") | ||||||||
``` | ||||||||
*/ | ||||||||
@val | ||||||||
external make: string => t = "Symbol" | ||||||||
|
||||||||
/** | ||||||||
`getFor(key)` | ||||||||
|
||||||||
Searches for existing registered Symbols in the global Symbol registry with the given key and returns it if found. | ||||||||
Otherwise a new Symbol gets created and registered with key. | ||||||||
|
||||||||
## Examples | ||||||||
|
||||||||
```rescript | ||||||||
Symbol.getFor("sym1")->assetEqual(Symbol.getFor("sym1")) | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same here There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||||||||
``` | ||||||||
*/ | ||||||||
@val | ||||||||
external getFor: string => t = "Symbol.for" | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you also forgot to update the interface file, and while we're there, I'd also use
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||||||||
|
||||||||
/** | ||||||||
`keyFor(key)` | ||||||||
|
||||||||
Retrieves a shared Symbol key from the global Symbol registry for the given Symbol. | ||||||||
|
||||||||
## Examples | ||||||||
|
||||||||
```rescript | ||||||||
let globalSym = Symbol.getFor("sym1") // Global symbol | ||||||||
|
||||||||
Symbol.keyFor(globalSym)->assertEqual(Some("sym1")) | ||||||||
|
||||||||
let localSym = Symbol.make("sym2") // Local symbol | ||||||||
|
||||||||
Symbol.keyFor(localSym)->assertEqual(None) | ||||||||
``` | ||||||||
*/ | ||||||||
@val | ||||||||
external keyFor: t => option<string> = "Symbol.keyFor" | ||||||||
|
||||||||
/** | ||||||||
`description` | ||||||||
|
||||||||
Returns `Some(string)` containing the description of this symbol, or `None` if the symbol has no description. | ||||||||
## Examples | ||||||||
|
||||||||
```rescript | ||||||||
let sym = Symbol.make("sym1") | ||||||||
Symbol.description(sym)->assertEqual(Some("sym1")) | ||||||||
``` | ||||||||
*/ | ||||||||
@get | ||||||||
external description: t => option<string> = "description" | ||||||||
|
||||||||
/** | ||||||||
`toString` | ||||||||
|
||||||||
// Returns a string representing this symbol value. | ||||||||
|
||||||||
## Examples | ||||||||
|
||||||||
```rescript | ||||||||
let sym = Symbol.make("sym1") | ||||||||
|
||||||||
Symbol.toString(sym)->assertEqual("Symbol(sym1)") | ||||||||
``` | ||||||||
*/ | ||||||||
@send | ||||||||
external toString: t => string = "toString" | ||||||||
|
||||||||
@val | ||||||||
external asyncIterator: t = "Symbol.asyncIterator" | ||||||||
@val | ||||||||
external hasInstance: t = "Symbol.hasInstance" | ||||||||
@val external isConcatSpreadable: t = "Symbol.isConcatSpreadable" | ||||||||
@val external iterator: t = "Symbol.iterator" | ||||||||
@val external match: t = "Symbol.match" | ||||||||
@val external matchAll: t = "Symbol.matchAll" | ||||||||
@val external replace: t = "Symbol.replace" | ||||||||
@val external search: t = "Symbol.search" | ||||||||
@val external species: t = "Symbol.species" | ||||||||
@val external split: t = "Symbol.split" | ||||||||
@val external toPrimitive: t = "Symbol.toPrimitive" | ||||||||
@val external toStringTag: t = "Symbol.toStringTag" | ||||||||
@val external unscopables: t = "Symbol.unscopables" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my bad it's assertEqual
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.