diff --git a/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.js b/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.js new file mode 100644 index 00000000000..a1039555694 --- /dev/null +++ b/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.js @@ -0,0 +1,43 @@ +//// [emitCompoundExponentiationOperator1ES7.ts] + +var comp: number; + +comp **= 1; +comp **= comp ** comp; +comp **= comp ** comp ** 2; +comp **= comp ** comp + 2; +comp **= comp ** comp - 2; +comp **= comp ** comp * 2; +comp **= comp ** comp / 2; +comp **= comp ** comp % 2; +comp **= (comp - 2) ** 5; +comp **= (comp + 2) ** 5; +comp **= (comp * 2) ** 5; +comp **= (comp / 2) ** 5; +comp **= (comp % 2) ** 5; +comp **= comp ** (5 + 2); +comp **= comp ** (5 - 2); +comp **= comp ** (5 * 2); +comp **= comp ** (5 / 2); +comp **= comp ** (5 % 2); + +//// [emitCompoundExponentiationOperator1ES7.js] +var comp; +comp **= 1; +comp **= comp ** comp; +comp **= comp ** comp ** 2; +comp **= comp ** comp + 2; +comp **= comp ** comp - 2; +comp **= comp ** comp * 2; +comp **= comp ** comp / 2; +comp **= comp ** comp % 2; +comp **= (comp - 2) ** 5; +comp **= (comp + 2) ** 5; +comp **= (comp * 2) ** 5; +comp **= (comp / 2) ** 5; +comp **= (comp % 2) ** 5; +comp **= comp ** (5 + 2); +comp **= comp ** (5 - 2); +comp **= comp ** (5 * 2); +comp **= comp ** (5 / 2); +comp **= comp ** (5 % 2); diff --git a/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.symbols b/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.symbols new file mode 100644 index 00000000000..07037222df8 --- /dev/null +++ b/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.symbols @@ -0,0 +1,83 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitCompoundExponentiationOperator1ES7.ts === + +var comp: number; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= 1; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp ** 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp + 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp - 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp * 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp / 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** comp % 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= (comp - 2) ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= (comp + 2) ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= (comp * 2) ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= (comp / 2) ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= (comp % 2) ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** (5 + 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** (5 - 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** (5 * 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** (5 / 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + +comp **= comp ** (5 % 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator1ES7.ts, 1, 3)) + diff --git a/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.types b/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.types new file mode 100644 index 00000000000..6937e381a22 --- /dev/null +++ b/tests/baselines/reference/emitCompoundExponentiationOperator1ES7.types @@ -0,0 +1,171 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitCompoundExponentiationOperator1ES7.ts === + +var comp: number; +>comp : number + +comp **= 1; +>comp **= 1 : number +>comp : number +>1 : number + +comp **= comp ** comp; +>comp **= comp ** comp : number +>comp : number +>comp ** comp : number +>comp : number +>comp : number + +comp **= comp ** comp ** 2; +>comp **= comp ** comp ** 2 : number +>comp : number +>comp ** comp ** 2 : number +>comp : number +>comp ** 2 : number +>comp : number +>2 : number + +comp **= comp ** comp + 2; +>comp **= comp ** comp + 2 : number +>comp : number +>comp ** comp + 2 : number +>comp ** comp : number +>comp : number +>comp : number +>2 : number + +comp **= comp ** comp - 2; +>comp **= comp ** comp - 2 : number +>comp : number +>comp ** comp - 2 : number +>comp ** comp : number +>comp : number +>comp : number +>2 : number + +comp **= comp ** comp * 2; +>comp **= comp ** comp * 2 : number +>comp : number +>comp ** comp * 2 : number +>comp ** comp : number +>comp : number +>comp : number +>2 : number + +comp **= comp ** comp / 2; +>comp **= comp ** comp / 2 : number +>comp : number +>comp ** comp / 2 : number +>comp ** comp : number +>comp : number +>comp : number +>2 : number + +comp **= comp ** comp % 2; +>comp **= comp ** comp % 2 : number +>comp : number +>comp ** comp % 2 : number +>comp ** comp : number +>comp : number +>comp : number +>2 : number + +comp **= (comp - 2) ** 5; +>comp **= (comp - 2) ** 5 : number +>comp : number +>(comp - 2) ** 5 : number +>(comp - 2) : number +>comp - 2 : number +>comp : number +>2 : number +>5 : number + +comp **= (comp + 2) ** 5; +>comp **= (comp + 2) ** 5 : number +>comp : number +>(comp + 2) ** 5 : number +>(comp + 2) : number +>comp + 2 : number +>comp : number +>2 : number +>5 : number + +comp **= (comp * 2) ** 5; +>comp **= (comp * 2) ** 5 : number +>comp : number +>(comp * 2) ** 5 : number +>(comp * 2) : number +>comp * 2 : number +>comp : number +>2 : number +>5 : number + +comp **= (comp / 2) ** 5; +>comp **= (comp / 2) ** 5 : number +>comp : number +>(comp / 2) ** 5 : number +>(comp / 2) : number +>comp / 2 : number +>comp : number +>2 : number +>5 : number + +comp **= (comp % 2) ** 5; +>comp **= (comp % 2) ** 5 : number +>comp : number +>(comp % 2) ** 5 : number +>(comp % 2) : number +>comp % 2 : number +>comp : number +>2 : number +>5 : number + +comp **= comp ** (5 + 2); +>comp **= comp ** (5 + 2) : number +>comp : number +>comp ** (5 + 2) : number +>comp : number +>(5 + 2) : number +>5 + 2 : number +>5 : number +>2 : number + +comp **= comp ** (5 - 2); +>comp **= comp ** (5 - 2) : number +>comp : number +>comp ** (5 - 2) : number +>comp : number +>(5 - 2) : number +>5 - 2 : number +>5 : number +>2 : number + +comp **= comp ** (5 * 2); +>comp **= comp ** (5 * 2) : number +>comp : number +>comp ** (5 * 2) : number +>comp : number +>(5 * 2) : number +>5 * 2 : number +>5 : number +>2 : number + +comp **= comp ** (5 / 2); +>comp **= comp ** (5 / 2) : number +>comp : number +>comp ** (5 / 2) : number +>comp : number +>(5 / 2) : number +>5 / 2 : number +>5 : number +>2 : number + +comp **= comp ** (5 % 2); +>comp **= comp ** (5 % 2) : number +>comp : number +>comp ** (5 % 2) : number +>comp : number +>(5 % 2) : number +>5 % 2 : number +>5 : number +>2 : number + diff --git a/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.js b/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.js new file mode 100644 index 00000000000..ac504150bec --- /dev/null +++ b/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.js @@ -0,0 +1,47 @@ +//// [emitCompoundExponentiationOperator2ES7.ts] + +var comp: number; + +comp **= 1; +comp **= comp **= 1; +comp **= comp **= 1 + 2; +comp **= comp **= 1 - 2; +comp **= comp **= 1 * 2; +comp **= comp **= 1 / 2; + +comp **= comp **= (1 + 2); +comp **= comp **= (1 - 2); +comp **= comp **= (1 * 2); +comp **= comp **= (1 / 2); + +comp **= comp **= 1 + 2 ** 3; +comp **= comp **= 1 - 2 ** 4; +comp **= comp **= 1 * 2 ** 5; +comp **= comp **= 1 / 2 ** 6; + +comp **= comp **= (1 + 2) ** 3; +comp **= comp **= (1 - 2) ** 4; +comp **= comp **= (1 * 2) ** 5; +comp **= comp **= (1 / 2) ** 6; + + +//// [emitCompoundExponentiationOperator2ES7.js] +var comp; +comp **= 1; +comp **= comp **= 1; +comp **= comp **= 1 + 2; +comp **= comp **= 1 - 2; +comp **= comp **= 1 * 2; +comp **= comp **= 1 / 2; +comp **= comp **= (1 + 2); +comp **= comp **= (1 - 2); +comp **= comp **= (1 * 2); +comp **= comp **= (1 / 2); +comp **= comp **= 1 + 2 ** 3; +comp **= comp **= 1 - 2 ** 4; +comp **= comp **= 1 * 2 ** 5; +comp **= comp **= 1 / 2 ** 6; +comp **= comp **= (1 + 2) ** 3; +comp **= comp **= (1 - 2) ** 4; +comp **= comp **= (1 * 2) ** 5; +comp **= comp **= (1 / 2) ** 6; diff --git a/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.symbols b/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.symbols new file mode 100644 index 00000000000..b3e56cbdbae --- /dev/null +++ b/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.symbols @@ -0,0 +1,76 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitCompoundExponentiationOperator2ES7.ts === + +var comp: number; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= 1; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 + 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 - 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 * 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 / 2; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 + 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 - 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 * 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 / 2); +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 + 2 ** 3; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 - 2 ** 4; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 * 2 ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= 1 / 2 ** 6; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 + 2) ** 3; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 - 2) ** 4; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 * 2) ** 5; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + +comp **= comp **= (1 / 2) ** 6; +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) +>comp : Symbol(comp, Decl(emitCompoundExponentiationOperator2ES7.ts, 1, 3)) + diff --git a/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.types b/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.types new file mode 100644 index 00000000000..97a61ec4af4 --- /dev/null +++ b/tests/baselines/reference/emitCompoundExponentiationOperator2ES7.types @@ -0,0 +1,185 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitCompoundExponentiationOperator2ES7.ts === + +var comp: number; +>comp : number + +comp **= 1; +>comp **= 1 : number +>comp : number +>1 : number + +comp **= comp **= 1; +>comp **= comp **= 1 : number +>comp : number +>comp **= 1 : number +>comp : number +>1 : number + +comp **= comp **= 1 + 2; +>comp **= comp **= 1 + 2 : number +>comp : number +>comp **= 1 + 2 : number +>comp : number +>1 + 2 : number +>1 : number +>2 : number + +comp **= comp **= 1 - 2; +>comp **= comp **= 1 - 2 : number +>comp : number +>comp **= 1 - 2 : number +>comp : number +>1 - 2 : number +>1 : number +>2 : number + +comp **= comp **= 1 * 2; +>comp **= comp **= 1 * 2 : number +>comp : number +>comp **= 1 * 2 : number +>comp : number +>1 * 2 : number +>1 : number +>2 : number + +comp **= comp **= 1 / 2; +>comp **= comp **= 1 / 2 : number +>comp : number +>comp **= 1 / 2 : number +>comp : number +>1 / 2 : number +>1 : number +>2 : number + +comp **= comp **= (1 + 2); +>comp **= comp **= (1 + 2) : number +>comp : number +>comp **= (1 + 2) : number +>comp : number +>(1 + 2) : number +>1 + 2 : number +>1 : number +>2 : number + +comp **= comp **= (1 - 2); +>comp **= comp **= (1 - 2) : number +>comp : number +>comp **= (1 - 2) : number +>comp : number +>(1 - 2) : number +>1 - 2 : number +>1 : number +>2 : number + +comp **= comp **= (1 * 2); +>comp **= comp **= (1 * 2) : number +>comp : number +>comp **= (1 * 2) : number +>comp : number +>(1 * 2) : number +>1 * 2 : number +>1 : number +>2 : number + +comp **= comp **= (1 / 2); +>comp **= comp **= (1 / 2) : number +>comp : number +>comp **= (1 / 2) : number +>comp : number +>(1 / 2) : number +>1 / 2 : number +>1 : number +>2 : number + +comp **= comp **= 1 + 2 ** 3; +>comp **= comp **= 1 + 2 ** 3 : number +>comp : number +>comp **= 1 + 2 ** 3 : number +>comp : number +>1 + 2 ** 3 : number +>1 : number +>2 ** 3 : number +>2 : number +>3 : number + +comp **= comp **= 1 - 2 ** 4; +>comp **= comp **= 1 - 2 ** 4 : number +>comp : number +>comp **= 1 - 2 ** 4 : number +>comp : number +>1 - 2 ** 4 : number +>1 : number +>2 ** 4 : number +>2 : number +>4 : number + +comp **= comp **= 1 * 2 ** 5; +>comp **= comp **= 1 * 2 ** 5 : number +>comp : number +>comp **= 1 * 2 ** 5 : number +>comp : number +>1 * 2 ** 5 : number +>1 : number +>2 ** 5 : number +>2 : number +>5 : number + +comp **= comp **= 1 / 2 ** 6; +>comp **= comp **= 1 / 2 ** 6 : number +>comp : number +>comp **= 1 / 2 ** 6 : number +>comp : number +>1 / 2 ** 6 : number +>1 : number +>2 ** 6 : number +>2 : number +>6 : number + +comp **= comp **= (1 + 2) ** 3; +>comp **= comp **= (1 + 2) ** 3 : number +>comp : number +>comp **= (1 + 2) ** 3 : number +>comp : number +>(1 + 2) ** 3 : number +>(1 + 2) : number +>1 + 2 : number +>1 : number +>2 : number +>3 : number + +comp **= comp **= (1 - 2) ** 4; +>comp **= comp **= (1 - 2) ** 4 : number +>comp : number +>comp **= (1 - 2) ** 4 : number +>comp : number +>(1 - 2) ** 4 : number +>(1 - 2) : number +>1 - 2 : number +>1 : number +>2 : number +>4 : number + +comp **= comp **= (1 * 2) ** 5; +>comp **= comp **= (1 * 2) ** 5 : number +>comp : number +>comp **= (1 * 2) ** 5 : number +>comp : number +>(1 * 2) ** 5 : number +>(1 * 2) : number +>1 * 2 : number +>1 : number +>2 : number +>5 : number + +comp **= comp **= (1 / 2) ** 6; +>comp **= comp **= (1 / 2) ** 6 : number +>comp : number +>comp **= (1 / 2) ** 6 : number +>comp : number +>(1 / 2) ** 6 : number +>(1 / 2) : number +>1 / 2 : number +>1 : number +>2 : number +>6 : number + diff --git a/tests/baselines/reference/emitExponentiationOperator1.js b/tests/baselines/reference/emitExponentiationOperator1.js index 7c37137b83f..2b270ef708b 100644 --- a/tests/baselines/reference/emitExponentiationOperator1.js +++ b/tests/baselines/reference/emitExponentiationOperator1.js @@ -1,12 +1,13 @@ //// [emitExponentiationOperator1.ts] +1 ** -2; 1 ** 2; +(-1) ** 2 1 ** 2 ** 3; -1 ** -2 ** 3; -1 ** -2 ** -3; --1 ** -2 ** -3; --(1 ** 2) ** 3; +1 ** 2 ** -3; 1 ** -(2 ** 3); +(-(1 ** 2)) ** 3; +(-(1 ** 2)) ** -3; 1 ** 2 + 3; 1 ** 2 - 3; @@ -32,13 +33,14 @@ (2 / 3) ** 4; //// [emitExponentiationOperator1.js] +Math.pow(1, -2); Math.pow(1, 2); +Math.pow((-1), 2); Math.pow(1, Math.pow(2, 3)); -Math.pow(1, -Math.pow(2, 3)); -Math.pow(1, -Math.pow(2, -3)); --Math.pow(1, -Math.pow(2, -3)); --Math.pow((Math.pow(1, 2)), 3); +Math.pow(1, Math.pow(2, -3)); Math.pow(1, -(Math.pow(2, 3))); +Math.pow((-(Math.pow(1, 2))), 3); +Math.pow((-(Math.pow(1, 2))), -3); Math.pow(1, 2) + 3; Math.pow(1, 2) - 3; Math.pow(1, 2) * 3; diff --git a/tests/baselines/reference/emitExponentiationOperator1.symbols b/tests/baselines/reference/emitExponentiationOperator1.symbols index 5e2bd27b02c..5fb3419d419 100644 --- a/tests/baselines/reference/emitExponentiationOperator1.symbols +++ b/tests/baselines/reference/emitExponentiationOperator1.symbols @@ -1,12 +1,13 @@ === tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator1.ts === +No type information for this code.1 ** -2; No type information for this code.1 ** 2; +No type information for this code.(-1) ** 2 No type information for this code.1 ** 2 ** 3; -No type information for this code.1 ** -2 ** 3; -No type information for this code.1 ** -2 ** -3; -No type information for this code.-1 ** -2 ** -3; -No type information for this code.-(1 ** 2) ** 3; +No type information for this code.1 ** 2 ** -3; No type information for this code.1 ** -(2 ** 3); +No type information for this code.(-(1 ** 2)) ** 3; +No type information for this code.(-(1 ** 2)) ** -3; No type information for this code. No type information for this code.1 ** 2 + 3; No type information for this code.1 ** 2 - 3; diff --git a/tests/baselines/reference/emitExponentiationOperator1.types b/tests/baselines/reference/emitExponentiationOperator1.types index de81d0b2e8f..a2dc4f16901 100644 --- a/tests/baselines/reference/emitExponentiationOperator1.types +++ b/tests/baselines/reference/emitExponentiationOperator1.types @@ -1,10 +1,23 @@ === tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator1.ts === +1 ** -2; +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number + 1 ** 2; >1 ** 2 : number >1 : number >2 : number +(-1) ** 2 +>(-1) ** 2 : number +>(-1) : number +>-1 : number +>1 : number +>2 : number + 1 ** 2 ** 3; >1 ** 2 ** 3 : number >1 : number @@ -12,42 +25,14 @@ >2 : number >3 : number -1 ** -2 ** 3; ->1 ** -2 ** 3 : number +1 ** 2 ** -3; +>1 ** 2 ** -3 : number >1 : number ->-2 ** 3 : number ->2 ** 3 : number ->2 : number ->3 : number - -1 ** -2 ** -3; ->1 ** -2 ** -3 : number ->1 : number ->-2 ** -3 : number >2 ** -3 : number >2 : number >-3 : number >3 : number --1 ** -2 ** -3; ->-1 ** -2 ** -3 : number ->1 ** -2 ** -3 : number ->1 : number ->-2 ** -3 : number ->2 ** -3 : number ->2 : number ->-3 : number ->3 : number - --(1 ** 2) ** 3; ->-(1 ** 2) ** 3 : number ->(1 ** 2) ** 3 : number ->(1 ** 2) : number ->1 ** 2 : number ->1 : number ->2 : number ->3 : number - 1 ** -(2 ** 3); >1 ** -(2 ** 3) : number >1 : number @@ -57,6 +42,27 @@ >2 : number >3 : number +(-(1 ** 2)) ** 3; +>(-(1 ** 2)) ** 3 : number +>(-(1 ** 2)) : number +>-(1 ** 2) : number +>(1 ** 2) : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +(-(1 ** 2)) ** -3; +>(-(1 ** 2)) ** -3 : number +>(-(1 ** 2)) : number +>-(1 ** 2) : number +>(1 ** 2) : number +>1 ** 2 : number +>1 : number +>2 : number +>-3 : number +>3 : number + 1 ** 2 + 3; >1 ** 2 + 3 : number >1 ** 2 : number diff --git a/tests/baselines/reference/emitExponentiationOperator1ES7.js b/tests/baselines/reference/emitExponentiationOperator1ES7.js new file mode 100644 index 00000000000..f9e4924d4b5 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator1ES7.js @@ -0,0 +1,62 @@ +//// [emitExponentiationOperator1ES7.ts] + +1 ** -2; +1 ** 2; +(-1) ** 2 +1 ** 2 ** 3; +1 ** 2 ** -3; +1 ** -(2 ** 3); +(-(1 ** 2)) ** 3; +(-(1 ** 2)) ** -3; + +1 ** 2 + 3; +1 ** 2 - 3; +1 ** 2 * 3; +1 ** 2 / 3; +1 ** 2 % 3; + +1 ** -2 + 3; +1 ** -2 - 3; +1 ** -2 * 3; +1 ** -2 / 3; +1 ** -2 % 3; + +2 + 3 ** 3; +2 - 3 ** 3; +2 * 3 ** 3; +2 / 3 ** 3; +2 % 3 ** 3; + +(2 + 3) ** 4; +(2 - 3) ** 4; +(2 * 3) ** 4; +(2 / 3) ** 4; + +//// [emitExponentiationOperator1ES7.js] +1 ** -2; +1 ** 2; +(-1) ** 2; +1 ** 2 ** 3; +1 ** 2 ** -3; +1 ** -(2 ** 3); +(-(1 ** 2)) ** 3; +(-(1 ** 2)) ** -3; +1 ** 2 + 3; +1 ** 2 - 3; +1 ** 2 * 3; +1 ** 2 / 3; +1 ** 2 % 3; +1 ** -2 + 3; +1 ** -2 - 3; +1 ** -2 * 3; +1 ** -2 / 3; +1 ** -2 % 3; +2 + 3 ** 3; +2 - 3 ** 3; +2 * 3 ** 3; +2 / 3 ** 3; +2 % 3 ** 3; +(2 + 3) ** 4; +(2 - 3) ** 4; +(2 * 3) ** 4; +(2 / 3) ** 4; diff --git a/tests/baselines/reference/emitExponentiationOperator1ES7.symbols b/tests/baselines/reference/emitExponentiationOperator1ES7.symbols new file mode 100644 index 00000000000..c0cc50e7083 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator1ES7.symbols @@ -0,0 +1,34 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator1ES7.ts === + +No type information for this code.1 ** -2; +No type information for this code.1 ** 2; +No type information for this code.(-1) ** 2 +No type information for this code.1 ** 2 ** 3; +No type information for this code.1 ** 2 ** -3; +No type information for this code.1 ** -(2 ** 3); +No type information for this code.(-(1 ** 2)) ** 3; +No type information for this code.(-(1 ** 2)) ** -3; +No type information for this code. +No type information for this code.1 ** 2 + 3; +No type information for this code.1 ** 2 - 3; +No type information for this code.1 ** 2 * 3; +No type information for this code.1 ** 2 / 3; +No type information for this code.1 ** 2 % 3; +No type information for this code. +No type information for this code.1 ** -2 + 3; +No type information for this code.1 ** -2 - 3; +No type information for this code.1 ** -2 * 3; +No type information for this code.1 ** -2 / 3; +No type information for this code.1 ** -2 % 3; +No type information for this code. +No type information for this code.2 + 3 ** 3; +No type information for this code.2 - 3 ** 3; +No type information for this code.2 * 3 ** 3; +No type information for this code.2 / 3 ** 3; +No type information for this code.2 % 3 ** 3; +No type information for this code. +No type information for this code.(2 + 3) ** 4; +No type information for this code.(2 - 3) ** 4; +No type information for this code.(2 * 3) ** 4; +No type information for this code.(2 / 3) ** 4; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/emitExponentiationOperator1ES7.types b/tests/baselines/reference/emitExponentiationOperator1ES7.types new file mode 100644 index 00000000000..067d992c446 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator1ES7.types @@ -0,0 +1,207 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator1ES7.ts === + +1 ** -2; +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number + +1 ** 2; +>1 ** 2 : number +>1 : number +>2 : number + +(-1) ** 2 +>(-1) ** 2 : number +>(-1) : number +>-1 : number +>1 : number +>2 : number + +1 ** 2 ** 3; +>1 ** 2 ** 3 : number +>1 : number +>2 ** 3 : number +>2 : number +>3 : number + +1 ** 2 ** -3; +>1 ** 2 ** -3 : number +>1 : number +>2 ** -3 : number +>2 : number +>-3 : number +>3 : number + +1 ** -(2 ** 3); +>1 ** -(2 ** 3) : number +>1 : number +>-(2 ** 3) : number +>(2 ** 3) : number +>2 ** 3 : number +>2 : number +>3 : number + +(-(1 ** 2)) ** 3; +>(-(1 ** 2)) ** 3 : number +>(-(1 ** 2)) : number +>-(1 ** 2) : number +>(1 ** 2) : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +(-(1 ** 2)) ** -3; +>(-(1 ** 2)) ** -3 : number +>(-(1 ** 2)) : number +>-(1 ** 2) : number +>(1 ** 2) : number +>1 ** 2 : number +>1 : number +>2 : number +>-3 : number +>3 : number + +1 ** 2 + 3; +>1 ** 2 + 3 : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +1 ** 2 - 3; +>1 ** 2 - 3 : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +1 ** 2 * 3; +>1 ** 2 * 3 : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +1 ** 2 / 3; +>1 ** 2 / 3 : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +1 ** 2 % 3; +>1 ** 2 % 3 : number +>1 ** 2 : number +>1 : number +>2 : number +>3 : number + +1 ** -2 + 3; +>1 ** -2 + 3 : number +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number +>3 : number + +1 ** -2 - 3; +>1 ** -2 - 3 : number +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number +>3 : number + +1 ** -2 * 3; +>1 ** -2 * 3 : number +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number +>3 : number + +1 ** -2 / 3; +>1 ** -2 / 3 : number +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number +>3 : number + +1 ** -2 % 3; +>1 ** -2 % 3 : number +>1 ** -2 : number +>1 : number +>-2 : number +>2 : number +>3 : number + +2 + 3 ** 3; +>2 + 3 ** 3 : number +>2 : number +>3 ** 3 : number +>3 : number +>3 : number + +2 - 3 ** 3; +>2 - 3 ** 3 : number +>2 : number +>3 ** 3 : number +>3 : number +>3 : number + +2 * 3 ** 3; +>2 * 3 ** 3 : number +>2 : number +>3 ** 3 : number +>3 : number +>3 : number + +2 / 3 ** 3; +>2 / 3 ** 3 : number +>2 : number +>3 ** 3 : number +>3 : number +>3 : number + +2 % 3 ** 3; +>2 % 3 ** 3 : number +>2 : number +>3 ** 3 : number +>3 : number +>3 : number + +(2 + 3) ** 4; +>(2 + 3) ** 4 : number +>(2 + 3) : number +>2 + 3 : number +>2 : number +>3 : number +>4 : number + +(2 - 3) ** 4; +>(2 - 3) ** 4 : number +>(2 - 3) : number +>2 - 3 : number +>2 : number +>3 : number +>4 : number + +(2 * 3) ** 4; +>(2 * 3) ** 4 : number +>(2 * 3) : number +>2 * 3 : number +>2 : number +>3 : number +>4 : number + +(2 / 3) ** 4; +>(2 / 3) ** 4 : number +>(2 / 3) : number +>2 / 3 : number +>2 : number +>3 : number +>4 : number + diff --git a/tests/baselines/reference/emitExponentiationOperator2.js b/tests/baselines/reference/emitExponentiationOperator2.js index 3a93ee9ec9c..46f80b44bba 100644 --- a/tests/baselines/reference/emitExponentiationOperator2.js +++ b/tests/baselines/reference/emitExponentiationOperator2.js @@ -11,13 +11,10 @@ temp-- ** 3; --temp * temp ** 3; --temp / temp ** 3; --temp % temp ** 3; --++temp ** 3; -+--temp ** 3; - temp-- ** 3; temp++ ** 3; --temp++ ** 3; -+temp-- ** 3; +temp-- ** -temp; +temp++ ** +temp; temp-- + temp ** 3; temp-- - temp ** 3; @@ -40,27 +37,11 @@ temp-- % temp ** 3; 3 ** --temp; 3 ** temp++; 3 ** temp--; --3 ** temp++; --3 ** temp--; --3 ** ++temp; --3 ** --temp; -+3 ** temp++; -+3 ** temp--; -+3 ** ++temp; -+3 ** --temp 3 ** ++temp ** 2; 3 ** --temp ** 2; 3 ** temp++ ** 2; 3 ** temp-- ** 2; --3 ** temp++ ** 2; --3 ** temp-- ** 2; --3 ** ++temp ** 2; --3 ** --temp ** 2; -+3 ** temp++ ** 2; -+3 ** temp-- ** 2; -+3 ** ++temp ** 2; -+3 ** --temp ** 2; 3 ** ++temp + 2; 3 ** ++temp - 2; @@ -85,12 +66,10 @@ Math.pow(temp--, 3); --temp * Math.pow(temp, 3); --temp / Math.pow(temp, 3); --temp % Math.pow(temp, 3); --Math.pow(++temp, 3); -+Math.pow(--temp, 3); Math.pow(temp--, 3); Math.pow(temp++, 3); --Math.pow(temp++, 3); -+Math.pow(temp--, 3); +Math.pow(temp--, -temp); +Math.pow(temp++, +temp); temp-- + Math.pow(temp, 3); temp-- - Math.pow(temp, 3); temp-- * Math.pow(temp, 3); @@ -109,26 +88,10 @@ Math.pow(3, ++temp); Math.pow(3, --temp); Math.pow(3, temp++); Math.pow(3, temp--); --Math.pow(3, temp++); --Math.pow(3, temp--); --Math.pow(3, ++temp); --Math.pow(3, --temp); -+Math.pow(3, temp++); -+Math.pow(3, temp--); -+Math.pow(3, ++temp); -+Math.pow(3, --temp); Math.pow(3, Math.pow(++temp, 2)); Math.pow(3, Math.pow(--temp, 2)); Math.pow(3, Math.pow(temp++, 2)); Math.pow(3, Math.pow(temp--, 2)); --Math.pow(3, Math.pow(temp++, 2)); --Math.pow(3, Math.pow(temp--, 2)); --Math.pow(3, Math.pow(++temp, 2)); --Math.pow(3, Math.pow(--temp, 2)); -+Math.pow(3, Math.pow(temp++, 2)); -+Math.pow(3, Math.pow(temp--, 2)); -+Math.pow(3, Math.pow(++temp, 2)); -+Math.pow(3, Math.pow(--temp, 2)); Math.pow(3, ++temp) + 2; Math.pow(3, ++temp) - 2; Math.pow(3, ++temp) * 2; diff --git a/tests/baselines/reference/emitExponentiationOperator2.symbols b/tests/baselines/reference/emitExponentiationOperator2.symbols index 58aa20a1d5f..c3d9e4b25df 100644 --- a/tests/baselines/reference/emitExponentiationOperator2.symbols +++ b/tests/baselines/reference/emitExponentiationOperator2.symbols @@ -35,22 +35,18 @@ temp-- ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) --++temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+--temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - temp-- ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) temp++ ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) --temp++ ** 3; +temp-- ** -temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) -+temp-- ** 3; +temp++ ** +temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) temp-- + temp ** 3; @@ -112,30 +108,6 @@ temp-- % temp ** 3; 3 ** temp--; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) --3 ** temp++; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - --3 ** temp--; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - --3 ** ++temp; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - --3 ** --temp; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** temp++; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** temp--; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** ++temp; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** --temp ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - 3 ** ++temp ** 2; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) @@ -148,30 +120,6 @@ temp-- % temp ** 3; 3 ** temp-- ** 2; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) --3 ** temp++ ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - --3 ** temp-- ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - --3 ** ++temp ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - --3 ** --temp ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** temp++ ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** temp-- ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** ++temp ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - -+3 ** --temp ** 2; ->temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) - 3 ** ++temp + 2; >temp : Symbol(temp, Decl(emitExponentiationOperator2.ts, 1, 3)) diff --git a/tests/baselines/reference/emitExponentiationOperator2.types b/tests/baselines/reference/emitExponentiationOperator2.types index edd40614a36..cd8773624a7 100644 --- a/tests/baselines/reference/emitExponentiationOperator2.types +++ b/tests/baselines/reference/emitExponentiationOperator2.types @@ -68,20 +68,6 @@ temp-- ** 3; >temp : number >3 : number --++temp ** 3; ->-++temp ** 3 : number ->++temp ** 3 : number ->++temp : number ->temp : number ->3 : number - -+--temp ** 3; ->+--temp ** 3 : number ->--temp ** 3 : number ->--temp : number ->temp : number ->3 : number - temp-- ** 3; >temp-- ** 3 : number >temp-- : number @@ -94,19 +80,19 @@ temp++ ** 3; >temp : number >3 : number --temp++ ** 3; ->-temp++ ** 3 : number ->temp++ ** 3 : number ->temp++ : number ->temp : number ->3 : number - -+temp-- ** 3; ->+temp-- ** 3 : number ->temp-- ** 3 : number +temp-- ** -temp; +>temp-- ** -temp : number >temp-- : number >temp : number ->3 : number +>-temp : number +>temp : number + +temp++ ** +temp; +>temp++ ** +temp : number +>temp++ : number +>temp : number +>+temp : number +>temp : number temp-- + temp ** 3; >temp-- + temp ** 3 : number @@ -244,62 +230,6 @@ temp-- % temp ** 3; >temp-- : number >temp : number --3 ** temp++; ->-3 ** temp++ : number ->3 ** temp++ : number ->3 : number ->temp++ : number ->temp : number - --3 ** temp--; ->-3 ** temp-- : number ->3 ** temp-- : number ->3 : number ->temp-- : number ->temp : number - --3 ** ++temp; ->-3 ** ++temp : number ->3 ** ++temp : number ->3 : number ->++temp : number ->temp : number - --3 ** --temp; ->-3 ** --temp : number ->3 ** --temp : number ->3 : number ->--temp : number ->temp : number - -+3 ** temp++; ->+3 ** temp++ : number ->3 ** temp++ : number ->3 : number ->temp++ : number ->temp : number - -+3 ** temp--; ->+3 ** temp-- : number ->3 ** temp-- : number ->3 : number ->temp-- : number ->temp : number - -+3 ** ++temp; ->+3 ** ++temp : number ->3 ** ++temp : number ->3 : number ->++temp : number ->temp : number - -+3 ** --temp ->+3 ** --temp : number ->3 ** --temp : number ->3 : number ->--temp : number ->temp : number - 3 ** ++temp ** 2; >3 ** ++temp ** 2 : number >3 : number @@ -332,78 +262,6 @@ temp-- % temp ** 3; >temp : number >2 : number --3 ** temp++ ** 2; ->-3 ** temp++ ** 2 : number ->3 ** temp++ ** 2 : number ->3 : number ->temp++ ** 2 : number ->temp++ : number ->temp : number ->2 : number - --3 ** temp-- ** 2; ->-3 ** temp-- ** 2 : number ->3 ** temp-- ** 2 : number ->3 : number ->temp-- ** 2 : number ->temp-- : number ->temp : number ->2 : number - --3 ** ++temp ** 2; ->-3 ** ++temp ** 2 : number ->3 ** ++temp ** 2 : number ->3 : number ->++temp ** 2 : number ->++temp : number ->temp : number ->2 : number - --3 ** --temp ** 2; ->-3 ** --temp ** 2 : number ->3 ** --temp ** 2 : number ->3 : number ->--temp ** 2 : number ->--temp : number ->temp : number ->2 : number - -+3 ** temp++ ** 2; ->+3 ** temp++ ** 2 : number ->3 ** temp++ ** 2 : number ->3 : number ->temp++ ** 2 : number ->temp++ : number ->temp : number ->2 : number - -+3 ** temp-- ** 2; ->+3 ** temp-- ** 2 : number ->3 ** temp-- ** 2 : number ->3 : number ->temp-- ** 2 : number ->temp-- : number ->temp : number ->2 : number - -+3 ** ++temp ** 2; ->+3 ** ++temp ** 2 : number ->3 ** ++temp ** 2 : number ->3 : number ->++temp ** 2 : number ->++temp : number ->temp : number ->2 : number - -+3 ** --temp ** 2; ->+3 ** --temp ** 2 : number ->3 ** --temp ** 2 : number ->3 : number ->--temp ** 2 : number ->--temp : number ->temp : number ->2 : number - 3 ** ++temp + 2; >3 ** ++temp + 2 : number >3 ** ++temp : number diff --git a/tests/baselines/reference/emitExponentiationOperator2ES7.js b/tests/baselines/reference/emitExponentiationOperator2ES7.js new file mode 100644 index 00000000000..89cef39ebf3 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator2ES7.js @@ -0,0 +1,104 @@ +//// [emitExponentiationOperator2ES7.ts] + +var temp = 10; + +++temp ** 3; +--temp ** 3; +temp++ ** 3; +temp-- ** 3; +--temp + temp ** 3; +--temp - temp ** 3; +--temp * temp ** 3; +--temp / temp ** 3; +--temp % temp ** 3; +temp-- ** 3; +temp++ ** 3; +temp-- ** -temp; +temp++ ** +temp; + +temp-- + temp ** 3; +temp-- - temp ** 3; +temp-- * temp ** 3; +temp-- / temp ** 3; +temp-- % temp ** 3; + +--temp + 2 ** 3; +--temp - 2 ** 3; +--temp * 2 ** 3; +--temp / 2 ** 3; +--temp % 2 ** 3; + +++temp + 2 ** 3; +++temp - 2 ** 3; +++temp * 2 ** 3; +++temp / 2 ** 3; + +3 ** ++temp; +3 ** --temp; +3 ** temp++; +3 ** temp--; + +3 ** ++temp ** 2; +3 ** --temp ** 2; +3 ** temp++ ** 2; +3 ** temp-- ** 2; + +3 ** ++temp + 2; +3 ** ++temp - 2; +3 ** ++temp * 2; +3 ** ++temp / 2; +3 ** ++temp % 2; + +3 ** --temp + 2; +3 ** --temp - 2; +3 ** --temp * 2; +3 ** --temp / 2; +3 ** --temp % 2; + +//// [emitExponentiationOperator2ES7.js] +var temp = 10; +++temp ** 3; +--temp ** 3; +temp++ ** 3; +temp-- ** 3; +--temp + temp ** 3; +--temp - temp ** 3; +--temp * temp ** 3; +--temp / temp ** 3; +--temp % temp ** 3; +temp-- ** 3; +temp++ ** 3; +temp-- ** -temp; +temp++ ** +temp; +temp-- + temp ** 3; +temp-- - temp ** 3; +temp-- * temp ** 3; +temp-- / temp ** 3; +temp-- % temp ** 3; +--temp + 2 ** 3; +--temp - 2 ** 3; +--temp * 2 ** 3; +--temp / 2 ** 3; +--temp % 2 ** 3; +++temp + 2 ** 3; +++temp - 2 ** 3; +++temp * 2 ** 3; +++temp / 2 ** 3; +3 ** ++temp; +3 ** --temp; +3 ** temp++; +3 ** temp--; +3 ** ++temp ** 2; +3 ** --temp ** 2; +3 ** temp++ ** 2; +3 ** temp-- ** 2; +3 ** ++temp + 2; +3 ** ++temp - 2; +3 ** ++temp * 2; +3 ** ++temp / 2; +3 ** ++temp % 2; +3 ** --temp + 2; +3 ** --temp - 2; +3 ** --temp * 2; +3 ** --temp / 2; +3 ** --temp % 2; diff --git a/tests/baselines/reference/emitExponentiationOperator2ES7.symbols b/tests/baselines/reference/emitExponentiationOperator2ES7.symbols new file mode 100644 index 00000000000..0e0ce52a297 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator2ES7.symbols @@ -0,0 +1,152 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator2ES7.ts === + +var temp = 10; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +++temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp++ ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp + temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp - temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp * temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp / temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp % temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp++ ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- ** -temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp++ ** +temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- + temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- - temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- * temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- / temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +temp-- % temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp + 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp - 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp * 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp / 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +--temp % 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +++temp + 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +++temp - 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +++temp * 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +++temp / 2 ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** temp++ ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** temp-- ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp + 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp - 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp * 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp / 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** ++temp % 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp + 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp - 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp * 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp / 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + +3 ** --temp % 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator2ES7.ts, 1, 3)) + diff --git a/tests/baselines/reference/emitExponentiationOperator2ES7.types b/tests/baselines/reference/emitExponentiationOperator2ES7.types new file mode 100644 index 00000000000..73fe09c6d87 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator2ES7.types @@ -0,0 +1,344 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator2ES7.ts === + +var temp = 10; +>temp : number +>10 : number + +++temp ** 3; +>++temp ** 3 : number +>++temp : number +>temp : number +>3 : number + +--temp ** 3; +>--temp ** 3 : number +>--temp : number +>temp : number +>3 : number + +temp++ ** 3; +>temp++ ** 3 : number +>temp++ : number +>temp : number +>3 : number + +temp-- ** 3; +>temp-- ** 3 : number +>temp-- : number +>temp : number +>3 : number + +--temp + temp ** 3; +>--temp + temp ** 3 : number +>--temp : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +--temp - temp ** 3; +>--temp - temp ** 3 : number +>--temp : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +--temp * temp ** 3; +>--temp * temp ** 3 : number +>--temp : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +--temp / temp ** 3; +>--temp / temp ** 3 : number +>--temp : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +--temp % temp ** 3; +>--temp % temp ** 3 : number +>--temp : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +temp-- ** 3; +>temp-- ** 3 : number +>temp-- : number +>temp : number +>3 : number + +temp++ ** 3; +>temp++ ** 3 : number +>temp++ : number +>temp : number +>3 : number + +temp-- ** -temp; +>temp-- ** -temp : number +>temp-- : number +>temp : number +>-temp : number +>temp : number + +temp++ ** +temp; +>temp++ ** +temp : number +>temp++ : number +>temp : number +>+temp : number +>temp : number + +temp-- + temp ** 3; +>temp-- + temp ** 3 : number +>temp-- : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +temp-- - temp ** 3; +>temp-- - temp ** 3 : number +>temp-- : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +temp-- * temp ** 3; +>temp-- * temp ** 3 : number +>temp-- : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +temp-- / temp ** 3; +>temp-- / temp ** 3 : number +>temp-- : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +temp-- % temp ** 3; +>temp-- % temp ** 3 : number +>temp-- : number +>temp : number +>temp ** 3 : number +>temp : number +>3 : number + +--temp + 2 ** 3; +>--temp + 2 ** 3 : number +>--temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +--temp - 2 ** 3; +>--temp - 2 ** 3 : number +>--temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +--temp * 2 ** 3; +>--temp * 2 ** 3 : number +>--temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +--temp / 2 ** 3; +>--temp / 2 ** 3 : number +>--temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +--temp % 2 ** 3; +>--temp % 2 ** 3 : number +>--temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +++temp + 2 ** 3; +>++temp + 2 ** 3 : number +>++temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +++temp - 2 ** 3; +>++temp - 2 ** 3 : number +>++temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +++temp * 2 ** 3; +>++temp * 2 ** 3 : number +>++temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +++temp / 2 ** 3; +>++temp / 2 ** 3 : number +>++temp : number +>temp : number +>2 ** 3 : number +>2 : number +>3 : number + +3 ** ++temp; +>3 ** ++temp : number +>3 : number +>++temp : number +>temp : number + +3 ** --temp; +>3 ** --temp : number +>3 : number +>--temp : number +>temp : number + +3 ** temp++; +>3 ** temp++ : number +>3 : number +>temp++ : number +>temp : number + +3 ** temp--; +>3 ** temp-- : number +>3 : number +>temp-- : number +>temp : number + +3 ** ++temp ** 2; +>3 ** ++temp ** 2 : number +>3 : number +>++temp ** 2 : number +>++temp : number +>temp : number +>2 : number + +3 ** --temp ** 2; +>3 ** --temp ** 2 : number +>3 : number +>--temp ** 2 : number +>--temp : number +>temp : number +>2 : number + +3 ** temp++ ** 2; +>3 ** temp++ ** 2 : number +>3 : number +>temp++ ** 2 : number +>temp++ : number +>temp : number +>2 : number + +3 ** temp-- ** 2; +>3 ** temp-- ** 2 : number +>3 : number +>temp-- ** 2 : number +>temp-- : number +>temp : number +>2 : number + +3 ** ++temp + 2; +>3 ** ++temp + 2 : number +>3 ** ++temp : number +>3 : number +>++temp : number +>temp : number +>2 : number + +3 ** ++temp - 2; +>3 ** ++temp - 2 : number +>3 ** ++temp : number +>3 : number +>++temp : number +>temp : number +>2 : number + +3 ** ++temp * 2; +>3 ** ++temp * 2 : number +>3 ** ++temp : number +>3 : number +>++temp : number +>temp : number +>2 : number + +3 ** ++temp / 2; +>3 ** ++temp / 2 : number +>3 ** ++temp : number +>3 : number +>++temp : number +>temp : number +>2 : number + +3 ** ++temp % 2; +>3 ** ++temp % 2 : number +>3 ** ++temp : number +>3 : number +>++temp : number +>temp : number +>2 : number + +3 ** --temp + 2; +>3 ** --temp + 2 : number +>3 ** --temp : number +>3 : number +>--temp : number +>temp : number +>2 : number + +3 ** --temp - 2; +>3 ** --temp - 2 : number +>3 ** --temp : number +>3 : number +>--temp : number +>temp : number +>2 : number + +3 ** --temp * 2; +>3 ** --temp * 2 : number +>3 ** --temp : number +>3 : number +>--temp : number +>temp : number +>2 : number + +3 ** --temp / 2; +>3 ** --temp / 2 : number +>3 ** --temp : number +>3 : number +>--temp : number +>temp : number +>2 : number + +3 ** --temp % 2; +>3 ** --temp % 2 : number +>3 ** --temp : number +>3 : number +>--temp : number +>temp : number +>2 : number + diff --git a/tests/baselines/reference/emitExponentiationOperator3.js b/tests/baselines/reference/emitExponentiationOperator3.js index 7cb92dfae63..ceb08c868db 100644 --- a/tests/baselines/reference/emitExponentiationOperator3.js +++ b/tests/baselines/reference/emitExponentiationOperator3.js @@ -1,218 +1,78 @@ //// [emitExponentiationOperator3.ts] -var temp: any; -delete --temp ** 3; -delete ++temp ** 3; -delete temp-- ** 3; -delete temp++ ** 3; -delete -++temp ** 3; -delete -temp++ ** 3; -delete -temp-- ** 3; +var temp = 10; -delete --temp ** 3 ** 1; -delete ++temp ** 3 ** 1; -delete temp-- ** 3 ** 1; -delete temp++ ** 3 ** 1; -delete -++temp ** 3 ** 1; -delete -temp++ ** 3 ** 1; -delete -temp-- ** 3 ** 1;; +(-++temp) ** 3; +(+--temp) ** 3; +(-temp++) ** 3; +(+temp--) ** 3; +(-(1 ** ++temp)) ** 3; +(-(1 ** --temp)) ** 3; +(-(1 ** temp++)) ** 3; +(-(1 ** temp--)) ** 3; ---temp ** 3; -++temp ** 3; -temp-- ** 3; -temp++ ** 3; --++temp ** 3; --temp++ ** 3; --temp-- ** 3; +(-3) ** temp++; +(-3) ** temp--; +(-3) ** ++temp; +(-3) ** --temp; +(+3) ** temp++; +(+3) ** temp--; +(+3) ** ++temp; +(+3) ** --temp; +(-3) ** temp++ ** 2; +(-3) ** temp-- ** 2; +(-3) ** ++temp ** 2; +(-3) ** --temp ** 2; +(+3) ** temp++ ** 2; +(+3) ** temp-- ** 2; +(+3) ** ++temp ** 2; +(+3) ** --temp ** 2; ---temp ** 3 ** 1; -++temp ** 3 ** 1; -temp-- ** 3 ** 1; -temp++ ** 3 ** 1; --++temp ** 3 ** 1; --temp++ ** 3 ** 1; --temp-- ** 3 ** 1; - -typeof --temp ** 3; -typeof temp-- ** 3; -typeof 3 ** 4; -typeof temp++ ** 4; -typeof temp-- ** 4; -typeof -3 ** 4; -typeof -++temp ** 4; -typeof -temp++ ** 4; -typeof -temp-- ** 4; - -typeof --temp ** 3 ** 1; -typeof temp-- ** 3 ** 1; -typeof 3 ** 4 ** 1; -typeof temp++ ** 4 ** 1; -typeof temp-- ** 4 ** 1; -typeof -3 ** 4 ** 1; -typeof -++temp ** 4 ** 1; -typeof -temp++ ** 4 ** 1; -typeof -temp-- ** 4 ** 1; - -void --temp ** 3; -void temp-- ** 3; -void 3 ** 4; -void temp++ ** 4; -void temp-- ** 4; -void -3 ** 4; -void -++temp ** 4; -void -temp++ ** 4; -void -temp-- ** 4; - -void --temp ** 3 ** 1; -void temp-- ** 3 ** 1; -void 3 ** 4 ** 1; -void temp++ ** 4 ** 1; -void temp-- ** 4 ** 1; -void -3 ** 4 ** 1; -void -++temp ** 4 ** 1; -void -temp++ ** 4 ** 1; -void -temp-- ** 4 ** 1; - -~ --temp ** 3; -~ temp-- ** 3; -~ 3 ** 4; -~ temp++ ** 4; -~ temp-- ** 4; -~ -3 ** 4; -~ -++temp ** 4; -~ -temp++ ** 4; -~ -temp-- ** 4; - -~ --temp ** 3 ** 1; -~ temp-- ** 3 ** 1; -~ 3 ** 4 ** 1; -~ temp++ ** 4 ** 1; -~ temp-- ** 4 ** 1; -~ -3 ** 4 ** 1; -~ -++temp ** 4 ** 1; -~ -temp++ ** 4 ** 1; -~ -temp-- ** 4 ** 1; - -! --temp ** 3; -! temp-- ** 3; -! 3 ** 4; -! temp++ ** 4; -! temp-- ** 4; -! -3 ** 4; -! -++temp ** 4; -! -temp++ ** 4; -! -temp-- ** 4; - -! --temp ** 3 ** 1; -! temp-- ** 3 ** 1; -! 3 ** 4 ** 1; -! temp++ ** 4 ** 1; -! temp-- ** 4 ** 1; -! -3 ** 4 ** 1; -! -++temp ** 4 ** 1; -! -temp++ ** 4 ** 1; -! -temp-- ** 4 ** 1; +3 ** -temp++; +3 ** -temp--; +3 ** -++temp; +3 ** +--temp; +3 ** (-temp++) ** 2; +3 ** (-temp--) ** 2; +3 ** (+temp++) ** 2; +3 ** (+temp--) ** 2; +3 ** (-++temp) ** 2; +3 ** (+--temp) ** 2; + //// [emitExponentiationOperator3.js] -var temp; -delete Math.pow(--temp, 3); -delete Math.pow(++temp, 3); -delete Math.pow(temp--, 3); -delete Math.pow(temp++, 3); -delete -Math.pow(++temp, 3); -delete -Math.pow(temp++, 3); -delete -Math.pow(temp--, 3); -delete Math.pow(--temp, Math.pow(3, 1)); -delete Math.pow(++temp, Math.pow(3, 1)); -delete Math.pow(temp--, Math.pow(3, 1)); -delete Math.pow(temp++, Math.pow(3, 1)); -delete -Math.pow(++temp, Math.pow(3, 1)); -delete -Math.pow(temp++, Math.pow(3, 1)); -delete -Math.pow(temp--, Math.pow(3, 1)); -; -Math.pow(--temp, 3); -Math.pow(++temp, 3); -Math.pow(temp--, 3); -Math.pow(temp++, 3); --Math.pow(++temp, 3); --Math.pow(temp++, 3); --Math.pow(temp--, 3); -Math.pow(--temp, Math.pow(3, 1)); -Math.pow(++temp, Math.pow(3, 1)); -Math.pow(temp--, Math.pow(3, 1)); -Math.pow(temp++, Math.pow(3, 1)); --Math.pow(++temp, Math.pow(3, 1)); --Math.pow(temp++, Math.pow(3, 1)); --Math.pow(temp--, Math.pow(3, 1)); -typeof Math.pow(--temp, 3); -typeof Math.pow(temp--, 3); -typeof Math.pow(3, 4); -typeof Math.pow(temp++, 4); -typeof Math.pow(temp--, 4); -typeof -Math.pow(3, 4); -typeof -Math.pow(++temp, 4); -typeof -Math.pow(temp++, 4); -typeof -Math.pow(temp--, 4); -typeof Math.pow(--temp, Math.pow(3, 1)); -typeof Math.pow(temp--, Math.pow(3, 1)); -typeof Math.pow(3, Math.pow(4, 1)); -typeof Math.pow(temp++, Math.pow(4, 1)); -typeof Math.pow(temp--, Math.pow(4, 1)); -typeof -Math.pow(3, Math.pow(4, 1)); -typeof -Math.pow(++temp, Math.pow(4, 1)); -typeof -Math.pow(temp++, Math.pow(4, 1)); -typeof -Math.pow(temp--, Math.pow(4, 1)); -void Math.pow(--temp, 3); -void Math.pow(temp--, 3); -void Math.pow(3, 4); -void Math.pow(temp++, 4); -void Math.pow(temp--, 4); -void -Math.pow(3, 4); -void -Math.pow(++temp, 4); -void -Math.pow(temp++, 4); -void -Math.pow(temp--, 4); -void Math.pow(--temp, Math.pow(3, 1)); -void Math.pow(temp--, Math.pow(3, 1)); -void Math.pow(3, Math.pow(4, 1)); -void Math.pow(temp++, Math.pow(4, 1)); -void Math.pow(temp--, Math.pow(4, 1)); -void -Math.pow(3, Math.pow(4, 1)); -void -Math.pow(++temp, Math.pow(4, 1)); -void -Math.pow(temp++, Math.pow(4, 1)); -void -Math.pow(temp--, Math.pow(4, 1)); -~Math.pow(--temp, 3); -~Math.pow(temp--, 3); -~Math.pow(3, 4); -~Math.pow(temp++, 4); -~Math.pow(temp--, 4); -~-Math.pow(3, 4); -~-Math.pow(++temp, 4); -~-Math.pow(temp++, 4); -~-Math.pow(temp--, 4); -~Math.pow(--temp, Math.pow(3, 1)); -~Math.pow(temp--, Math.pow(3, 1)); -~Math.pow(3, Math.pow(4, 1)); -~Math.pow(temp++, Math.pow(4, 1)); -~Math.pow(temp--, Math.pow(4, 1)); -~-Math.pow(3, Math.pow(4, 1)); -~-Math.pow(++temp, Math.pow(4, 1)); -~-Math.pow(temp++, Math.pow(4, 1)); -~-Math.pow(temp--, Math.pow(4, 1)); -!Math.pow(--temp, 3); -!Math.pow(temp--, 3); -!Math.pow(3, 4); -!Math.pow(temp++, 4); -!Math.pow(temp--, 4); -!-Math.pow(3, 4); -!-Math.pow(++temp, 4); -!-Math.pow(temp++, 4); -!-Math.pow(temp--, 4); -!Math.pow(--temp, Math.pow(3, 1)); -!Math.pow(temp--, Math.pow(3, 1)); -!Math.pow(3, Math.pow(4, 1)); -!Math.pow(temp++, Math.pow(4, 1)); -!Math.pow(temp--, Math.pow(4, 1)); -!-Math.pow(3, Math.pow(4, 1)); -!-Math.pow(++temp, Math.pow(4, 1)); -!-Math.pow(temp++, Math.pow(4, 1)); -!-Math.pow(temp--, Math.pow(4, 1)); +var temp = 10; +Math.pow((-++temp), 3); +Math.pow((+--temp), 3); +Math.pow((-temp++), 3); +Math.pow((+temp--), 3); +Math.pow((-(Math.pow(1, ++temp))), 3); +Math.pow((-(Math.pow(1, --temp))), 3); +Math.pow((-(Math.pow(1, temp++))), 3); +Math.pow((-(Math.pow(1, temp--))), 3); +Math.pow((-3), temp++); +Math.pow((-3), temp--); +Math.pow((-3), ++temp); +Math.pow((-3), --temp); +Math.pow((+3), temp++); +Math.pow((+3), temp--); +Math.pow((+3), ++temp); +Math.pow((+3), --temp); +Math.pow((-3), Math.pow(temp++, 2)); +Math.pow((-3), Math.pow(temp--, 2)); +Math.pow((-3), Math.pow(++temp, 2)); +Math.pow((-3), Math.pow(--temp, 2)); +Math.pow((+3), Math.pow(temp++, 2)); +Math.pow((+3), Math.pow(temp--, 2)); +Math.pow((+3), Math.pow(++temp, 2)); +Math.pow((+3), Math.pow(--temp, 2)); +Math.pow(3, -temp++); +Math.pow(3, -temp--); +Math.pow(3, -++temp); +Math.pow(3, +--temp); +Math.pow(3, Math.pow((-temp++), 2)); +Math.pow(3, Math.pow((-temp--), 2)); +Math.pow(3, Math.pow((+temp++), 2)); +Math.pow(3, Math.pow((+temp--), 2)); +Math.pow(3, Math.pow((-++temp), 2)); +Math.pow(3, Math.pow((+--temp), 2)); diff --git a/tests/baselines/reference/emitExponentiationOperator3.symbols b/tests/baselines/reference/emitExponentiationOperator3.symbols index 68b70711695..23111743855 100644 --- a/tests/baselines/reference/emitExponentiationOperator3.symbols +++ b/tests/baselines/reference/emitExponentiationOperator3.symbols @@ -1,272 +1,107 @@ === tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator3.ts === -var temp: any; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) -delete --temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +var temp = 10; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete ++temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-++temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+--temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete temp++ ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-temp++) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete -++temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete -temp++ ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-(1 ** ++temp)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete -temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-(1 ** --temp)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete --temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-(1 ** temp++)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete ++temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-(1 ** temp--)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete temp++ ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete -++temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** ++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete -temp++ ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** --temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -delete -temp-- ** 3 ** 1;; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) ---temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -++temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** ++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** --temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -temp++ ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** temp++ ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) --++temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** temp-- ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) --temp++ ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** ++temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) --temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(-3) ** --temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) ---temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** temp++ ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -++temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** temp-- ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** ++temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -temp++ ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +(+3) ** --temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) --++temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** -temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) --temp++ ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** -temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) --temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** -++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof --temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** +--temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** (-temp++) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof 3 ** 4; -typeof temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** (-temp--) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** (+temp++) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof -3 ** 4; -typeof -++temp ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** (+temp--) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof -temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** (-++temp) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) -typeof -temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof --temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof 3 ** 4 ** 1; -typeof temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof -3 ** 4 ** 1; -typeof -++temp ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof -temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -typeof -temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void --temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void 3 ** 4; -void temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void -3 ** 4; -void -++temp ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void -temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void -temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void --temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void 3 ** 4 ** 1; -void temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void -3 ** 4 ** 1; -void -++temp ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void -temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -void -temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ --temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ 3 ** 4; -~ temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ -3 ** 4; -~ -++temp ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ -temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ -temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ --temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ 3 ** 4 ** 1; -~ temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ -3 ** 4 ** 1; -~ -++temp ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ -temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -~ -temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! --temp ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! temp-- ** 3; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! 3 ** 4; -! temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! -3 ** 4; -! -++temp ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! -temp++ ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! -temp-- ** 4; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! --temp ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! temp-- ** 3 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! 3 ** 4 ** 1; -! temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! -3 ** 4 ** 1; -! -++temp ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! -temp++ ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) - -! -temp-- ** 4 ** 1; ->temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 0, 3)) +3 ** (+--temp) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3.ts, 1, 3)) diff --git a/tests/baselines/reference/emitExponentiationOperator3.types b/tests/baselines/reference/emitExponentiationOperator3.types index 8e455b7cd68..cc4c5374d05 100644 --- a/tests/baselines/reference/emitExponentiationOperator3.types +++ b/tests/baselines/reference/emitExponentiationOperator3.types @@ -1,832 +1,314 @@ === tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator3.ts === -var temp: any; ->temp : any -delete --temp ** 3; ->delete --temp ** 3 : boolean ->--temp ** 3 : number +var temp = 10; +>temp : number +>10 : number + +(-++temp) ** 3; +>(-++temp) ** 3 : number +>(-++temp) : number +>-++temp : number +>++temp : number +>temp : number +>3 : number + +(+--temp) ** 3; +>(+--temp) ** 3 : number +>(+--temp) : number +>+--temp : number >--temp : number ->temp : any +>temp : number >3 : number -delete ++temp ** 3; ->delete ++temp ** 3 : boolean ->++temp ** 3 : number ->++temp : number ->temp : any ->3 : number - -delete temp-- ** 3; ->delete temp-- ** 3 : boolean ->temp-- ** 3 : number ->temp-- : number ->temp : any ->3 : number - -delete temp++ ** 3; ->delete temp++ ** 3 : boolean ->temp++ ** 3 : number +(-temp++) ** 3; +>(-temp++) ** 3 : number +>(-temp++) : number +>-temp++ : number >temp++ : number ->temp : any +>temp : number >3 : number -delete -++temp ** 3; ->delete -++temp ** 3 : boolean ->-++temp ** 3 : number ->++temp ** 3 : number ->++temp : number ->temp : any ->3 : number - -delete -temp++ ** 3; ->delete -temp++ ** 3 : boolean ->-temp++ ** 3 : number ->temp++ ** 3 : number ->temp++ : number ->temp : any ->3 : number - -delete -temp-- ** 3; ->delete -temp-- ** 3 : boolean ->-temp-- ** 3 : number ->temp-- ** 3 : number +(+temp--) ** 3; +>(+temp--) ** 3 : number +>(+temp--) : number +>+temp-- : number >temp-- : number ->temp : any +>temp : number >3 : number -delete --temp ** 3 ** 1; ->delete --temp ** 3 ** 1 : boolean ->--temp ** 3 ** 1 : number +(-(1 ** ++temp)) ** 3; +>(-(1 ** ++temp)) ** 3 : number +>(-(1 ** ++temp)) : number +>-(1 ** ++temp) : number +>(1 ** ++temp) : number +>1 ** ++temp : number +>1 : number +>++temp : number +>temp : number +>3 : number + +(-(1 ** --temp)) ** 3; +>(-(1 ** --temp)) ** 3 : number +>(-(1 ** --temp)) : number +>-(1 ** --temp) : number +>(1 ** --temp) : number +>1 ** --temp : number +>1 : number >--temp : number ->temp : any ->3 ** 1 : number +>temp : number >3 : number ->1 : number -delete ++temp ** 3 ** 1; ->delete ++temp ** 3 ** 1 : boolean ->++temp ** 3 ** 1 : number ->++temp : number ->temp : any ->3 ** 1 : number ->3 : number +(-(1 ** temp++)) ** 3; +>(-(1 ** temp++)) ** 3 : number +>(-(1 ** temp++)) : number +>-(1 ** temp++) : number +>(1 ** temp++) : number +>1 ** temp++ : number >1 : number - -delete temp-- ** 3 ** 1; ->delete temp-- ** 3 ** 1 : boolean ->temp-- ** 3 ** 1 : number ->temp-- : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -delete temp++ ** 3 ** 1; ->delete temp++ ** 3 ** 1 : boolean ->temp++ ** 3 ** 1 : number >temp++ : number ->temp : any ->3 ** 1 : number +>temp : number >3 : number ->1 : number -delete -++temp ** 3 ** 1; ->delete -++temp ** 3 ** 1 : boolean ->-++temp ** 3 ** 1 : number ->++temp ** 3 ** 1 : number ->++temp : number ->temp : any ->3 ** 1 : number ->3 : number +(-(1 ** temp--)) ** 3; +>(-(1 ** temp--)) ** 3 : number +>(-(1 ** temp--)) : number +>-(1 ** temp--) : number +>(1 ** temp--) : number +>1 ** temp-- : number >1 : number - -delete -temp++ ** 3 ** 1; ->delete -temp++ ** 3 ** 1 : boolean ->-temp++ ** 3 ** 1 : number ->temp++ ** 3 ** 1 : number ->temp++ : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -delete -temp-- ** 3 ** 1;; ->delete -temp-- ** 3 ** 1 : boolean ->-temp-- ** 3 ** 1 : number ->temp-- ** 3 ** 1 : number >temp-- : number ->temp : any ->3 ** 1 : number +>temp : number >3 : number ->1 : number ---temp ** 3; ->--temp ** 3 : number ->--temp ** 3 : number +(-3) ** temp++; +>(-3) ** temp++ : number +>(-3) : number +>-3 : number +>3 : number +>temp++ : number +>temp : number + +(-3) ** temp--; +>(-3) ** temp-- : number +>(-3) : number +>-3 : number +>3 : number +>temp-- : number +>temp : number + +(-3) ** ++temp; +>(-3) ** ++temp : number +>(-3) : number +>-3 : number +>3 : number +>++temp : number +>temp : number + +(-3) ** --temp; +>(-3) ** --temp : number +>(-3) : number +>-3 : number +>3 : number >--temp : number ->temp : any ->3 : number +>temp : number -++temp ** 3; ->++temp ** 3 : number ->++temp ** 3 : number ->++temp : number ->temp : any +(+3) ** temp++; +>(+3) ** temp++ : number +>(+3) : number +>+3 : number >3 : number - -temp-- ** 3; ->temp-- ** 3 : number ->temp-- ** 3 : number ->temp-- : number ->temp : any ->3 : number - -temp++ ** 3; ->temp++ ** 3 : number ->temp++ ** 3 : number >temp++ : number ->temp : any ->3 : number +>temp : number --++temp ** 3; ->-++temp ** 3 : number ->-++temp ** 3 : number ->++temp ** 3 : number ->++temp : number ->temp : any +(+3) ** temp--; +>(+3) ** temp-- : number +>(+3) : number +>+3 : number >3 : number - --temp++ ** 3; ->-temp++ ** 3 : number ->-temp++ ** 3 : number ->temp++ ** 3 : number ->temp++ : number ->temp : any ->3 : number - --temp-- ** 3; ->-temp-- ** 3 : number ->-temp-- ** 3 : number ->temp-- ** 3 : number >temp-- : number ->temp : any ->3 : number +>temp : number ---temp ** 3 ** 1; ->--temp ** 3 ** 1 : number ->--temp ** 3 ** 1 : number +(+3) ** ++temp; +>(+3) ** ++temp : number +>(+3) : number +>+3 : number +>3 : number +>++temp : number +>temp : number + +(+3) ** --temp; +>(+3) ** --temp : number +>(+3) : number +>+3 : number +>3 : number >--temp : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number +>temp : number -++temp ** 3 ** 1; ->++temp ** 3 ** 1 : number ->++temp ** 3 ** 1 : number ->++temp : number ->temp : any ->3 ** 1 : number +(-3) ** temp++ ** 2; +>(-3) ** temp++ ** 2 : number +>(-3) : number +>-3 : number >3 : number ->1 : number - -temp-- ** 3 ** 1; ->temp-- ** 3 ** 1 : number ->temp-- ** 3 ** 1 : number ->temp-- : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -temp++ ** 3 ** 1; ->temp++ ** 3 ** 1 : number ->temp++ ** 3 ** 1 : number +>temp++ ** 2 : number >temp++ : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number +>temp : number +>2 : number --++temp ** 3 ** 1; ->-++temp ** 3 ** 1 : number ->-++temp ** 3 ** 1 : number ->++temp ** 3 ** 1 : number ->++temp : number ->temp : any ->3 ** 1 : number +(-3) ** temp-- ** 2; +>(-3) ** temp-- ** 2 : number +>(-3) : number +>-3 : number >3 : number ->1 : number - --temp++ ** 3 ** 1; ->-temp++ ** 3 ** 1 : number ->-temp++ ** 3 ** 1 : number ->temp++ ** 3 ** 1 : number ->temp++ : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - --temp-- ** 3 ** 1; ->-temp-- ** 3 ** 1 : number ->-temp-- ** 3 ** 1 : number ->temp-- ** 3 ** 1 : number +>temp-- ** 2 : number >temp-- : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number +>temp : number +>2 : number -typeof --temp ** 3; ->typeof --temp ** 3 : string ->--temp ** 3 : number +(-3) ** ++temp ** 2; +>(-3) ** ++temp ** 2 : number +>(-3) : number +>-3 : number +>3 : number +>++temp ** 2 : number +>++temp : number +>temp : number +>2 : number + +(-3) ** --temp ** 2; +>(-3) ** --temp ** 2 : number +>(-3) : number +>-3 : number +>3 : number +>--temp ** 2 : number >--temp : number ->temp : any ->3 : number +>temp : number +>2 : number -typeof temp-- ** 3; ->typeof temp-- ** 3 : string ->temp-- ** 3 : number ->temp-- : number ->temp : any +(+3) ** temp++ ** 2; +>(+3) ** temp++ ** 2 : number +>(+3) : number +>+3 : number >3 : number - -typeof 3 ** 4; ->typeof 3 ** 4 : string ->3 ** 4 : number ->3 : number ->4 : number - -typeof temp++ ** 4; ->typeof temp++ ** 4 : string ->temp++ ** 4 : number +>temp++ ** 2 : number >temp++ : number ->temp : any ->4 : number +>temp : number +>2 : number -typeof temp-- ** 4; ->typeof temp-- ** 4 : string ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -typeof -3 ** 4; ->typeof -3 ** 4 : string ->-3 ** 4 : number ->3 ** 4 : number +(+3) ** temp-- ** 2; +>(+3) ** temp-- ** 2 : number +>(+3) : number +>+3 : number >3 : number ->4 : number +>temp-- ** 2 : number +>temp-- : number +>temp : number +>2 : number -typeof -++temp ** 4; ->typeof -++temp ** 4 : string ->-++temp ** 4 : number ->++temp ** 4 : number +(+3) ** ++temp ** 2; +>(+3) ** ++temp ** 2 : number +>(+3) : number +>+3 : number +>3 : number +>++temp ** 2 : number >++temp : number ->temp : any ->4 : number +>temp : number +>2 : number -typeof -temp++ ** 4; ->typeof -temp++ ** 4 : string ->-temp++ ** 4 : number ->temp++ ** 4 : number ->temp++ : number ->temp : any ->4 : number - -typeof -temp-- ** 4; ->typeof -temp-- ** 4 : string ->-temp-- ** 4 : number ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -typeof --temp ** 3 ** 1; ->typeof --temp ** 3 ** 1 : string ->--temp ** 3 ** 1 : number +(+3) ** --temp ** 2; +>(+3) ** --temp ** 2 : number +>(+3) : number +>+3 : number +>3 : number +>--temp ** 2 : number >--temp : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number +>temp : number +>2 : number -typeof temp-- ** 3 ** 1; ->typeof temp-- ** 3 ** 1 : string ->temp-- ** 3 ** 1 : number ->temp-- : number ->temp : any ->3 ** 1 : number +3 ** -temp++; +>3 ** -temp++ : number >3 : number ->1 : number - -typeof 3 ** 4 ** 1; ->typeof 3 ** 4 ** 1 : string ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -typeof temp++ ** 4 ** 1; ->typeof temp++ ** 4 ** 1 : string ->temp++ ** 4 ** 1 : number +>-temp++ : number >temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number +>temp : number -typeof temp-- ** 4 ** 1; ->typeof temp-- ** 4 ** 1 : string ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -typeof -3 ** 4 ** 1; ->typeof -3 ** 4 ** 1 : string ->-3 ** 4 ** 1 : number ->3 ** 4 ** 1 : number +3 ** -temp--; +>3 ** -temp-- : number >3 : number ->4 ** 1 : number ->4 : number ->1 : number +>-temp-- : number +>temp-- : number +>temp : number -typeof -++temp ** 4 ** 1; ->typeof -++temp ** 4 ** 1 : string ->-++temp ** 4 ** 1 : number ->++temp ** 4 ** 1 : number +3 ** -++temp; +>3 ** -++temp : number +>3 : number +>-++temp : number >++temp : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number +>temp : number -typeof -temp++ ** 4 ** 1; ->typeof -temp++ ** 4 ** 1 : string ->-temp++ ** 4 ** 1 : number ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -typeof -temp-- ** 4 ** 1; ->typeof -temp-- ** 4 ** 1 : string ->-temp-- ** 4 ** 1 : number ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -void --temp ** 3; ->void --temp ** 3 : undefined ->--temp ** 3 : number +3 ** +--temp; +>3 ** +--temp : number +>3 : number +>+--temp : number >--temp : number ->temp : any ->3 : number +>temp : number -void temp-- ** 3; ->void temp-- ** 3 : undefined ->temp-- ** 3 : number ->temp-- : number ->temp : any +3 ** (-temp++) ** 2; +>3 ** (-temp++) ** 2 : number >3 : number - -void 3 ** 4; ->void 3 ** 4 : undefined ->3 ** 4 : number ->3 : number ->4 : number - -void temp++ ** 4; ->void temp++ ** 4 : undefined ->temp++ ** 4 : number +>(-temp++) ** 2 : number +>(-temp++) : number +>-temp++ : number >temp++ : number ->temp : any ->4 : number +>temp : number +>2 : number -void temp-- ** 4; ->void temp-- ** 4 : undefined ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -void -3 ** 4; ->void -3 ** 4 : undefined ->-3 ** 4 : number ->3 ** 4 : number +3 ** (-temp--) ** 2; +>3 ** (-temp--) ** 2 : number >3 : number ->4 : number +>(-temp--) ** 2 : number +>(-temp--) : number +>-temp-- : number +>temp-- : number +>temp : number +>2 : number -void -++temp ** 4; ->void -++temp ** 4 : undefined ->-++temp ** 4 : number ->++temp ** 4 : number +3 ** (+temp++) ** 2; +>3 ** (+temp++) ** 2 : number +>3 : number +>(+temp++) ** 2 : number +>(+temp++) : number +>+temp++ : number +>temp++ : number +>temp : number +>2 : number + +3 ** (+temp--) ** 2; +>3 ** (+temp--) ** 2 : number +>3 : number +>(+temp--) ** 2 : number +>(+temp--) : number +>+temp-- : number +>temp-- : number +>temp : number +>2 : number + +3 ** (-++temp) ** 2; +>3 ** (-++temp) ** 2 : number +>3 : number +>(-++temp) ** 2 : number +>(-++temp) : number +>-++temp : number >++temp : number ->temp : any ->4 : number +>temp : number +>2 : number -void -temp++ ** 4; ->void -temp++ ** 4 : undefined ->-temp++ ** 4 : number ->temp++ ** 4 : number ->temp++ : number ->temp : any ->4 : number - -void -temp-- ** 4; ->void -temp-- ** 4 : undefined ->-temp-- ** 4 : number ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -void --temp ** 3 ** 1; ->void --temp ** 3 ** 1 : undefined ->--temp ** 3 ** 1 : number +3 ** (+--temp) ** 2; +>3 ** (+--temp) ** 2 : number +>3 : number +>(+--temp) ** 2 : number +>(+--temp) : number +>+--temp : number >--temp : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -void temp-- ** 3 ** 1; ->void temp-- ** 3 ** 1 : undefined ->temp-- ** 3 ** 1 : number ->temp-- : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -void 3 ** 4 ** 1; ->void 3 ** 4 ** 1 : undefined ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -void temp++ ** 4 ** 1; ->void temp++ ** 4 ** 1 : undefined ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -void temp-- ** 4 ** 1; ->void temp-- ** 4 ** 1 : undefined ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -void -3 ** 4 ** 1; ->void -3 ** 4 ** 1 : undefined ->-3 ** 4 ** 1 : number ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -void -++temp ** 4 ** 1; ->void -++temp ** 4 ** 1 : undefined ->-++temp ** 4 ** 1 : number ->++temp ** 4 ** 1 : number ->++temp : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -void -temp++ ** 4 ** 1; ->void -temp++ ** 4 ** 1 : undefined ->-temp++ ** 4 ** 1 : number ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -void -temp-- ** 4 ** 1; ->void -temp-- ** 4 ** 1 : undefined ->-temp-- ** 4 ** 1 : number ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -~ --temp ** 3; ->~ --temp ** 3 : number ->--temp ** 3 : number ->--temp : number ->temp : any ->3 : number - -~ temp-- ** 3; ->~ temp-- ** 3 : number ->temp-- ** 3 : number ->temp-- : number ->temp : any ->3 : number - -~ 3 ** 4; ->~ 3 ** 4 : number ->3 ** 4 : number ->3 : number ->4 : number - -~ temp++ ** 4; ->~ temp++ ** 4 : number ->temp++ ** 4 : number ->temp++ : number ->temp : any ->4 : number - -~ temp-- ** 4; ->~ temp-- ** 4 : number ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -~ -3 ** 4; ->~ -3 ** 4 : number ->-3 ** 4 : number ->3 ** 4 : number ->3 : number ->4 : number - -~ -++temp ** 4; ->~ -++temp ** 4 : number ->-++temp ** 4 : number ->++temp ** 4 : number ->++temp : number ->temp : any ->4 : number - -~ -temp++ ** 4; ->~ -temp++ ** 4 : number ->-temp++ ** 4 : number ->temp++ ** 4 : number ->temp++ : number ->temp : any ->4 : number - -~ -temp-- ** 4; ->~ -temp-- ** 4 : number ->-temp-- ** 4 : number ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -~ --temp ** 3 ** 1; ->~ --temp ** 3 ** 1 : number ->--temp ** 3 ** 1 : number ->--temp : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -~ temp-- ** 3 ** 1; ->~ temp-- ** 3 ** 1 : number ->temp-- ** 3 ** 1 : number ->temp-- : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -~ 3 ** 4 ** 1; ->~ 3 ** 4 ** 1 : number ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -~ temp++ ** 4 ** 1; ->~ temp++ ** 4 ** 1 : number ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -~ temp-- ** 4 ** 1; ->~ temp-- ** 4 ** 1 : number ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -~ -3 ** 4 ** 1; ->~ -3 ** 4 ** 1 : number ->-3 ** 4 ** 1 : number ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -~ -++temp ** 4 ** 1; ->~ -++temp ** 4 ** 1 : number ->-++temp ** 4 ** 1 : number ->++temp ** 4 ** 1 : number ->++temp : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -~ -temp++ ** 4 ** 1; ->~ -temp++ ** 4 ** 1 : number ->-temp++ ** 4 ** 1 : number ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -~ -temp-- ** 4 ** 1; ->~ -temp-- ** 4 ** 1 : number ->-temp-- ** 4 ** 1 : number ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -! --temp ** 3; ->! --temp ** 3 : boolean ->--temp ** 3 : number ->--temp : number ->temp : any ->3 : number - -! temp-- ** 3; ->! temp-- ** 3 : boolean ->temp-- ** 3 : number ->temp-- : number ->temp : any ->3 : number - -! 3 ** 4; ->! 3 ** 4 : boolean ->3 ** 4 : number ->3 : number ->4 : number - -! temp++ ** 4; ->! temp++ ** 4 : boolean ->temp++ ** 4 : number ->temp++ : number ->temp : any ->4 : number - -! temp-- ** 4; ->! temp-- ** 4 : boolean ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -! -3 ** 4; ->! -3 ** 4 : boolean ->-3 ** 4 : number ->3 ** 4 : number ->3 : number ->4 : number - -! -++temp ** 4; ->! -++temp ** 4 : boolean ->-++temp ** 4 : number ->++temp ** 4 : number ->++temp : number ->temp : any ->4 : number - -! -temp++ ** 4; ->! -temp++ ** 4 : boolean ->-temp++ ** 4 : number ->temp++ ** 4 : number ->temp++ : number ->temp : any ->4 : number - -! -temp-- ** 4; ->! -temp-- ** 4 : boolean ->-temp-- ** 4 : number ->temp-- ** 4 : number ->temp-- : number ->temp : any ->4 : number - -! --temp ** 3 ** 1; ->! --temp ** 3 ** 1 : boolean ->--temp ** 3 ** 1 : number ->--temp : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -! temp-- ** 3 ** 1; ->! temp-- ** 3 ** 1 : boolean ->temp-- ** 3 ** 1 : number ->temp-- : number ->temp : any ->3 ** 1 : number ->3 : number ->1 : number - -! 3 ** 4 ** 1; ->! 3 ** 4 ** 1 : boolean ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -! temp++ ** 4 ** 1; ->! temp++ ** 4 ** 1 : boolean ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -! temp-- ** 4 ** 1; ->! temp-- ** 4 ** 1 : boolean ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -! -3 ** 4 ** 1; ->! -3 ** 4 ** 1 : boolean ->-3 ** 4 ** 1 : number ->3 ** 4 ** 1 : number ->3 : number ->4 ** 1 : number ->4 : number ->1 : number - -! -++temp ** 4 ** 1; ->! -++temp ** 4 ** 1 : boolean ->-++temp ** 4 ** 1 : number ->++temp ** 4 ** 1 : number ->++temp : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -! -temp++ ** 4 ** 1; ->! -temp++ ** 4 ** 1 : boolean ->-temp++ ** 4 ** 1 : number ->temp++ ** 4 ** 1 : number ->temp++ : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number - -! -temp-- ** 4 ** 1; ->! -temp-- ** 4 ** 1 : boolean ->-temp-- ** 4 ** 1 : number ->temp-- ** 4 ** 1 : number ->temp-- : number ->temp : any ->4 ** 1 : number ->4 : number ->1 : number +>temp : number +>2 : number diff --git a/tests/baselines/reference/emitExponentiationOperator3ES7.js b/tests/baselines/reference/emitExponentiationOperator3ES7.js new file mode 100644 index 00000000000..5d556c7f20e --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator3ES7.js @@ -0,0 +1,78 @@ +//// [emitExponentiationOperator3ES7.ts] + +var temp = 10; + +(-++temp) ** 3; +(+--temp) ** 3; +(-temp++) ** 3; +(+temp--) ** 3; +(-(1 ** ++temp)) ** 3; +(-(1 ** --temp)) ** 3; +(-(1 ** temp++)) ** 3; +(-(1 ** temp--)) ** 3; + +(-3) ** temp++; +(-3) ** temp--; +(-3) ** ++temp; +(-3) ** --temp; +(+3) ** temp++; +(+3) ** temp--; +(+3) ** ++temp; +(+3) ** --temp; +(-3) ** temp++ ** 2; +(-3) ** temp-- ** 2; +(-3) ** ++temp ** 2; +(-3) ** --temp ** 2; +(+3) ** temp++ ** 2; +(+3) ** temp-- ** 2; +(+3) ** ++temp ** 2; +(+3) ** --temp ** 2; + +3 ** -temp++; +3 ** -temp--; +3 ** -++temp; +3 ** +--temp; +3 ** (-temp++) ** 2; +3 ** (-temp--) ** 2; +3 ** (+temp++) ** 2; +3 ** (+temp--) ** 2; +3 ** (-++temp) ** 2; +3 ** (+--temp) ** 2; + + +//// [emitExponentiationOperator3ES7.js] +var temp = 10; +(-++temp) ** 3; +(+--temp) ** 3; +(-temp++) ** 3; +(+temp--) ** 3; +(-(1 ** ++temp)) ** 3; +(-(1 ** --temp)) ** 3; +(-(1 ** temp++)) ** 3; +(-(1 ** temp--)) ** 3; +(-3) ** temp++; +(-3) ** temp--; +(-3) ** ++temp; +(-3) ** --temp; +(+3) ** temp++; +(+3) ** temp--; +(+3) ** ++temp; +(+3) ** --temp; +(-3) ** temp++ ** 2; +(-3) ** temp-- ** 2; +(-3) ** ++temp ** 2; +(-3) ** --temp ** 2; +(+3) ** temp++ ** 2; +(+3) ** temp-- ** 2; +(+3) ** ++temp ** 2; +(+3) ** --temp ** 2; +3 ** -temp++; +3 ** -temp--; +3 ** -++temp; +3 ** +--temp; +3 ** (-temp++) ** 2; +3 ** (-temp--) ** 2; +3 ** (+temp++) ** 2; +3 ** (+temp--) ** 2; +3 ** (-++temp) ** 2; +3 ** (+--temp) ** 2; diff --git a/tests/baselines/reference/emitExponentiationOperator3ES7.symbols b/tests/baselines/reference/emitExponentiationOperator3ES7.symbols new file mode 100644 index 00000000000..cd668fcf8b7 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator3ES7.symbols @@ -0,0 +1,107 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator3ES7.ts === + +var temp = 10; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-++temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+--temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-temp++) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-(1 ** ++temp)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-(1 ** --temp)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-(1 ** temp++)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-(1 ** temp--)) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** ++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** --temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** ++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** --temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** temp++ ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** temp-- ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** ++temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(-3) ** --temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** temp++ ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** temp-- ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** ++temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +(+3) ** --temp ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** -temp++; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** -temp--; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** -++temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** +--temp; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** (-temp++) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** (-temp--) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** (+temp++) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** (+temp--) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** (-++temp) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + +3 ** (+--temp) ** 2; +>temp : Symbol(temp, Decl(emitExponentiationOperator3ES7.ts, 1, 3)) + diff --git a/tests/baselines/reference/emitExponentiationOperator3ES7.types b/tests/baselines/reference/emitExponentiationOperator3ES7.types new file mode 100644 index 00000000000..0585b282b0f --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator3ES7.types @@ -0,0 +1,314 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator3ES7.ts === + +var temp = 10; +>temp : number +>10 : number + +(-++temp) ** 3; +>(-++temp) ** 3 : number +>(-++temp) : number +>-++temp : number +>++temp : number +>temp : number +>3 : number + +(+--temp) ** 3; +>(+--temp) ** 3 : number +>(+--temp) : number +>+--temp : number +>--temp : number +>temp : number +>3 : number + +(-temp++) ** 3; +>(-temp++) ** 3 : number +>(-temp++) : number +>-temp++ : number +>temp++ : number +>temp : number +>3 : number + +(+temp--) ** 3; +>(+temp--) ** 3 : number +>(+temp--) : number +>+temp-- : number +>temp-- : number +>temp : number +>3 : number + +(-(1 ** ++temp)) ** 3; +>(-(1 ** ++temp)) ** 3 : number +>(-(1 ** ++temp)) : number +>-(1 ** ++temp) : number +>(1 ** ++temp) : number +>1 ** ++temp : number +>1 : number +>++temp : number +>temp : number +>3 : number + +(-(1 ** --temp)) ** 3; +>(-(1 ** --temp)) ** 3 : number +>(-(1 ** --temp)) : number +>-(1 ** --temp) : number +>(1 ** --temp) : number +>1 ** --temp : number +>1 : number +>--temp : number +>temp : number +>3 : number + +(-(1 ** temp++)) ** 3; +>(-(1 ** temp++)) ** 3 : number +>(-(1 ** temp++)) : number +>-(1 ** temp++) : number +>(1 ** temp++) : number +>1 ** temp++ : number +>1 : number +>temp++ : number +>temp : number +>3 : number + +(-(1 ** temp--)) ** 3; +>(-(1 ** temp--)) ** 3 : number +>(-(1 ** temp--)) : number +>-(1 ** temp--) : number +>(1 ** temp--) : number +>1 ** temp-- : number +>1 : number +>temp-- : number +>temp : number +>3 : number + +(-3) ** temp++; +>(-3) ** temp++ : number +>(-3) : number +>-3 : number +>3 : number +>temp++ : number +>temp : number + +(-3) ** temp--; +>(-3) ** temp-- : number +>(-3) : number +>-3 : number +>3 : number +>temp-- : number +>temp : number + +(-3) ** ++temp; +>(-3) ** ++temp : number +>(-3) : number +>-3 : number +>3 : number +>++temp : number +>temp : number + +(-3) ** --temp; +>(-3) ** --temp : number +>(-3) : number +>-3 : number +>3 : number +>--temp : number +>temp : number + +(+3) ** temp++; +>(+3) ** temp++ : number +>(+3) : number +>+3 : number +>3 : number +>temp++ : number +>temp : number + +(+3) ** temp--; +>(+3) ** temp-- : number +>(+3) : number +>+3 : number +>3 : number +>temp-- : number +>temp : number + +(+3) ** ++temp; +>(+3) ** ++temp : number +>(+3) : number +>+3 : number +>3 : number +>++temp : number +>temp : number + +(+3) ** --temp; +>(+3) ** --temp : number +>(+3) : number +>+3 : number +>3 : number +>--temp : number +>temp : number + +(-3) ** temp++ ** 2; +>(-3) ** temp++ ** 2 : number +>(-3) : number +>-3 : number +>3 : number +>temp++ ** 2 : number +>temp++ : number +>temp : number +>2 : number + +(-3) ** temp-- ** 2; +>(-3) ** temp-- ** 2 : number +>(-3) : number +>-3 : number +>3 : number +>temp-- ** 2 : number +>temp-- : number +>temp : number +>2 : number + +(-3) ** ++temp ** 2; +>(-3) ** ++temp ** 2 : number +>(-3) : number +>-3 : number +>3 : number +>++temp ** 2 : number +>++temp : number +>temp : number +>2 : number + +(-3) ** --temp ** 2; +>(-3) ** --temp ** 2 : number +>(-3) : number +>-3 : number +>3 : number +>--temp ** 2 : number +>--temp : number +>temp : number +>2 : number + +(+3) ** temp++ ** 2; +>(+3) ** temp++ ** 2 : number +>(+3) : number +>+3 : number +>3 : number +>temp++ ** 2 : number +>temp++ : number +>temp : number +>2 : number + +(+3) ** temp-- ** 2; +>(+3) ** temp-- ** 2 : number +>(+3) : number +>+3 : number +>3 : number +>temp-- ** 2 : number +>temp-- : number +>temp : number +>2 : number + +(+3) ** ++temp ** 2; +>(+3) ** ++temp ** 2 : number +>(+3) : number +>+3 : number +>3 : number +>++temp ** 2 : number +>++temp : number +>temp : number +>2 : number + +(+3) ** --temp ** 2; +>(+3) ** --temp ** 2 : number +>(+3) : number +>+3 : number +>3 : number +>--temp ** 2 : number +>--temp : number +>temp : number +>2 : number + +3 ** -temp++; +>3 ** -temp++ : number +>3 : number +>-temp++ : number +>temp++ : number +>temp : number + +3 ** -temp--; +>3 ** -temp-- : number +>3 : number +>-temp-- : number +>temp-- : number +>temp : number + +3 ** -++temp; +>3 ** -++temp : number +>3 : number +>-++temp : number +>++temp : number +>temp : number + +3 ** +--temp; +>3 ** +--temp : number +>3 : number +>+--temp : number +>--temp : number +>temp : number + +3 ** (-temp++) ** 2; +>3 ** (-temp++) ** 2 : number +>3 : number +>(-temp++) ** 2 : number +>(-temp++) : number +>-temp++ : number +>temp++ : number +>temp : number +>2 : number + +3 ** (-temp--) ** 2; +>3 ** (-temp--) ** 2 : number +>3 : number +>(-temp--) ** 2 : number +>(-temp--) : number +>-temp-- : number +>temp-- : number +>temp : number +>2 : number + +3 ** (+temp++) ** 2; +>3 ** (+temp++) ** 2 : number +>3 : number +>(+temp++) ** 2 : number +>(+temp++) : number +>+temp++ : number +>temp++ : number +>temp : number +>2 : number + +3 ** (+temp--) ** 2; +>3 ** (+temp--) ** 2 : number +>3 : number +>(+temp--) ** 2 : number +>(+temp--) : number +>+temp-- : number +>temp-- : number +>temp : number +>2 : number + +3 ** (-++temp) ** 2; +>3 ** (-++temp) ** 2 : number +>3 : number +>(-++temp) ** 2 : number +>(-++temp) : number +>-++temp : number +>++temp : number +>temp : number +>2 : number + +3 ** (+--temp) ** 2; +>3 ** (+--temp) ** 2 : number +>3 : number +>(+--temp) ** 2 : number +>(+--temp) : number +>+--temp : number +>--temp : number +>temp : number +>2 : number + diff --git a/tests/baselines/reference/emitExponentiationOperator4.js b/tests/baselines/reference/emitExponentiationOperator4.js new file mode 100644 index 00000000000..185616601be --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator4.js @@ -0,0 +1,68 @@ +//// [emitExponentiationOperator4.ts] +var temp: any; + +--temp ** 3; +++temp ** 3; +temp-- ** 3; +temp++ ** 3; + +1 ** --temp ** 3; +1 ** ++temp ** 3; +1 ** temp-- ** 3; +1 ** temp++ ** 3; + +(void --temp) ** 3; +(void temp--) ** 3; +(void 3) ** 4; +(void temp++) ** 4; +(void temp--) ** 4; + + +1 ** (void --temp) ** 3; +1 ** (void temp--) ** 3; +1 ** (void 3) ** 4; +1 ** (void temp++) ** 4; +1 ** (void temp--) ** 4; + +(~ --temp) ** 3; +(~ temp--) ** 3; +(~ 3) ** 4; +(~ temp++) ** 4; +(~ temp--) ** 4; + +1 ** (~ --temp) ** 3; +1 ** (~ temp--) ** 3; +1 ** (~ 3) ** 4; +1 ** (~ temp++) ** 4; +1 ** (~ temp--) ** 4; + +//// [emitExponentiationOperator4.js] +var temp; +Math.pow(--temp, 3); +Math.pow(++temp, 3); +Math.pow(temp--, 3); +Math.pow(temp++, 3); +Math.pow(1, Math.pow(--temp, 3)); +Math.pow(1, Math.pow(++temp, 3)); +Math.pow(1, Math.pow(temp--, 3)); +Math.pow(1, Math.pow(temp++, 3)); +Math.pow((void --temp), 3); +Math.pow((void temp--), 3); +Math.pow((void 3), 4); +Math.pow((void temp++), 4); +Math.pow((void temp--), 4); +Math.pow(1, Math.pow((void --temp), 3)); +Math.pow(1, Math.pow((void temp--), 3)); +Math.pow(1, Math.pow((void 3), 4)); +Math.pow(1, Math.pow((void temp++), 4)); +Math.pow(1, Math.pow((void temp--), 4)); +Math.pow((~--temp), 3); +Math.pow((~temp--), 3); +Math.pow((~3), 4); +Math.pow((~temp++), 4); +Math.pow((~temp--), 4); +Math.pow(1, Math.pow((~--temp), 3)); +Math.pow(1, Math.pow((~temp--), 3)); +Math.pow(1, Math.pow((~3), 4)); +Math.pow(1, Math.pow((~temp++), 4)); +Math.pow(1, Math.pow((~temp--), 4)); diff --git a/tests/baselines/reference/emitExponentiationOperator4.symbols b/tests/baselines/reference/emitExponentiationOperator4.symbols new file mode 100644 index 00000000000..c57825f908a --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator4.symbols @@ -0,0 +1,81 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4.ts === +var temp: any; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +--temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +++temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +temp-- ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +temp++ ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** --temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** ++temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** temp-- ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** temp++ ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(void --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(void temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(void 3) ** 4; +(void temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(void temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + + +1 ** (void --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (void temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (void 3) ** 4; +1 ** (void temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (void temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(~ --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(~ temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(~ 3) ** 4; +(~ temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +(~ temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (~ --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (~ temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (~ 3) ** 4; +1 ** (~ temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (~ temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + diff --git a/tests/baselines/reference/emitExponentiationOperator4.types b/tests/baselines/reference/emitExponentiationOperator4.types new file mode 100644 index 00000000000..2d5a7ea48f4 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator4.types @@ -0,0 +1,245 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4.ts === +var temp: any; +>temp : any + +--temp ** 3; +>--temp ** 3 : number +>--temp ** 3 : number +>--temp : number +>temp : any +>3 : number + +++temp ** 3; +>++temp ** 3 : number +>++temp ** 3 : number +>++temp : number +>temp : any +>3 : number + +temp-- ** 3; +>temp-- ** 3 : number +>temp-- ** 3 : number +>temp-- : number +>temp : any +>3 : number + +temp++ ** 3; +>temp++ ** 3 : number +>temp++ ** 3 : number +>temp++ : number +>temp : any +>3 : number + +1 ** --temp ** 3; +>1 ** --temp ** 3 : number +>1 : number +>--temp ** 3 : number +>--temp ** 3 : number +>--temp : number +>temp : any +>3 : number + +1 ** ++temp ** 3; +>1 ** ++temp ** 3 : number +>1 : number +>++temp ** 3 : number +>++temp ** 3 : number +>++temp : number +>temp : any +>3 : number + +1 ** temp-- ** 3; +>1 ** temp-- ** 3 : number +>1 : number +>temp-- ** 3 : number +>temp-- ** 3 : number +>temp-- : number +>temp : any +>3 : number + +1 ** temp++ ** 3; +>1 ** temp++ ** 3 : number +>1 : number +>temp++ ** 3 : number +>temp++ ** 3 : number +>temp++ : number +>temp : any +>3 : number + +(void --temp) ** 3; +>(void --temp) ** 3 : number +>(void --temp) : undefined +>void --temp : undefined +>--temp : number +>temp : any +>3 : number + +(void temp--) ** 3; +>(void temp--) ** 3 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>3 : number + +(void 3) ** 4; +>(void 3) ** 4 : number +>(void 3) : undefined +>void 3 : undefined +>3 : number +>4 : number + +(void temp++) ** 4; +>(void temp++) ** 4 : number +>(void temp++) : undefined +>void temp++ : undefined +>temp++ : number +>temp : any +>4 : number + +(void temp--) ** 4; +>(void temp--) ** 4 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>4 : number + + +1 ** (void --temp) ** 3; +>1 ** (void --temp) ** 3 : number +>1 : number +>(void --temp) ** 3 : number +>(void --temp) : undefined +>void --temp : undefined +>--temp : number +>temp : any +>3 : number + +1 ** (void temp--) ** 3; +>1 ** (void temp--) ** 3 : number +>1 : number +>(void temp--) ** 3 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>3 : number + +1 ** (void 3) ** 4; +>1 ** (void 3) ** 4 : number +>1 : number +>(void 3) ** 4 : number +>(void 3) : undefined +>void 3 : undefined +>3 : number +>4 : number + +1 ** (void temp++) ** 4; +>1 ** (void temp++) ** 4 : number +>1 : number +>(void temp++) ** 4 : number +>(void temp++) : undefined +>void temp++ : undefined +>temp++ : number +>temp : any +>4 : number + +1 ** (void temp--) ** 4; +>1 ** (void temp--) ** 4 : number +>1 : number +>(void temp--) ** 4 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>4 : number + +(~ --temp) ** 3; +>(~ --temp) ** 3 : number +>(~ --temp) : number +>~ --temp : number +>--temp : number +>temp : any +>3 : number + +(~ temp--) ** 3; +>(~ temp--) ** 3 : number +>(~ temp--) : number +>~ temp-- : number +>temp-- : number +>temp : any +>3 : number + +(~ 3) ** 4; +>(~ 3) ** 4 : number +>(~ 3) : number +>~ 3 : number +>3 : number +>4 : number + +(~ temp++) ** 4; +>(~ temp++) ** 4 : number +>(~ temp++) : number +>~ temp++ : number +>temp++ : number +>temp : any +>4 : number + +(~ temp--) ** 4; +>(~ temp--) ** 4 : number +>(~ temp--) : number +>~ temp-- : number +>temp-- : number +>temp : any +>4 : number + +1 ** (~ --temp) ** 3; +>1 ** (~ --temp) ** 3 : number +>1 : number +>(~ --temp) ** 3 : number +>(~ --temp) : number +>~ --temp : number +>--temp : number +>temp : any +>3 : number + +1 ** (~ temp--) ** 3; +>1 ** (~ temp--) ** 3 : number +>1 : number +>(~ temp--) ** 3 : number +>(~ temp--) : number +>~ temp-- : number +>temp-- : number +>temp : any +>3 : number + +1 ** (~ 3) ** 4; +>1 ** (~ 3) ** 4 : number +>1 : number +>(~ 3) ** 4 : number +>(~ 3) : number +>~ 3 : number +>3 : number +>4 : number + +1 ** (~ temp++) ** 4; +>1 ** (~ temp++) ** 4 : number +>1 : number +>(~ temp++) ** 4 : number +>(~ temp++) : number +>~ temp++ : number +>temp++ : number +>temp : any +>4 : number + +1 ** (~ temp--) ** 4; +>1 ** (~ temp--) ** 4 : number +>1 : number +>(~ temp--) ** 4 : number +>(~ temp--) : number +>~ temp-- : number +>temp-- : number +>temp : any +>4 : number + diff --git a/tests/baselines/reference/emitExponentiationOperator4ES7.js b/tests/baselines/reference/emitExponentiationOperator4ES7.js new file mode 100644 index 00000000000..fb32144575d --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator4ES7.js @@ -0,0 +1,68 @@ +//// [emitExponentiationOperator4ES7.ts] +var temp: any; + +--temp ** 3; +++temp ** 3; +temp-- ** 3; +temp++ ** 3; + +1 ** --temp ** 3; +1 ** ++temp ** 3; +1 ** temp-- ** 3; +1 ** temp++ ** 3; + +(void --temp) ** 3; +(void temp--) ** 3; +(void 3) ** 4; +(void temp++) ** 4; +(void temp--) ** 4; + + +1 ** (void --temp) ** 3; +1 ** (void temp--) ** 3; +1 ** (void 3) ** 4; +1 ** (void temp++) ** 4; +1 ** (void temp--) ** 4; + +(~ --temp) ** 3; +(~temp--) ** 3; +(~3) ** 4; +(~temp++) ** 4; +(~temp--) ** 4; + +1 ** (~ --temp) ** 3; +1 ** (~temp--) ** 3; +1 ** (~3) ** 4; +1 ** (~temp++) ** 4; +1 ** (~temp--) ** 4; + +//// [emitExponentiationOperator4ES7.js] +var temp; +--temp ** 3; +++temp ** 3; +temp-- ** 3; +temp++ ** 3; +1 ** --temp ** 3; +1 ** ++temp ** 3; +1 ** temp-- ** 3; +1 ** temp++ ** 3; +(void --temp) ** 3; +(void temp--) ** 3; +(void 3) ** 4; +(void temp++) ** 4; +(void temp--) ** 4; +1 ** (void --temp) ** 3; +1 ** (void temp--) ** 3; +1 ** (void 3) ** 4; +1 ** (void temp++) ** 4; +1 ** (void temp--) ** 4; +(~--temp) ** 3; +(~temp--) ** 3; +(~3) ** 4; +(~temp++) ** 4; +(~temp--) ** 4; +1 ** (~--temp) ** 3; +1 ** (~temp--) ** 3; +1 ** (~3) ** 4; +1 ** (~temp++) ** 4; +1 ** (~temp--) ** 4; diff --git a/tests/baselines/reference/emitExponentiationOperator4ES7.symbols b/tests/baselines/reference/emitExponentiationOperator4ES7.symbols new file mode 100644 index 00000000000..53701ed5aef --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator4ES7.symbols @@ -0,0 +1,81 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4ES7.ts === +var temp: any; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +--temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +++temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +temp-- ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +temp++ ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** --temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** ++temp ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** temp-- ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** temp++ ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(void --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(void temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(void 3) ** 4; +(void temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(void temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + + +1 ** (void --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (void temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (void 3) ** 4; +1 ** (void temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (void temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(~ --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(~temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(~3) ** 4; +(~temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +(~temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (~ --temp) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (~temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (~3) ** 4; +1 ** (~temp++) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (~temp--) ** 4; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + diff --git a/tests/baselines/reference/emitExponentiationOperator4ES7.types b/tests/baselines/reference/emitExponentiationOperator4ES7.types new file mode 100644 index 00000000000..78eacba9e39 --- /dev/null +++ b/tests/baselines/reference/emitExponentiationOperator4ES7.types @@ -0,0 +1,245 @@ +=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4ES7.ts === +var temp: any; +>temp : any + +--temp ** 3; +>--temp ** 3 : number +>--temp ** 3 : number +>--temp : number +>temp : any +>3 : number + +++temp ** 3; +>++temp ** 3 : number +>++temp ** 3 : number +>++temp : number +>temp : any +>3 : number + +temp-- ** 3; +>temp-- ** 3 : number +>temp-- ** 3 : number +>temp-- : number +>temp : any +>3 : number + +temp++ ** 3; +>temp++ ** 3 : number +>temp++ ** 3 : number +>temp++ : number +>temp : any +>3 : number + +1 ** --temp ** 3; +>1 ** --temp ** 3 : number +>1 : number +>--temp ** 3 : number +>--temp ** 3 : number +>--temp : number +>temp : any +>3 : number + +1 ** ++temp ** 3; +>1 ** ++temp ** 3 : number +>1 : number +>++temp ** 3 : number +>++temp ** 3 : number +>++temp : number +>temp : any +>3 : number + +1 ** temp-- ** 3; +>1 ** temp-- ** 3 : number +>1 : number +>temp-- ** 3 : number +>temp-- ** 3 : number +>temp-- : number +>temp : any +>3 : number + +1 ** temp++ ** 3; +>1 ** temp++ ** 3 : number +>1 : number +>temp++ ** 3 : number +>temp++ ** 3 : number +>temp++ : number +>temp : any +>3 : number + +(void --temp) ** 3; +>(void --temp) ** 3 : number +>(void --temp) : undefined +>void --temp : undefined +>--temp : number +>temp : any +>3 : number + +(void temp--) ** 3; +>(void temp--) ** 3 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>3 : number + +(void 3) ** 4; +>(void 3) ** 4 : number +>(void 3) : undefined +>void 3 : undefined +>3 : number +>4 : number + +(void temp++) ** 4; +>(void temp++) ** 4 : number +>(void temp++) : undefined +>void temp++ : undefined +>temp++ : number +>temp : any +>4 : number + +(void temp--) ** 4; +>(void temp--) ** 4 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>4 : number + + +1 ** (void --temp) ** 3; +>1 ** (void --temp) ** 3 : number +>1 : number +>(void --temp) ** 3 : number +>(void --temp) : undefined +>void --temp : undefined +>--temp : number +>temp : any +>3 : number + +1 ** (void temp--) ** 3; +>1 ** (void temp--) ** 3 : number +>1 : number +>(void temp--) ** 3 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>3 : number + +1 ** (void 3) ** 4; +>1 ** (void 3) ** 4 : number +>1 : number +>(void 3) ** 4 : number +>(void 3) : undefined +>void 3 : undefined +>3 : number +>4 : number + +1 ** (void temp++) ** 4; +>1 ** (void temp++) ** 4 : number +>1 : number +>(void temp++) ** 4 : number +>(void temp++) : undefined +>void temp++ : undefined +>temp++ : number +>temp : any +>4 : number + +1 ** (void temp--) ** 4; +>1 ** (void temp--) ** 4 : number +>1 : number +>(void temp--) ** 4 : number +>(void temp--) : undefined +>void temp-- : undefined +>temp-- : number +>temp : any +>4 : number + +(~ --temp) ** 3; +>(~ --temp) ** 3 : number +>(~ --temp) : number +>~ --temp : number +>--temp : number +>temp : any +>3 : number + +(~temp--) ** 3; +>(~temp--) ** 3 : number +>(~temp--) : number +>~temp-- : number +>temp-- : number +>temp : any +>3 : number + +(~3) ** 4; +>(~3) ** 4 : number +>(~3) : number +>~3 : number +>3 : number +>4 : number + +(~temp++) ** 4; +>(~temp++) ** 4 : number +>(~temp++) : number +>~temp++ : number +>temp++ : number +>temp : any +>4 : number + +(~temp--) ** 4; +>(~temp--) ** 4 : number +>(~temp--) : number +>~temp-- : number +>temp-- : number +>temp : any +>4 : number + +1 ** (~ --temp) ** 3; +>1 ** (~ --temp) ** 3 : number +>1 : number +>(~ --temp) ** 3 : number +>(~ --temp) : number +>~ --temp : number +>--temp : number +>temp : any +>3 : number + +1 ** (~temp--) ** 3; +>1 ** (~temp--) ** 3 : number +>1 : number +>(~temp--) ** 3 : number +>(~temp--) : number +>~temp-- : number +>temp-- : number +>temp : any +>3 : number + +1 ** (~3) ** 4; +>1 ** (~3) ** 4 : number +>1 : number +>(~3) ** 4 : number +>(~3) : number +>~3 : number +>3 : number +>4 : number + +1 ** (~temp++) ** 4; +>1 ** (~temp++) ** 4 : number +>1 : number +>(~temp++) ** 4 : number +>(~temp++) : number +>~temp++ : number +>temp++ : number +>temp : any +>4 : number + +1 ** (~temp--) ** 4; +>1 ** (~temp--) ** 4 : number +>1 : number +>(~temp--) ** 4 : number +>(~temp--) : number +>~temp-- : number +>temp-- : number +>temp : any +>4 : number +