Skip to content

Commit c8a7ce5

Browse files
committed
Merge branch 'Object.freeze/isFrozen-documentation' into Object-docs
2 parents 6490abd + 319e3b5 commit c8a7ce5

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

src/Core__Object.res

+34-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,40 @@ external is: ('a, 'a) => bool = "Object.is"
5151

5252
@val external seal: 'a => 'a = "Object.seal"
5353
@val external preventExtensions: 'a => 'a = "Object.preventExtensions"
54-
@val external freeze: 'a => 'a = "Object.freeze"
54+
/**
55+
`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.
56+
57+
**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.
58+
59+
See [ECMAScript Language Specification](https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.isfrozen) and [Object.isFrozen on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen).
60+
61+
## Examples
62+
63+
```rescript
64+
let obj = {"a": 1}
65+
obj->Object.set("a", 2) // succeeds
66+
obj->Object.freeze->ignore
67+
obj->Object.set("a", 3) // fails
68+
```
69+
*/
70+
@val
71+
external freeze: 'a => 'a = "Object.freeze"
5572

5673
@val external isSealed: 'a => bool = "Object.isSealed"
57-
@val external isFrozen: 'a => bool = "Object.isFrozen"
74+
/**
75+
`isFrozen` determines if an object is frozen. An object is frozen if an only if it is not extensible, all its properties are non-configurable, and all its data properties are non-writable.
76+
77+
See [ECMAScript Language Specification](https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.isfrozen) and [Object.isFrozen on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen).
78+
79+
## Examples
80+
81+
```rescript
82+
let point = {"x": 1, "y": 3}->Object.freeze
83+
let pointIsFrozen = point->Object.isFrozen // true
84+
let fruit = {"name": "Apple" }
85+
let fruitIsFrozen = fruit->Object.isFrozen // false
86+
```
87+
*/
88+
@val
89+
external isFrozen: 'a => bool = "Object.isFrozen"
5890
@val external isExtensible: 'a => bool = "Object.isExtensible"

0 commit comments

Comments
 (0)