//// [tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2.ts] ////

=== emitExponentiationOperatorInTemplateString2.ts ===
var t1 = 10;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

var t2 = 10;
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))

var s;
>s : Symbol(s, Decl(emitExponentiationOperatorInTemplateString2.ts, 2, 3))

// With templateHead
`hello ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))

`hello ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 + t2 ** t2 + t1 }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${1 + typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 ** t2}${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))

`hello ${t1 ** t2 ** t1}${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 + t2 ** t1}${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 ** t2 + t1}${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 + t2 ** t2 + t1}${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${typeof (t1 ** t2 ** t1) }${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 ** t2} hello world ${t1 ** t2}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))

`hello ${t1 ** t2 ** t1} hello world ${t1 ** t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 + t2 ** t1} hello world ${t1 + t2 ** t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 ** t2 + t1} hello world ${t1 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${t1 + t2 ** t2 + t1} hello world ${t1 + t2 ** t2 + t1}`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

`hello ${typeof (t1 ** t2 ** t1) } hello world ${typeof (t1 ** t2 ** t1) }`;
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))
>t2 : Symbol(t2, Decl(emitExponentiationOperatorInTemplateString2.ts, 1, 3))
>t1 : Symbol(t1, Decl(emitExponentiationOperatorInTemplateString2.ts, 0, 3))

