Add baselines for using exponentiation in template string

This commit is contained in:
Yui T 2015-10-05 19:05:37 -07:00
parent bf970be0b3
commit 46d799e05d
21 changed files with 2911 additions and 337 deletions

View File

@ -0,0 +1,53 @@
//// [emitExponentiationOperatorInTempalteString4.ts]
var t1 = 10;
var t2 = 10;
var s;
// With TemplateTail
`${t1 ** -t2} world`;
`${(-t1) ** t2 - t1} world`;
`${(-++t1) ** t2 - t1} world`;
`${(-t1++) ** t2 - t1} world`;
`${(~t1) ** t2 ** --t1 } world`;
`${typeof (t1 ** t2 ** t1) } world`;
// TempateHead & TemplateTail are empt
`${t1 ** -t2} hello world ${t1 ** -t2}`;
`${(-t1) ** t2 - t1} hello world ${(-t1) ** t2 - t1}`;
`${(-++t1) ** t2 - t1} hello world ${t1 ** (-++t1) **- t1}`;
`${(-t1++) ** t2 - t1} hello world ${t2 ** (-t1++) ** - t1}`;
`${(~t1) ** t2 ** --t1 } hello world ${(~t1) ** t2 ** --t1 }`;
`${typeof (t1 ** t2 ** t1)} hello world ${typeof (t1 ** t2 ** t1)}`;
// With templateHead
`hello ${(-t1) ** t2 - t1}`;
`hello ${(-++t1) ** t2 - t1}`;
`hello ${(-t1++) ** t2 - t1}`;
`hello ${(~t1) ** t2 ** --t1 }`;
`hello ${typeof (t1 ** t2 ** t1)}`;
//// [emitExponentiationOperatorInTempalteString4.js]
var t1 = 10;
var t2 = 10;
var s;
// With TemplateTail
(Math.pow(t1, -t2)) + " world";
(Math.pow((-t1), t2) - t1) + " world";
(Math.pow((-++t1), t2) - t1) + " world";
(Math.pow((-t1++), t2) - t1) + " world";
(Math.pow((~t1), Math.pow(t2, --t1))) + " world";
typeof (Math.pow(t1, Math.pow(t2, t1))) + " world";
// TempateHead & TemplateTail are empt
(Math.pow(t1, -t2)) + " hello world " + (Math.pow(t1, -t2));
(Math.pow((-t1), t2) - t1) + " hello world " + (Math.pow((-t1), t2) - t1);
(Math.pow((-++t1), t2) - t1) + " hello world " + (Math.pow(t1, Math.pow((-++t1), -t1)));
(Math.pow((-t1++), t2) - t1) + " hello world " + (Math.pow(t2, Math.pow((-t1++), -t1)));
(Math.pow((~t1), Math.pow(t2, --t1))) + " hello world " + (Math.pow((~t1), Math.pow(t2, --t1)));
typeof (Math.pow(t1, Math.pow(t2, t1))) + " hello world " + typeof (Math.pow(t1, Math.pow(t2, t1)));
// With templateHead
"hello " + (Math.pow((-t1), t2) - t1);
"hello " + (Math.pow((-++t1), t2) - t1);
"hello " + (Math.pow((-t1++), t2) - t1);
"hello " + (Math.pow((~t1), Math.pow(t2, --t1)));
"hello " + typeof (Math.pow(t1, Math.pow(t2, t1)));

View File

