Skip to content

Commit 258abe3

Browse files
committed
better docs and sample code
1 parent d60469f commit 258abe3

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/Core__Object.res

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,22 @@
2525
@val external seal: 'a => 'a = "Object.seal"
2626
@val external preventExtensions: 'a => 'a = "Object.preventExtensions"
2727
/**
28-
`freeze` freezes an object. Freezing an object makes existing properties non-writable and prevents extensions. Once an object is frozen, new properties cannot be be added, existing properties cannot be removed, and their values cannot be changed. `freeze` returns the same object that was passed in; it does not create a frozen copy.
29-
30-
Any attempt to change a frozen object will fail, either silently or by throwing an exception.
28+
`freeze` freezes an object. Freezing an object makes existing properties non-writable and prevents extensions. Once an object is frozen, new properties cannot be be added, existing properties cannot be removed, and their values cannot be changed.
3129
32-
Rescript usually [disallows modifying objects](https://rescript-lang.org/docs/manual/latest/object#update) regardless of whether they are frozen.
30+
**Note:** `freeze` returns the same object that was passed in; it does not create a frozen copy. Any attempt to change a frozen object will fail, either silently or by throwing an exception.
3331
3432
## Examples
3533
3634
```rescript
37-
let point = {"x": 1, "y": 3}->Object.freeze
38-
let pointIsFrozen = point->Object.isFrozen // true
39-
let fruit = {"name": "Apple" }
40-
let fruitIsFrozen = fruit->Object.isFrozen // false
35+
let obj = {"a": 1}
36+
obj->Object.set("a", 2) // succeeds
37+
obj->Object.freeze->ignore
38+
obj->Object.set("a", 3) // fails
4139
```
4240
## Specifications
43-
- [Updating objects in Rescript](https://rescript-lang.org/docs/manual/latest/object#update)
4441
- [ECMAScript Language Specification](https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.freeze)
4542
- [Object.freeze on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)
43+
- [Updating objects in Rescript](https://rescript-lang.org/docs/manual/latest/object#update)
4644
*/
4745
@val
4846
external freeze: 'a => 'a = "Object.freeze"
@@ -60,9 +58,9 @@ let fruit = {"name": "Apple" }
6058
let fruitIsFrozen = fruit->Object.isFrozen // false
6159
```
6260
## Specifications
63-
- [Updating objects in Rescript](https://rescript-lang.org/docs/manual/latest/object#update)
6461
- [ECMAScript Language Specification](https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.isfrozen)
6562
- [Object.isFrozen on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen)
63+
- [Updating objects in Rescript](https://rescript-lang.org/docs/manual/latest/object#update)
6664
*/
6765
@val
6866
external isFrozen: 'a => bool = "Object.isFrozen"

0 commit comments

Comments
 (0)