blob: 1c3c9e870f5c37281b95c86c18762c60fdd7fa09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "jsapi.h"
#include "jsfriendapi.h"
#include "builtin/TestingFunctions.h"
#include "js/SharedArrayBuffer.h"
#include "jsapi-tests/tests.h"
BEGIN_TEST(testSABAccounting) {
// Purge what we can
JS::PrepareForFullGC(cx);
NonIncrementalGC(cx, GC_SHRINK, JS::GCReason::API);
// Self-hosting and chrome code should not use SABs, or the point of this
// predicate is completely lost.
CHECK(!JS::ContainsSharedArrayBuffer(cx));
JS::RootedObject obj(cx), obj2(cx);
CHECK(obj = JS::NewSharedArrayBuffer(cx, 4096));
CHECK(JS::ContainsSharedArrayBuffer(cx));
CHECK(obj2 = JS::NewSharedArrayBuffer(cx, 4096));
CHECK(JS::ContainsSharedArrayBuffer(cx));
// Discard those objects again.
obj = nullptr;
obj2 = nullptr;
JS::PrepareForFullGC(cx);
NonIncrementalGC(cx, GC_SHRINK, JS::GCReason::API);
// Should be back to base state.
CHECK(!JS::ContainsSharedArrayBuffer(cx));
return true;
}
END_TEST(testSABAccounting)
|