summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ctypes/conversion-to-primitive.js
blob: cdb9a4a051d515acb3a658550047cd01e9ad3c1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Accessing `value` property of non primitive type should report its type.

load(libdir + 'asserts.js');

function test() {
  let test_struct = ctypes.StructType("test_struct", [{ "x": ctypes.voidptr_t }]);
  assertTypeErrorMessage(() => test_struct().value,
                         ".value only works on character and numeric types, not `test_struct`");

  let test_array = ctypes.ArrayType(test_struct);
  assertTypeErrorMessage(() => test_array(10).value,
                         ".value only works on character and numeric types, not `test_struct.array(10)`");

  let test_pointer = ctypes.PointerType(test_struct);
  assertTypeErrorMessage(() => test_pointer(10).value,
                         ".value only works on character and numeric types, not `test_struct.ptr`");
}

if (typeof ctypes === "object")
  test();