=== tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1ES6.ts === var t1 = 10; >t1 : number >10 : 10 var t2 = 10; >t2 : number >10 : 10 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" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >(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 : 1 >typeof (t1 ** t2 ** t1) : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >(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" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >(t1 ** t2 ** t1) : number >t1 ** t2 ** t1 : number >t1 : number >t2 ** t1 : number >t2 : number >t1 : number >typeof (t1 ** t2 ** t1) : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >(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" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >(t1 ** t2 ** t1) : number >t1 ** t2 ** t1 : number >t1 : number >t2 ** t1 : number >t2 : number >t1 : number >typeof (t1 ** t2 ** t1) : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >(t1 ** t2 ** t1) : number >t1 ** t2 ** t1 : number >t1 : number >t2 ** t1 : number >t2 : number >t1 : number