summaryrefslogtreecommitdiff
path: root/Libraries/LibJS/Tests/bigint-number-mix-errors.js
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/LibJS/Tests/bigint-number-mix-errors.js')
-rw-r--r--Libraries/LibJS/Tests/bigint-number-mix-errors.js82
1 files changed, 82 insertions, 0 deletions
diff --git a/Libraries/LibJS/Tests/bigint-number-mix-errors.js b/Libraries/LibJS/Tests/bigint-number-mix-errors.js
new file mode 100644
index 0000000000..382201b54b
--- /dev/null
+++ b/Libraries/LibJS/Tests/bigint-number-mix-errors.js
@@ -0,0 +1,82 @@
+load("test-common.js");
+
+try {
+ [1, null, undefined].forEach(value => {
+ assertThrowsError(() => {
+ 1n + value;
+ }, {
+ error: TypeError,
+ message: "Can't use addition operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n - value;
+ }, {
+ error: TypeError,
+ message: "Can't use subtraction operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n * value;
+ }, {
+ error: TypeError,
+ message: "Can't use multiplication operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n / value;
+ }, {
+ error: TypeError,
+ message: "Can't use division operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n % value;
+ }, {
+ error: TypeError,
+ message: "Can't use modulo operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n ** value;
+ }, {
+ error: TypeError,
+ message: "Can't use exponentiation operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n | value;
+ }, {
+ error: TypeError,
+ message: "Can't use bitwise OR operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n & value;
+ }, {
+ error: TypeError,
+ message: "Can't use bitwise AND operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n ^ value;
+ }, {
+ error: TypeError,
+ message: "Can't use bitwise XOR operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n << value;
+ }, {
+ error: TypeError,
+ message: "Can't use left-shift operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n >> value;
+ }, {
+ error: TypeError,
+ message: "Can't use right-shift operator with BigInt and other type"
+ });
+ assertThrowsError(() => {
+ 1n >>> value;
+ }, {
+ error: TypeError,
+ message: "Can't use unsigned right-shift operator with BigInt"
+ });
+ });
+
+ console.log("PASS");
+} catch (e) {
+ console.log("FAIL: " + e);
+}