diff --git a/document/js-api/index.bs b/document/js-api/index.bs
index f20b0cf2ec..332ef088c2 100644
--- a/document/js-api/index.bs
+++ b/document/js-api/index.bs
@@ -1600,7 +1600,7 @@ The internal methods of an [=Exported GC Object=] use the following implementati
The \[[PreventExtensions]] internal method of an Exported GC Object O takes no arguments and returns a boolean. It performs the following steps when called:
- 1. Return false.
+ 1. Return true.
diff --git a/proposals/gc/MVP-JS.md b/proposals/gc/MVP-JS.md
index 455465bb55..304a7d2846 100644
--- a/proposals/gc/MVP-JS.md
+++ b/proposals/gc/MVP-JS.md
@@ -25,7 +25,7 @@ objects supports the following JS operations:
- `GetPrototypeOf`: returns `null`.
- `SetPrototypeOf`: returns `false` (and does not set a prototype).
- `IsExtensible`: returns `false`.
- - `PreventExtensions`: returns `false`.
+ - `PreventExtensions`: returns `true`.
- `GetOwnProperty`: returns `undefined`.
- `DefineOwnProperty`: returns `false`.
- `HasProperty`: returns `false`.
diff --git a/test/js-api/gc/exported-object.tentative.any.js b/test/js-api/gc/exported-object.tentative.any.js
index b572f14006..c7bf0fc452 100644
--- a/test/js-api/gc/exported-object.tentative.any.js
+++ b/test/js-api/gc/exported-object.tentative.any.js
@@ -113,17 +113,30 @@ test(() => {
test(() => {
const struct = functions.makeStruct();
const array = functions.makeArray();
- assert_throws_js(TypeError, () => Object.preventExtensions(struct));
- assert_throws_js(TypeError, () => Object.preventExtensions(array));
+ assert_true(Reflect.preventExtensions(struct));
+ assert_true(Reflect.preventExtensions(array));
+ assert_equals(Object.preventExtensions(struct), struct);
+ assert_equals(Object.preventExtensions(array), array);
}, "preventExtensions");
test(() => {
const struct = functions.makeStruct();
const array = functions.makeArray();
- assert_throws_js(TypeError, () => Object.seal(struct));
- assert_throws_js(TypeError, () => Object.seal(array));
+ assert_true(Object.isSealed(struct));
+ assert_true(Object.isSealed(array));
+ assert_equals(Object.seal(struct), struct);
+ assert_equals(Object.seal(array), array);
}, "sealing");
+test(() => {
+ const struct = functions.makeStruct();
+ const array = functions.makeArray();
+ assert_true(Object.isFrozen(struct));
+ assert_true(Object.isFrozen(array));
+ assert_equals(Object.freeze(struct), struct);
+ assert_equals(Object.freeze(array), array);
+}, "freezing");
+
test(() => {
const struct = functions.makeStruct();
const array = functions.makeArray();