@ -0,0 +1,114 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTempalteString4.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTempalteString4.ts, 3, 3))
// With TemplateTail
`${t1 ** -t2} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
`${(-t1) ** t2 - t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${(-++t1) ** t2 - t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${(-t1++) ** t2 - t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${(~t1) ** t2 ** --t1 } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
// TempateHead & TemplateTail are empt
`${t1 ** -t2} hello world ${t1 ** -t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
`${(-t1) ** t2 - t1} hello world ${(-t1) ** t2 - t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${(-++t1) ** t2 - t1} hello world ${t1 ** (-++t1) **- t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${(-t1++) ** t2 - t1} hello world ${t2 ** (-t1++) ** - t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${(~t1) ** t2 ** --t1 } hello world ${(~t1) ** t2 ** --t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`${typeof (t1 ** t2 ** t1)} hello world ${typeof (t1 ** t2 ** t1)}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
// With templateHead
`hello ${(-t1) ** t2 - t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`hello ${(-++t1) ** t2 - t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`hello ${(-t1++) ** t2 - t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`hello ${(~t1) ** t2 ** --t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1)}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTempalteString4.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTempalteString4.ts, 1, 3))

View File

@ -0,0 +1,233 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTempalteString4.ts ===
var t1 = 10;
>t1 : number
>10 : number
var t2 = 10;
>t2 : number
>10 : number
var s;
>s : any
// With TemplateTail
`${t1 ** -t2} world`;
>`${t1 ** -t2} world` : string
>t1 ** -t2 : number
>t1 : number
>-t2 : number
>t2 : number
`${(-t1) ** t2 - t1} world`;
>`${(-t1) ** t2 - t1} world` : string
>(-t1) ** t2 - t1 : number
>(-t1) ** t2 : number
>(-t1) : number
>-t1 : number
>t1 : number
>t2 : number
>t1 : number
`${(-++t1) ** t2 - t1} world`;
>`${(-++t1) ** t2 - t1} world` : string
>(-++t1) ** t2 - t1 : number
>(-++t1) ** t2 : number
>(-++t1) : number
>-++t1 : number
>++t1 : number
>t1 : number
>t2 : number
>t1 : number
`${(-t1++) ** t2 - t1} world`;
>`${(-t1++) ** t2 - t1} world` : string
>(-t1++) ** t2 - t1 : number
>(-t1++) ** t2 : number
>(-t1++) : number
>-t1++ : number
>t1++ : number
>t1 : number
>t2 : number
>t1 : number
`${(~t1) ** t2 ** --t1 } world`;
>`${(~t1) ** t2 ** --t1 } world` : string
>(~t1) ** t2 ** --t1 : number
>(~t1) : number
>~t1 : number
>t1 : number
>t2 ** --t1 : number
>t2 : number
>--t1 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) } world`;
>`${typeof (t1 ** t2 ** t1) } world` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
// TempateHead & TemplateTail are empt
`${t1 ** -t2} hello world ${t1 ** -t2}`;
>`${t1 ** -t2} hello world ${t1 ** -t2}` : string
>t1 ** -t2 : number
>t1 : number
>-t2 : number
>t2 : number
>t1 ** -t2 : number
>t1 : number
>-t2 : number
>t2 : number
`${(-t1) ** t2 - t1} hello world ${(-t1) ** t2 - t1}`;
>`${(-t1) ** t2 - t1} hello world ${(-t1) ** t2 - t1}` : string
>(-t1) ** t2 - t1 : number
>(-t1) ** t2 : number
>(-t1) : number
>-t1 : number
>t1 : number
>t2 : number
>t1 : number
>(-t1) ** t2 - t1 : number
>(-t1) ** t2 : number
>(-t1) : number
>-t1 : number
>t1 : number
>t2 : number
>t1 : number
`${(-++t1) ** t2 - t1} hello world ${t1 ** (-++t1) **- t1}`;
>`${(-++t1) ** t2 - t1} hello world ${t1 ** (-++t1) **- t1}` : string
>(-++t1) ** t2 - t1 : number
>(-++t1) ** t2 : number
>(-++t1) : number
>-++t1 : number
>++t1 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** (-++t1) **- t1 : number
>t1 : number
>(-++t1) **- t1 : number
>(-++t1) : number
>-++t1 : number
>++t1 : number
>t1 : number
>- t1 : number
>t1 : number
`${(-t1++) ** t2 - t1} hello world ${t2 ** (-t1++) ** - t1}`;
>`${(-t1++) ** t2 - t1} hello world ${t2 ** (-t1++) ** - t1}` : string
>(-t1++) ** t2 - t1 : number
>(-t1++) ** t2 : number
>(-t1++) : number
>-t1++ : number
>t1++ : number
>t1 : number
>t2 : number
>t1 : number
>t2 ** (-t1++) ** - t1 : number
>t2 : number
>(-t1++) ** - t1 : number
>(-t1++) : number
>-t1++ : number
>t1++ : number
>t1 : number
>- t1 : number
>t1 : number
`${(~t1) ** t2 ** --t1 } hello world ${(~t1) ** t2 ** --t1 }`;
>`${(~t1) ** t2 ** --t1 } hello world ${(~t1) ** t2 ** --t1 }` : string
>(~t1) ** t2 ** --t1 : number
>(~t1) : number
>~t1 : number
>t1 : number
>t2 ** --t1 : number
>t2 : number
>--t1 : number
>t1 : number
>(~t1) ** t2 ** --t1 : number
>(~t1) : number
>~t1 : number
>t1 : number
>t2 ** --t1 : number
>t2 : number
>--t1 : number
>t1 : number
`${typeof (t1 ** t2 ** t1)} hello world ${typeof (t1 ** t2 ** t1)}`;
>`${typeof (t1 ** t2 ** t1)} hello world ${typeof (t1 ** t2 ** t1)}` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
// With templateHead
`hello ${(-t1) ** t2 - t1}`;
>`hello ${(-t1) ** t2 - t1}` : string
>(-t1) ** t2 - t1 : number
>(-t1) ** t2 : number
>(-t1) : number
>-t1 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${(-++t1) ** t2 - t1}`;
>`hello ${(-++t1) ** t2 - t1}` : string
>(-++t1) ** t2 - t1 : number
>(-++t1) ** t2 : number
>(-++t1) : number
>-++t1 : number
>++t1 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${(-t1++) ** t2 - t1}`;
>`hello ${(-t1++) ** t2 - t1}` : string
>(-t1++) ** t2 - t1 : number
>(-t1++) ** t2 : number
>(-t1++) : number
>-t1++ : number
>t1++ : number
>t1 : number
>t2 : number
>t1 : number
`hello ${(~t1) ** t2 ** --t1 }`;
>`hello ${(~t1) ** t2 ** --t1 }` : string
>(~t1) ** t2 ** --t1 : number
>(~t1) : number
>~t1 : number
>t1 : number
>t2 ** --t1 : number
>t2 : number
>--t1 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1)}`;
>`hello ${typeof (t1 ** t2 ** t1)}` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number

View File

@ -1,60 +1,53 @@
//// [emitExponentiationOperatorInTemplateString1.ts]
var t1 = 10;
var t2 = 10;
var s;
`Exp: ${t1 ** t2} abc`;
`Exp: ${t1 ** t2 ** t1} abc`;
`Exp: ${t1 + t2 ** t1} abc`;
`Exp: ${t1 - t2 ** t1} abc`;
`Exp: ${t1 ** t2 + t1} abc`;
`Exp: ${t1 ** t2 - t1} abc`;
`Exp: ${t1 + t2 ** t2 + t1} abc`;
`Exp: ${t1 - t2 ** t2 - t1} abc`;
`Exp: ${-t1 ** t2 - t1} abc`;
`Exp: ${+t1 ** t2 - t1} abc`;
`Exp: ${-++t1 ** t2 - t1} abc`;
`Exp: ${+--t1 ** t2 - t1} abc`;
`Exp: ${-t1++ ** t2 - t1} abc`;
`Exp: ${-t1-- ** t2 - t1} abc`;
`Exp: ${+t1++ ** t2 - t1} abc`;
`Exp: ${+t1-- ** t2 - t1} abc`;
`Exp: ${typeof t1 ** t2 ** t1} abc`;
`Exp: ${typeof t1 ** t2 + t1} abc`;
`Exp: ${typeof t1 ** (t2 - t1)} abc`;
`Exp: ${1 + typeof t1 ** t2 ** t1} abc`;
`Exp: ${2 + typeof t1 ** t2 ** ++t1} abc`;
`Exp: ${3 + typeof t1 ** t2 ** --t1} abc`;
`Exp: ${!t1 ** t2 ** t1} abc`;
`Exp: ${!t1 ** t2 ** ++t1} abc`;
`Exp: ${!t1 ** t2 ** --t1} abc`;
// TempateHead & TemplateTail are empty
`${t1 ** t2}`;
`${t1 ** t2 ** t1}`;
`${t1 + t2 ** t1}`;
`${t1 ** t2 + t1}`;
`${t1 + t2 ** t2 + t1 }`;
`${typeof (t1 ** t2 ** t1) }`;
`${1 + typeof (t1 ** t2 ** t1) }`;
`${t1 ** t2}${t1 ** t2}`;
`${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
`${t1 + t2 ** t1}${t1 + t2 ** t1}`;
`${t1 ** t2 + t1}${t1 ** t2 + t1}`;
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}`;
`${t1 ** t2} hello world ${t1 ** t2}`;
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
//// [emitExponentiationOperatorInTemplateString1.js]
var t1 = 10;
var t2 = 10;
var s;
"Exp: " + (Math.pow(t1, t2)) + " abc";
"Exp: " + (Math.pow(t1, Math.pow(t2, t1))) + " abc";
"Exp: " + (t1 + Math.pow(t2, t1)) + " abc";
"Exp: " + (t1 - Math.pow(t2, t1)) + " abc";
"Exp: " + (Math.pow(t1, t2) + t1) + " abc";
"Exp: " + (Math.pow(t1, t2) - t1) + " abc";
"Exp: " + (t1 + Math.pow(t2, t2) + t1) + " abc";
"Exp: " + (t1 - Math.pow(t2, t2) - t1) + " abc";
"Exp: " + (-Math.pow(t1, t2) - t1) + " abc";
"Exp: " + (+Math.pow(t1, t2) - t1) + " abc";
"Exp: " + (-Math.pow(++t1, t2) - t1) + " abc";
"Exp: " + (+Math.pow(--t1, t2) - t1) + " abc";
"Exp: " + (-Math.pow(t1++, t2) - t1) + " abc";
"Exp: " + (-Math.pow(t1--, t2) - t1) + " abc";
"Exp: " + (+Math.pow(t1++, t2) - t1) + " abc";
"Exp: " + (+Math.pow(t1--, t2) - t1) + " abc";
"Exp: " + typeof Math.pow(t1, Math.pow(t2, t1)) + " abc";
"Exp: " + (typeof Math.pow(t1, t2) + t1) + " abc";
"Exp: " + typeof Math.pow(t1, (t2 - t1)) + " abc";
"Exp: " + (1 + typeof Math.pow(t1, Math.pow(t2, t1))) + " abc";
"Exp: " + (2 + typeof Math.pow(t1, Math.pow(t2, ++t1))) + " abc";
"Exp: " + (3 + typeof Math.pow(t1, Math.pow(t2, --t1))) + " abc";
"Exp: " + !Math.pow(t1, Math.pow(t2, t1)) + " abc";
"Exp: " + !Math.pow(t1, Math.pow(t2, ++t1)) + " abc";
"Exp: " + !Math.pow(t1, Math.pow(t2, --t1)) + " abc";
// TempateHead & TemplateTail are empty
"" + (Math.pow(t1, t2));
"" + (Math.pow(t1, Math.pow(t2, t1)));
"" + (t1 + Math.pow(t2, t1));
"" + (Math.pow(t1, t2) + t1);
"" + (t1 + Math.pow(t2, t2) + t1);
"" + typeof (Math.pow(t1, Math.pow(t2, t1)));
"" + (1 + typeof (Math.pow(t1, Math.pow(t2, t1))));
"" + (Math.pow(t1, t2)) + (Math.pow(t1, t2));
"" + (Math.pow(t1, Math.pow(t2, t1))) + (Math.pow(t1, Math.pow(t2, t1)));
"" + (t1 + Math.pow(t2, t1)) + (t1 + Math.pow(t2, t1));
"" + (Math.pow(t1, t2) + t1) + (Math.pow(t1, t2) + t1);
"" + (t1 + Math.pow(t2, t2) + t1) + (t1 + Math.pow(t2, t2) + t1);
"" + typeof (Math.pow(t1, Math.pow(t2, t1))) + typeof (Math.pow(t1, Math.pow(t2, t1)));
(Math.pow(t1, t2)) + " hello world " + (Math.pow(t1, t2));
(Math.pow(t1, Math.pow(t2, t1))) + " hello world " + (Math.pow(t1, Math.pow(t2, t1)));
(t1 + Math.pow(t2, t1)) + " hello world " + (t1 + Math.pow(t2, t1));
(Math.pow(t1, t2) + t1) + " hello world " + (Math.pow(t1, t2) + t1);
(t1 + Math.pow(t2, t2) + t1) + " hello world " + (t1 + Math.pow(t2, t2) + t1);
typeof (Math.pow(t1, Math.pow(t2, t1))) + " hello world " + typeof (Math.pow(t1, Math.pow(t2, t1)));

View File

@ -1,136 +1,143 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString1.ts, 3, 3))
`Exp: ${t1 ** t2} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
// TempateHead & TemplateTail are empty
`${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
`Exp: ${t1 ** t2 ** t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${t1 + t2 ** t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${t1 - t2 ** t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${t1 ** t2 + t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 + t2 ** t2 + t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${t1 ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${t1 + t2 ** t2 + t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${1 + typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${t1 - t2 ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2}${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
`Exp: ${-t1 ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${+t1 ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${-++t1 ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${+--t1 ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${-t1++ ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${-t1-- ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2} hello world ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
`Exp: ${+t1++ ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${+t1-- ** t2 - t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${typeof t1 ** t2 ** t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${typeof t1 ** t2 + t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
`Exp: ${typeof t1 ** (t2 - t1)} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`Exp: ${1 + typeof t1 ** t2 ** t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`Exp: ${2 + typeof t1 ** t2 ** ++t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`Exp: ${3 + typeof t1 ** t2 ** --t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`Exp: ${!t1 ** t2 ** t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`Exp: ${!t1 ** t2 ** ++t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`Exp: ${!t1 ** t2 ** --t1} abc`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 0, 3))
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1.ts, 1, 3))

View File

@ -1,4 +1,5 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1.ts ===
var t1 = 10;
>t1 : number
>10 : number
@ -10,54 +11,39 @@ var t2 = 10;
var s;
>s : any
`Exp: ${t1 ** t2} abc`;
>`Exp: ${t1 ** t2} abc` : string
// TempateHead & TemplateTail are empty
`${t1 ** t2}`;
>`${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
`Exp: ${t1 ** t2 ** t1} abc`;
>`Exp: ${t1 ** t2 ** t1} abc` : string
`${t1 ** t2 ** t1}`;
>`${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${t1 + t2 ** t1} abc`;
>`Exp: ${t1 + t2 ** t1} abc` : string
`${t1 + t2 ** t1}`;
>`${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${t1 - t2 ** t1} abc`;
>`Exp: ${t1 - t2 ** t1} abc` : string
>t1 - t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${t1 ** t2 + t1} abc`;
>`Exp: ${t1 ** t2 + t1} abc` : string
`${t1 ** t2 + t1}`;
>`${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${t1 ** t2 - t1} abc`;
>`Exp: ${t1 ** t2 - t1} abc` : string
>t1 ** t2 - t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${t1 + t2 ** t2 + t1} abc`;
>`Exp: ${t1 + t2 ** t2 + t1} abc` : string
`${t1 + t2 ** t2 + t1 }`;
>`${t1 + t2 ** t2 + t1 }` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
@ -66,183 +52,189 @@ var s;
>t2 : number
>t1 : number
`Exp: ${t1 - t2 ** t2 - t1} abc`;
>`Exp: ${t1 - t2 ** t2 - t1} abc` : string
>t1 - t2 ** t2 - t1 : number
>t1 - t2 ** t2 : number
`${typeof (t1 ** t2 ** t1) }`;
>`${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${1 + typeof (t1 ** t2 ** t1) }`;
>`${1 + typeof (t1 ** t2 ** t1) }` : string
>1 + typeof (t1 ** t2 ** t1) : string
>1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2}${t1 ** t2}`;
>`${t1 ** t2}${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>`${t1 ** t2 ** t1}${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>`${t1 + t2 ** t1}${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>`${t1 ** t2 + t1}${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`Exp: ${-t1 ** t2 - t1} abc`;
>`Exp: ${-t1 ** t2 - t1} abc` : string
>-t1 ** t2 - t1 : number
>-t1 ** t2 : number
>t1 ** t2 : number
`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}`;
>`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${+t1 ** t2 - t1} abc`;
>`Exp: ${+t1 ** t2 - t1} abc` : string
>+t1 ** t2 - t1 : number
>+t1 ** t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${-++t1 ** t2 - t1} abc`;
>`Exp: ${-++t1 ** t2 - t1} abc` : string
>-++t1 ** t2 - t1 : number
>-++t1 ** t2 : number
>++t1 ** t2 : number
>++t1 : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${+--t1 ** t2 - t1} abc`;
>`Exp: ${+--t1 ** t2 - t1} abc` : string
>+--t1 ** t2 - t1 : number
>+--t1 ** t2 : number
>--t1 ** t2 : number
>--t1 : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${-t1++ ** t2 - t1} abc`;
>`Exp: ${-t1++ ** t2 - t1} abc` : string
>-t1++ ** t2 - t1 : number
>-t1++ ** t2 : number
>t1++ ** t2 : number
>t1++ : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${-t1-- ** t2 - t1} abc`;
>`Exp: ${-t1-- ** t2 - t1} abc` : string
>-t1-- ** t2 - t1 : number
>-t1-- ** t2 : number
>t1-- ** t2 : number
>t1-- : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${+t1++ ** t2 - t1} abc`;
>`Exp: ${+t1++ ** t2 - t1} abc` : string
>+t1++ ** t2 - t1 : number
>+t1++ ** t2 : number
>t1++ ** t2 : number
>t1++ : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${+t1-- ** t2 - t1} abc`;
>`Exp: ${+t1-- ** t2 - t1} abc` : string
>+t1-- ** t2 - t1 : number
>+t1-- ** t2 : number
>t1-- ** t2 : number
>t1-- : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${typeof t1 ** t2 ** t1} abc`;
>`Exp: ${typeof t1 ** t2 ** t1} abc` : string
>typeof t1 ** t2 ** t1 : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${typeof t1 ** t2 + t1} abc`;
>`Exp: ${typeof t1 ** t2 + t1} abc` : string
>typeof t1 ** t2 + t1 : string
>typeof t1 ** t2 : string
`${t1 ** t2} hello world ${t1 ** t2}`;
>`${t1 ** t2} hello world ${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`Exp: ${typeof t1 ** (t2 - t1)} abc`;
>`Exp: ${typeof t1 ** (t2 - t1)} abc` : string
>typeof t1 ** (t2 - t1) : string
>t1 ** (t2 - t1) : number
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>(t2 - t1) : number
>t2 - t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`Exp: ${1 + typeof t1 ** t2 ** t1} abc`;
>`Exp: ${1 + typeof t1 ** t2 ** t1} abc` : string
>1 + typeof t1 ** t2 ** t1 : string
>1 : number
>typeof t1 ** t2 ** t1 : string
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${2 + typeof t1 ** t2 ** ++t1} abc`;
>`Exp: ${2 + typeof t1 ** t2 ** ++t1} abc` : string
>2 + typeof t1 ** t2 ** ++t1 : string
>2 : number
>typeof t1 ** t2 ** ++t1 : string
>t1 ** t2 ** ++t1 : number
>t1 : number
>t2 ** ++t1 : number
>t2 : number
>++t1 : number
>t1 : number
`Exp: ${3 + typeof t1 ** t2 ** --t1} abc`;
>`Exp: ${3 + typeof t1 ** t2 ** --t1} abc` : string
>3 + typeof t1 ** t2 ** --t1 : string
>3 : number
>typeof t1 ** t2 ** --t1 : string
>t1 ** t2 ** --t1 : number
>t1 : number
>t2 ** --t1 : number
>t2 : number
>--t1 : number
>t1 : number
`Exp: ${!t1 ** t2 ** t1} abc`;
>`Exp: ${!t1 ** t2 ** t1} abc` : string
>!t1 ** t2 ** t1 : boolean
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`Exp: ${!t1 ** t2 ** ++t1} abc`;
>`Exp: ${!t1 ** t2 ** ++t1} abc` : string
>!t1 ** t2 ** ++t1 : boolean
>t1 ** t2 ** ++t1 : number
>t1 : number
>t2 ** ++t1 : number
>t2 : number
>++t1 : number
>t1 : number
`Exp: ${!t1 ** t2 ** --t1} abc`;
>`Exp: ${!t1 ** t2 ** --t1} abc` : string
>!t1 ** t2 ** --t1 : boolean
>t1 ** t2 ** --t1 : number
>t1 : number
>t2 ** --t1 : number
>t2 : number
>--t1 : number
>t1 : number

View File

@ -0,0 +1,53 @@
//// [emitExponentiationOperatorInTemplateString1ES6.ts]
var t1 = 10;
var t2 = 10;
var s;
// TempateHead & TemplateTail are empty
`${t1 ** t2}`;
`${t1 ** t2 ** t1}`;
`${t1 + t2 ** t1}`;
`${t1 ** t2 + t1}`;
`${t1 + t2 ** t2 + t1 }`;
`${typeof (t1 ** t2 ** t1) }`;
`${1 + typeof (t1 ** t2 ** t1) }`;
`${t1 ** t2}${t1 ** t2}`;
`${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
`${t1 + t2 ** t1}${t1 + t2 ** t1}`;
`${t1 ** t2 + t1}${t1 ** t2 + t1}`;
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}`;
`${t1 ** t2} hello world ${t1 ** t2}`;
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
//// [emitExponentiationOperatorInTemplateString1ES6.js]
var t1 = 10;
var t2 = 10;
var s;
// TempateHead & TemplateTail are empty
`${Math.pow(t1, t2)}`;
`${Math.pow(t1, Math.pow(t2, t1))}`;
`${t1 + Math.pow(t2, t1)}`;
`${Math.pow(t1, t2) + t1}`;
`${t1 + Math.pow(t2, t2) + t1}`;
`${typeof (Math.pow(t1, Math.pow(t2, t1)))}`;
`${1 + typeof (Math.pow(t1, Math.pow(t2, t1)))}`;
`${Math.pow(t1, t2)}${Math.pow(t1, t2)}`;
`${Math.pow(t1, Math.pow(t2, t1))}${Math.pow(t1, Math.pow(t2, t1))}`;
`${t1 + Math.pow(t2, t1)}${t1 + Math.pow(t2, t1)}`;
`${Math.pow(t1, t2) + t1}${Math.pow(t1, t2) + t1}`;
`${t1 + Math.pow(t2, t2) + t1}${t1 + Math.pow(t2, t2) + t1}`;
`${typeof (Math.pow(t1, Math.pow(t2, t1)))}${typeof (Math.pow(t1, Math.pow(t2, t1)))}`;
`${Math.pow(t1, t2)} hello world ${Math.pow(t1, t2)}`;
`${Math.pow(t1, Math.pow(t2, t1))} hello world ${Math.pow(t1, Math.pow(t2, t1))}`;
`${t1 + Math.pow(t2, t1)} hello world ${t1 + Math.pow(t2, t1)}`;
`${Math.pow(t1, t2) + t1} hello world ${Math.pow(t1, t2) + t1}`;
`${t1 + Math.pow(t2, t2) + t1} hello world ${t1 + Math.pow(t2, t2) + t1}`;
`${typeof (Math.pow(t1, Math.pow(t2, t1)))} hello world ${typeof (Math.pow(t1, Math.pow(t2, t1)))}`;

View File

@ -0,0 +1,143 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1ES6.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 3, 3))
// TempateHead & TemplateTail are empty
`${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
`${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 + t2 ** t2 + t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${1 + typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 ** t2}${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
`${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 ** t2} hello world ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString1ES6.ts, 1, 3))

View File

@ -0,0 +1,240 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1ES6.ts ===
var t1 = 10;
>t1 : number
>10 : number
var t2 = 10;
>t2 : number
>10 : number
var s;
>s : any
// TempateHead & TemplateTail are empty
`${t1 ** t2}`;
>`${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1}`;
>`${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1}`;
>`${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1}`;
>`${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1 }`;
>`${t1 + t2 ** t2 + t1 }` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) }`;
>`${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${1 + typeof (t1 ** t2 ** t1) }`;
>`${1 + typeof (t1 ** t2 ** t1) }` : string
>1 + typeof (t1 ** t2 ** t1) : string
>1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2}${t1 ** t2}`;
>`${t1 ** t2}${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>`${t1 ** t2 ** t1}${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>`${t1 + t2 ** t1}${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>`${t1 ** t2 + t1}${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}`;
>`${typeof (t1 ** t2 ** t1)}${typeof (t1 ** t2 ** t1)}` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2} hello world ${t1 ** t2}`;
>`${t1 ** t2} hello world ${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number

View File

@ -0,0 +1,53 @@
//// [emitExponentiationOperatorInTemplateString2.ts]
var t1 = 10;
var t2 = 10;
var s;
// With templateHead
`hello ${t1 ** t2}`;
`hello ${t1 ** t2 ** t1}`;
`hello ${t1 + t2 ** t1}`;
`hello ${t1 ** t2 + t1}`;
`hello ${t1 + t2 ** t2 + t1 }`;
`hello ${typeof (t1 ** t2 ** t1) }`;
`hello ${1 + typeof (t1 ** t2 ** t1) }`;
`hello ${t1 ** t2}${t1 ** t2}`;
`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
`hello ${t1 ** t2} hello world ${t1 ** t2}`;
`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
//// [emitExponentiationOperatorInTemplateString2.js]
var t1 = 10;
var t2 = 10;
var s;
// With templateHead
"hello " + (Math.pow(t1, t2));
"hello " + (Math.pow(t1, Math.pow(t2, t1)));
"hello " + (t1 + Math.pow(t2, t1));
"hello " + (Math.pow(t1, t2) + t1);
"hello " + (t1 + Math.pow(t2, t2) + t1);
"hello " + typeof (Math.pow(t1, Math.pow(t2, t1)));
"hello " + (1 + typeof (Math.pow(t1, Math.pow(t2, t1))));
"hello " + (Math.pow(t1, t2)) + (Math.pow(t1, t2));
"hello " + (Math.pow(t1, Math.pow(t2, t1))) + (Math.pow(t1, Math.pow(t2, t1)));
"hello " + (t1 + Math.pow(t2, t1)) + (t1 + Math.pow(t2, t1));
"hello " + (Math.pow(t1, t2) + t1) + (Math.pow(t1, t2) + t1);
"hello " + (t1 + Math.pow(t2, t2) + t1) + (t1 + Math.pow(t2, t2) + t1);
"hello " + typeof (Math.pow(t1, Math.pow(t2, t1))) + typeof (Math.pow(t1, Math.pow(t2, t1)));
"hello " + (Math.pow(t1, t2)) + " hello world " + (Math.pow(t1, t2));
"hello " + (Math.pow(t1, Math.pow(t2, t1))) + " hello world " + (Math.pow(t1, Math.pow(t2, t1)));
"hello " + (t1 + Math.pow(t2, t1)) + " hello world " + (t1 + Math.pow(t2, t1));
"hello " + (Math.pow(t1, t2) + t1) + " hello world " + (Math.pow(t1, t2) + t1);
"hello " + (t1 + Math.pow(t2, t2) + t1) + " hello world " + (t1 + Math.pow(t2, t2) + t1);
"hello " + typeof (Math.pow(t1, Math.pow(t2, t1))) + " hello world " + typeof (Math.pow(t1, Math.pow(t2, t1)));

View File

@ -0,0 +1,143 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString2.ts, 3, 3))
// With templateHead
`hello ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
`hello ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 + t2 ** t2 + t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${1 + typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 ** t2}${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 ** t2} hello world ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))

View File

@ -0,0 +1,240 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2.ts ===
var t1 = 10;
>t1 : number
>10 : number
var t2 = 10;
>t2 : number
>10 : number
var s;
>s : any
// With templateHead
`hello ${t1 ** t2}`;
>`hello ${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
`hello ${t1 ** t2 ** t1}`;
>`hello ${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t1}`;
>`hello ${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2 + t1}`;
>`hello ${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t2 + t1 }`;
>`hello ${t1 + t2 ** t2 + t1 }` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1) }`;
>`hello ${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${1 + typeof (t1 ** t2 ** t1) }`;
>`hello ${1 + typeof (t1 ** t2 ** t1) }` : string
>1 + typeof (t1 ** t2 ** t1) : string
>1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2}${t1 ** t2}`;
>`hello ${t1 ** t2}${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
>`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2} hello world ${t1 ** t2}`;
>`hello ${t1 ** t2} hello world ${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number

View File

@ -0,0 +1,53 @@
//// [emitExponentiationOperatorInTemplateString2ES6.ts]
var t1 = 10;
var t2 = 10;
var s;
// With templateHead
`hello ${t1 ** t2}`;
`hello ${t1 ** t2 ** t1}`;
`hello ${t1 + t2 ** t1}`;
`hello ${t1 ** t2 + t1}`;
`hello ${t1 + t2 ** t2 + t1 }`;
`hello ${typeof (t1 ** t2 ** t1) }`;
`hello ${1 + typeof (t1 ** t2 ** t1) }`;
`hello ${t1 ** t2}${t1 ** t2}`;
`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
`hello ${t1 ** t2} hello world ${t1 ** t2}`;
`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
//// [emitExponentiationOperatorInTemplateString2ES6.js]
var t1 = 10;
var t2 = 10;
var s;
// With templateHead
`hello ${Math.pow(t1, t2)}`;
`hello ${Math.pow(t1, Math.pow(t2, t1))}`;
`hello ${t1 + Math.pow(t2, t1)}`;
`hello ${Math.pow(t1, t2) + t1}`;
`hello ${t1 + Math.pow(t2, t2) + t1}`;
`hello ${typeof (Math.pow(t1, Math.pow(t2, t1)))}`;
`hello ${1 + typeof (Math.pow(t1, Math.pow(t2, t1)))}`;
`hello ${Math.pow(t1, t2)}${Math.pow(t1, t2)}`;
`hello ${Math.pow(t1, Math.pow(t2, t1))}${Math.pow(t1, Math.pow(t2, t1))}`;
`hello ${t1 + Math.pow(t2, t1)}${t1 + Math.pow(t2, t1)}`;
`hello ${Math.pow(t1, t2) + t1}${Math.pow(t1, t2) + t1}`;
`hello ${t1 + Math.pow(t2, t2) + t1}${t1 + Math.pow(t2, t2) + t1}`;
`hello ${typeof (Math.pow(t1, Math.pow(t2, t1)))}${typeof (Math.pow(t1, Math.pow(t2, t1)))}`;
`hello ${Math.pow(t1, t2)} hello world ${Math.pow(t1, t2)}`;
`hello ${Math.pow(t1, Math.pow(t2, t1))} hello world ${Math.pow(t1, Math.pow(t2, t1))}`;
`hello ${t1 + Math.pow(t2, t1)} hello world ${t1 + Math.pow(t2, t1)}`;
`hello ${Math.pow(t1, t2) + t1} hello world ${Math.pow(t1, t2) + t1}`;
`hello ${t1 + Math.pow(t2, t2) + t1} hello world ${t1 + Math.pow(t2, t2) + t1}`;
`hello ${typeof (Math.pow(t1, Math.pow(t2, t1)))} hello world ${typeof (Math.pow(t1, Math.pow(t2, t1)))}`;

View File

@ -0,0 +1,143 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2ES6.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 3, 3))
// With templateHead
`hello ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
`hello ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 + t2 ** t2 + t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${1 + typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 ** t2}${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 ** t2} hello world ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2ES6.ts, 1, 3))

View File

@ -0,0 +1,240 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2ES6.ts ===
var t1 = 10;
>t1 : number
>10 : number
var t2 = 10;
>t2 : number
>10 : number
var s;
>s : any
// With templateHead
`hello ${t1 ** t2}`;
>`hello ${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
`hello ${t1 ** t2 ** t1}`;
>`hello ${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t1}`;
>`hello ${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2 + t1}`;
>`hello ${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t2 + t1 }`;
>`hello ${t1 + t2 ** t2 + t1 }` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1) }`;
>`hello ${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${1 + typeof (t1 ** t2 ** t1) }`;
>`hello ${1 + typeof (t1 ** t2 ** t1) }` : string
>1 + typeof (t1 ** t2 ** t1) : string
>1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2}${t1 ** t2}`;
>`hello ${t1 ** t2}${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
>`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2} hello world ${t1 ** t2}`;
>`hello ${t1 ** t2} hello world ${t1 ** t2}` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number

View File

@ -0,0 +1,54 @@
//// [emitExponentiationOperatorInTemplateString3.ts]
var t1 = 10;
var t2 = 10;
var s;
// With TemplateTail
`${t1 ** t2} world`;
`${t1 ** t2 ** t1} world`;
`${t1 + t2 ** t1} world`;
`${t1 ** t2 + t1} world`;
`${t1 + t2 ** t2 + t1 } world`;
`${typeof (t1 ** t2 ** t1) } world`;
`${1 + typeof (t1 ** t2 ** t1) } world`;
`${t1 ** t2}${t1 ** t2} world`;
`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world`;
`${t1 + t2 ** t1}${t1 + t2 ** t1} world`;
`${t1 ** t2 + t1}${t1 ** t2 + t1} world`;
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world`;
`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world`;
`${t1 ** t2} hello world ${t1 ** t2} !!`;
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!`;
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!`;
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!`;
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!`;
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!`;
//// [emitExponentiationOperatorInTemplateString3.js]
var t1 = 10;
var t2 = 10;
var s;
// With TemplateTail
(Math.pow(t1, t2)) + " world";
(Math.pow(t1, Math.pow(t2, t1))) + " world";
(t1 + Math.pow(t2, t1)) + " world";
(Math.pow(t1, t2) + t1) + " world";
(t1 + Math.pow(t2, t2) + t1) + " world";
typeof (Math.pow(t1, Math.pow(t2, t1))) + " world";
(1 + typeof (Math.pow(t1, Math.pow(t2, t1)))) + " world";
"" + (Math.pow(t1, t2)) + (Math.pow(t1, t2)) + " world";
"" + (Math.pow(t1, Math.pow(t2, t1))) + (Math.pow(t1, Math.pow(t2, t1))) + " world";
"" + (t1 + Math.pow(t2, t1)) + (t1 + Math.pow(t2, t1)) + " world";
"" + (Math.pow(t1, t2) + t1) + (Math.pow(t1, t2) + t1) + " world";
"" + (t1 + Math.pow(t2, t2) + t1) + (t1 + Math.pow(t2, t2) + t1) + " world";
"" + typeof (Math.pow(t1, Math.pow(t2, t1))) + typeof (Math.pow(t1, Math.pow(t2, t1))) + " world";
(Math.pow(t1, t2)) + " hello world " + (Math.pow(t1, t2)) + " !!";
(Math.pow(t1, Math.pow(t2, t1))) + " hello world " + (Math.pow(t1, Math.pow(t2, t1))) + " !!";
(t1 + Math.pow(t2, t1)) + " hello world " + (t1 + Math.pow(t2, t1)) + " !!";
(Math.pow(t1, t2) + t1) + " hello world " + (Math.pow(t1, t2) + t1) + " !!";
(t1 + Math.pow(t2, t2) + t1) + " hello world " + (t1 + Math.pow(t2, t2) + t1) + " !!";
typeof (Math.pow(t1, Math.pow(t2, t1))) + " hello world " + typeof (Math.pow(t1, Math.pow(t2, t1))) + " !!";

View File

@ -0,0 +1,143 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString3.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString3.ts, 3, 3))
// With TemplateTail
`${t1 ** t2} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
`${t1 ** t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 + t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 ** t2 + t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 + t2 ** t2 + t1 } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${1 + typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 ** t2}${t1 ** t2} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 + t2 ** t1}${t1 + t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 ** t2 + t1}${t1 ** t2 + t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 ** t2} hello world ${t1 ** t2} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3.ts, 1, 3))

View File

@ -0,0 +1,240 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString3.ts ===
var t1 = 10;
>t1 : number
>10 : number
var t2 = 10;
>t2 : number
>10 : number
var s;
>s : any
// With TemplateTail
`${t1 ** t2} world`;
>`${t1 ** t2} world` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1} world`;
>`${t1 ** t2 ** t1} world` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1} world`;
>`${t1 + t2 ** t1} world` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1} world`;
>`${t1 ** t2 + t1} world` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1 } world`;
>`${t1 + t2 ** t2 + t1 } world` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) } world`;
>`${typeof (t1 ** t2 ** t1) } world` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${1 + typeof (t1 ** t2 ** t1) } world`;
>`${1 + typeof (t1 ** t2 ** t1) } world` : string
>1 + typeof (t1 ** t2 ** t1) : string
>1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2}${t1 ** t2} world`;
>`${t1 ** t2}${t1 ** t2} world` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world`;
>`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1}${t1 + t2 ** t1} world`;
>`${t1 + t2 ** t1}${t1 + t2 ** t1} world` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1}${t1 ** t2 + t1} world`;
>`${t1 ** t2 + t1}${t1 ** t2 + t1} world` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world`;
>`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world`;
>`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2} hello world ${t1 ** t2} !!`;
>`${t1 ** t2} hello world ${t1 ** t2} !!` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!`;
>`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!`;
>`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!`;
>`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!`;
>`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!`;
>`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number

View File

@ -0,0 +1,54 @@
//// [emitExponentiationOperatorInTemplateString3ES6.ts]
var t1 = 10;
var t2 = 10;
var s;
// With TemplateTail
`${t1 ** t2} world`;
`${t1 ** t2 ** t1} world`;
`${t1 + t2 ** t1} world`;
`${t1 ** t2 + t1} world`;
`${t1 + t2 ** t2 + t1 } world`;
`${typeof (t1 ** t2 ** t1) } world`;
`${1 + typeof (t1 ** t2 ** t1) } world`;
`${t1 ** t2}${t1 ** t2} world`;
`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world`;
`${t1 + t2 ** t1}${t1 + t2 ** t1} world`;
`${t1 ** t2 + t1}${t1 ** t2 + t1} world`;
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world`;
`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world`;
`${t1 ** t2} hello world ${t1 ** t2} !!`;
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!`;
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!`;
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!`;
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!`;
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!`;
//// [emitExponentiationOperatorInTemplateString3ES6.js]
var t1 = 10;
var t2 = 10;
var s;
// With TemplateTail
`${Math.pow(t1, t2)} world`;
`${Math.pow(t1, Math.pow(t2, t1))} world`;
`${t1 + Math.pow(t2, t1)} world`;
`${Math.pow(t1, t2) + t1} world`;
`${t1 + Math.pow(t2, t2) + t1} world`;
`${typeof (Math.pow(t1, Math.pow(t2, t1)))} world`;
`${1 + typeof (Math.pow(t1, Math.pow(t2, t1)))} world`;
`${Math.pow(t1, t2)}${Math.pow(t1, t2)} world`;
`${Math.pow(t1, Math.pow(t2, t1))}${Math.pow(t1, Math.pow(t2, t1))} world`;
`${t1 + Math.pow(t2, t1)}${t1 + Math.pow(t2, t1)} world`;
`${Math.pow(t1, t2) + t1}${Math.pow(t1, t2) + t1} world`;
`${t1 + Math.pow(t2, t2) + t1}${t1 + Math.pow(t2, t2) + t1} world`;
`${typeof (Math.pow(t1, Math.pow(t2, t1)))}${typeof (Math.pow(t1, Math.pow(t2, t1)))} world`;
`${Math.pow(t1, t2)} hello world ${Math.pow(t1, t2)} !!`;
`${Math.pow(t1, Math.pow(t2, t1))} hello world ${Math.pow(t1, Math.pow(t2, t1))} !!`;
`${t1 + Math.pow(t2, t1)} hello world ${t1 + Math.pow(t2, t1)} !!`;
`${Math.pow(t1, t2) + t1} hello world ${Math.pow(t1, t2) + t1} !!`;
`${t1 + Math.pow(t2, t2) + t1} hello world ${t1 + Math.pow(t2, t2) + t1} !!`;
`${typeof (Math.pow(t1, Math.pow(t2, t1)))} hello world ${typeof (Math.pow(t1, Math.pow(t2, t1)))} !!`;

View File

@ -0,0 +1,143 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString3ES6.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 3, 3))
// With TemplateTail
`${t1 ** t2} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
`${t1 ** t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 + t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 ** t2 + t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 + t2 ** t2 + t1 } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${1 + typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 ** t2}${t1 ** t2} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 + t2 ** t1}${t1 + t2 ** t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 ** t2 + t1}${t1 ** t2 + t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 ** t2} hello world ${t1 ** t2} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 2, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString3ES6.ts, 1, 3))

View File

@ -0,0 +1,240 @@
=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString3ES6.ts ===
var t1 = 10;
>t1 : number
>10 : number
var t2 = 10;
>t2 : number
>10 : number
var s;
>s : any
// With TemplateTail
`${t1 ** t2} world`;
>`${t1 ** t2} world` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1} world`;
>`${t1 ** t2 ** t1} world` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1} world`;
>`${t1 + t2 ** t1} world` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1} world`;
>`${t1 ** t2 + t1} world` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1 } world`;
>`${t1 + t2 ** t2 + t1 } world` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) } world`;
>`${typeof (t1 ** t2 ** t1) } world` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${1 + typeof (t1 ** t2 ** t1) } world`;
>`${1 + typeof (t1 ** t2 ** t1) } world` : string
>1 + typeof (t1 ** t2 ** t1) : string
>1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2}${t1 ** t2} world`;
>`${t1 ** t2}${t1 ** t2} world` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world`;
>`${t1 ** t2 ** t1}${t1 ** t2 ** t1} world` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1}${t1 + t2 ** t1} world`;
>`${t1 + t2 ** t1}${t1 + t2 ** t1} world` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1}${t1 ** t2 + t1} world`;
>`${t1 ** t2 + t1}${t1 ** t2 + t1} world` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world`;
>`${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1} world` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world`;
>`${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) } world` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2} hello world ${t1 ** t2} !!`;
>`${t1 ** t2} hello world ${t1 ** t2} !!` : string
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!`;
>`${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1} !!` : string
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!`;
>`${t1 + t2 ** t1} hello world ${t1 + t2 ** t1} !!` : string
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>t1 + t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!`;
>`${t1 ** t2 + t1} hello world ${t1 ** t2 + t1} !!` : string
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
>t1 ** t2 + t1 : number
>t1 ** t2 : number
>t1 : number
>t2 : number
>t1 : number
`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!`;
>`${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1} !!` : string
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
>t1 + t2 ** t2 + t1 : number
>t1 + t2 ** t2 : number
>t1 : number
>t2 ** t2 : number
>t2 : number
>t2 : number
>t1 : number
`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!`;
>`${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1)} !!` : string
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number
>typeof (t1 ** t2 ** t1) : string
>(t1 ** t2 ** t1) : number
>t1 ** t2 ** t1 : number
>t1 : number
>t2 ** t1 : number
>t2 : number
>t1 : number