diff --git a/tests/baselines/reference/binaryIntegerLiteral.js b/tests/baselines/reference/binaryIntegerLiteral.js new file mode 100644 index 0000000000..7e3245d803 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteral.js @@ -0,0 +1,65 @@ +//// [binaryIntegerLiteral.ts] +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number + + + +//// [binaryIntegerLiteral.js] +var bin1 = 26; +var bin2 = 26; +var obj1 = { + 26: "Hello", + a: bin1, + bin1: bin1, + b: 26, +}; +var obj2 = { + 26: "World", + a: bin2, + bin2: bin2, + b: 26, +}; +obj1[26]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number +obj2[26]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number diff --git a/tests/baselines/reference/binaryIntegerLiteral.types b/tests/baselines/reference/binaryIntegerLiteral.types new file mode 100644 index 0000000000..093cb0c46e --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteral.types @@ -0,0 +1,96 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts === +var bin1 = 0b11010; +>bin1 : number + +var bin2 = 0B11010; +>bin2 : number + +var obj1 = { +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } +>{ 0b11010: "Hello", a: bin1, bin1, b: 0b11010,} : { 0b11010: string; a: number; bin1: number; b: number; } + + 0b11010: "Hello", + a: bin1, +>a : number +>bin1 : number + + bin1, +>bin1 : number + + b: 0b11010, +>b : number +} + +var obj2 = { +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } +>{ 0B11010: "World", a: bin2, bin2, b: 0B11010,} : { 0B11010: string; a: number; bin2: number; b: number; } + + 0B11010: "World", + a: bin2, +>a : number +>bin2 : number + + bin2, +>bin2 : number + + b: 0B11010, +>b : number +} + +obj1[0b11010]; // string +>obj1[0b11010] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1[26]; // string +>obj1[26] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["26"]; // string +>obj1["26"] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["0b11010"]; // any +>obj1["0b11010"] : any +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["bin1"]; // number +>obj1["bin1"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj2[0B11010]; // string +>obj2[0B11010] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2[26]; // string +>obj2[26] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["26"]; // string +>obj2["26"] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["0B11010"]; // any +>obj2["0B11010"] : any +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["bin2"]; // number +>obj2["bin2"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + + diff --git a/tests/baselines/reference/binaryIntegerLiteralES6.js b/tests/baselines/reference/binaryIntegerLiteralES6.js new file mode 100644 index 0000000000..c8ec7e5063 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralES6.js @@ -0,0 +1,64 @@ +//// [binaryIntegerLiteralES6.ts] +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number + + +//// [binaryIntegerLiteralES6.js] +var bin1 = 0b11010; +var bin2 = 0B11010; +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +}; +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +}; +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number diff --git a/tests/baselines/reference/binaryIntegerLiteralES6.types b/tests/baselines/reference/binaryIntegerLiteralES6.types new file mode 100644 index 0000000000..b28b68032f --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralES6.types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts === +var bin1 = 0b11010; +>bin1 : number + +var bin2 = 0B11010; +>bin2 : number + +var obj1 = { +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } +>{ 0b11010: "Hello", a: bin1, bin1, b: 0b11010,} : { 0b11010: string; a: number; bin1: number; b: number; } + + 0b11010: "Hello", + a: bin1, +>a : number +>bin1 : number + + bin1, +>bin1 : number + + b: 0b11010, +>b : number +} + +var obj2 = { +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } +>{ 0B11010: "World", a: bin2, bin2, b: 0B11010,} : { 0B11010: string; a: number; bin2: number; b: number; } + + 0B11010: "World", + a: bin2, +>a : number +>bin2 : number + + bin2, +>bin2 : number + + b: 0B11010, +>b : number +} + +obj1[0b11010]; // string +>obj1[0b11010] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1[26]; // string +>obj1[26] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["26"]; // string +>obj1["26"] : string +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["0b11010"]; // any +>obj1["0b11010"] : any +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj1["bin1"]; // number +>obj1["bin1"] : number +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; } + +obj2[0B11010]; // string +>obj2[0B11010] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2[26]; // string +>obj2[26] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["26"]; // string +>obj2["26"] : string +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["0B11010"]; // any +>obj2["0B11010"] : any +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + +obj2["bin2"]; // number +>obj2["bin2"] : number +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; } + diff --git a/tests/baselines/reference/binaryIntegerLiteralError.errors.txt b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt new file mode 100644 index 0000000000..3346ee3377 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralError.errors.txt @@ -0,0 +1,28 @@ +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(2,17): error TS1163: Binary digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(3,17): error TS1163: Binary digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0b11010'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '26'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"26"'. + + +==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts (5 errors) ==== + // error + var bin1 = 0B1102110; + +!!! error TS1163: Binary digits expected. + var bin1 = 0b11023410; + +!!! error TS1163: Binary digits expected. + + var obj1 = { + 0b11010: "hi", + ~~~~~~~ +!!! error TS2300: Duplicate identifier '0b11010'. + 26: "Hello", + ~~ +!!! error TS2300: Duplicate identifier '26'. + "26": "world", + ~~~~ +!!! error TS2300: Duplicate identifier '"26"'. + }; + \ No newline at end of file diff --git a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt index 14afcebd21..3f5321734d 100644 --- a/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt +++ b/tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(12,6): error TS1112: A class member cannot be declared optional. tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(20,6): error TS1112: A class member cannot be declared optional. -tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1160: An object member cannot be declared optional. +tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts(24,6): error TS1162: An object member cannot be declared optional. ==== tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts (3 errors) ==== @@ -33,5 +33,5 @@ tests/cases/conformance/types/objectTypeLiteral/methodSignatures/objectTypesWith var b = { x?: 1 // error -!!! error TS1160: An object member cannot be declared optional. +!!! error TS1162: An object member cannot be declared optional. } \ No newline at end of file diff --git a/tests/baselines/reference/octalIntegerLiteral.js b/tests/baselines/reference/octalIntegerLiteral.js new file mode 100644 index 0000000000..5e2dabdeae --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteral.js @@ -0,0 +1,63 @@ +//// [octalIntegerLiteral.ts] +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number + + +//// [octalIntegerLiteral.js] +var oct1 = 19230; +var oct2 = 19230; +var obj1 = { + 19230: "Hello", + a: 19230, + b: oct1, + oct1: oct1, +}; +var obj2 = { + 19230: "hi", + a: 19230, + b: oct2, + oct2: oct2, +}; +obj1[19230]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number +obj2[19230]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/baselines/reference/octalIntegerLiteral.types b/tests/baselines/reference/octalIntegerLiteral.types new file mode 100644 index 0000000000..90cf8c16f1 --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteral.types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts === +var oct1 = 0o45436; +>oct1 : number + +var oct2 = 0O45436; +>oct2 : number + +var obj1 = { +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } +>{ 0o45436: "Hello", a: 0o45436, b: oct1, oct1,} : { 0o45436: string; a: number; b: number; oct1: number; } + + 0o45436: "Hello", + a: 0o45436, +>a : number + + b: oct1, +>b : number +>oct1 : number + + oct1, +>oct1 : number +} + +var obj2 = { +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } +>{ 0O45436: "hi", a: 0O45436, b: oct2, oct2,} : { 0O45436: string; a: number; b: number; oct2: number; } + + 0O45436: "hi", + a: 0O45436, +>a : number + + b: oct2, +>b : number +>oct2 : number + + oct2, +>oct2 : number +} + +obj1[0o45436]; // string +>obj1[0o45436] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["0o45436"]; // any +>obj1["0o45436"] : any +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["19230"]; // string +>obj1["19230"] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1[19230]; // string +>obj1[19230] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["oct1"]; // number +>obj1["oct1"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj2[0O45436]; // string +>obj2[0O45436] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["0O45436"]; // any +>obj2["0O45436"] : any +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["19230"]; // string +>obj2["19230"] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2[19230]; // string +>obj2[19230] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["oct2"]; // number +>obj2["oct2"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + diff --git a/tests/baselines/reference/octalIntegerLiteralES6.js b/tests/baselines/reference/octalIntegerLiteralES6.js new file mode 100644 index 0000000000..b69cd6f457 --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralES6.js @@ -0,0 +1,63 @@ +//// [octalIntegerLiteralES6.ts] +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number + + +//// [octalIntegerLiteralES6.js] +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +}; +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +}; +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/baselines/reference/octalIntegerLiteralES6.types b/tests/baselines/reference/octalIntegerLiteralES6.types new file mode 100644 index 0000000000..d913109b7f --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralES6.types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts === +var oct1 = 0o45436; +>oct1 : number + +var oct2 = 0O45436; +>oct2 : number + +var obj1 = { +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } +>{ 0o45436: "Hello", a: 0o45436, b: oct1, oct1,} : { 0o45436: string; a: number; b: number; oct1: number; } + + 0o45436: "Hello", + a: 0o45436, +>a : number + + b: oct1, +>b : number +>oct1 : number + + oct1, +>oct1 : number +} + +var obj2 = { +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } +>{ 0O45436: "hi", a: 0O45436, b: oct2, oct2,} : { 0O45436: string; a: number; b: number; oct2: number; } + + 0O45436: "hi", + a: 0O45436, +>a : number + + b: oct2, +>b : number +>oct2 : number + + oct2, +>oct2 : number +} + +obj1[0o45436]; // string +>obj1[0o45436] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["0o45436"]; // any +>obj1["0o45436"] : any +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["19230"]; // string +>obj1["19230"] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1[19230]; // string +>obj1[19230] : string +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["a"]; // number +>obj1["a"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["b"]; // number +>obj1["b"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj1["oct1"]; // number +>obj1["oct1"] : number +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; } + +obj2[0O45436]; // string +>obj2[0O45436] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["0O45436"]; // any +>obj2["0O45436"] : any +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["19230"]; // string +>obj2["19230"] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2[19230]; // string +>obj2[19230] : string +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["a"]; // number +>obj2["a"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["b"]; // number +>obj2["b"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + +obj2["oct2"]; // number +>obj2["oct2"] : number +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; } + diff --git a/tests/baselines/reference/octalIntegerLiteralError.errors.txt b/tests/baselines/reference/octalIntegerLiteralError.errors.txt new file mode 100644 index 0000000000..d0e2531796 --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralError.errors.txt @@ -0,0 +1,28 @@ +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(2,19): error TS1164: Octal digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(3,18): error TS1164: Octal digits expected. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(6,5): error TS2300: Duplicate identifier '0O45436'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(7,5): error TS2300: Duplicate identifier '19230'. +tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts(8,5): error TS2300: Duplicate identifier '"19230"'. + + +==== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts (5 errors) ==== + // error + var oct1 = 0O13334823; + +!!! error TS1164: Octal digits expected. + var oct2 = 0o34318592; + +!!! error TS1164: Octal digits expected. + + var obj1 = { + 0O45436: "hi", + ~~~~~~~ +!!! error TS2300: Duplicate identifier '0O45436'. + 19230: "Hello", + ~~~~~ +!!! error TS2300: Duplicate identifier '19230'. + "19230": "world", + ~~~~~~~ +!!! error TS2300: Duplicate identifier '"19230"'. + }; + \ No newline at end of file diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts new file mode 100644 index 0000000000..23b1674391 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts @@ -0,0 +1,34 @@ +// @target: es5 +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number + diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts new file mode 100644 index 0000000000..9f8de23c0e --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts @@ -0,0 +1,33 @@ +// @target: es6 +var bin1 = 0b11010; +var bin2 = 0B11010; + +var obj1 = { + 0b11010: "Hello", + a: bin1, + bin1, + b: 0b11010, +} + +var obj2 = { + 0B11010: "World", + a: bin2, + bin2, + b: 0B11010, +} + +obj1[0b11010]; // string +obj1[26]; // string +obj1["26"]; // string +obj1["0b11010"]; // any +obj1["a"]; // number +obj1["b"]; // number +obj1["bin1"]; // number + +obj2[0B11010]; // string +obj2[26]; // string +obj2["26"]; // string +obj2["0B11010"]; // any +obj2["a"]; // number +obj2["b"]; // number +obj2["bin2"]; // number diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts new file mode 100644 index 0000000000..b889aac5d9 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts @@ -0,0 +1,9 @@ +// error +var bin1 = 0B1102110; +var bin1 = 0b11023410; + +var obj1 = { + 0b11010: "hi", + 26: "Hello", + "26": "world", +}; diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts new file mode 100644 index 0000000000..a68531d396 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts @@ -0,0 +1,32 @@ +// @target: es5 +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts new file mode 100644 index 0000000000..22ca686f80 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts @@ -0,0 +1,32 @@ +// @target: es6 +var oct1 = 0o45436; +var oct2 = 0O45436; +var obj1 = { + 0o45436: "Hello", + a: 0o45436, + b: oct1, + oct1, +} + +var obj2 = { + 0O45436: "hi", + a: 0O45436, + b: oct2, + oct2, +} + +obj1[0o45436]; // string +obj1["0o45436"]; // any +obj1["19230"]; // string +obj1[19230]; // string +obj1["a"]; // number +obj1["b"]; // number +obj1["oct1"]; // number + +obj2[0O45436]; // string +obj2["0O45436"]; // any +obj2["19230"]; // string +obj2[19230]; // string +obj2["a"]; // number +obj2["b"]; // number +obj2["oct2"]; // number diff --git a/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts new file mode 100644 index 0000000000..06e7b5ddf3 --- /dev/null +++ b/tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts @@ -0,0 +1,9 @@ +// error +var oct1 = 0O13334823; +var oct2 = 0o34318592; + +var obj1 = { + 0O45436: "hi", + 19230: "Hello", + "19230": "world", +};