diff options
Diffstat (limited to 'js/src/tests/js1_8_5/reflect-parse/templateStrings.js')
-rw-r--r-- | js/src/tests/js1_8_5/reflect-parse/templateStrings.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/js/src/tests/js1_8_5/reflect-parse/templateStrings.js b/js/src/tests/js1_8_5/reflect-parse/templateStrings.js new file mode 100644 index 000000000..c87ba96b8 --- /dev/null +++ b/js/src/tests/js1_8_5/reflect-parse/templateStrings.js @@ -0,0 +1,40 @@ +// |reftest| skip-if(!xulRuntime.shell) +function test() { + +// template strings +assertStringExpr("`hey there`", literal("hey there")); +assertStringExpr("`hey\nthere`", literal("hey\nthere")); +assertExpr("`hey${\"there\"}`", templateLit([lit("hey"), lit("there"), lit("")])); +assertExpr("`hey${\"there\"}mine`", templateLit([lit("hey"), lit("there"), lit("mine")])); +assertExpr("`hey${a == 5}mine`", templateLit([lit("hey"), binExpr("==", ident("a"), lit(5)), lit("mine")])); +assertExpr("`hey${`there${\"how\"}`}mine`", templateLit([lit("hey"), + templateLit([lit("there"), lit("how"), lit("")]), lit("mine")])); +assertExpr("func`hey`", taggedTemplate(ident("func"), template(["hey"], ["hey"]))); +assertExpr("func`hey${\"4\"}there`", taggedTemplate(ident("func"), + template(["hey", "there"], ["hey", "there"], lit("4")))); +assertExpr("func`hey${\"4\"}there${5}`", taggedTemplate(ident("func"), + template(["hey", "there", ""], ["hey", "there", ""], + lit("4"), lit(5)))); +assertExpr("func`hey\r\n`", taggedTemplate(ident("func"), template(["hey\n"], ["hey\n"]))); +assertExpr("func`hey${4}``${5}there``mine`", + taggedTemplate(taggedTemplate(taggedTemplate( + ident("func"), template(["hey", ""], ["hey", ""], lit(4))), + template(["", "there"], ["", "there"], lit(5))), + template(["mine"], ["mine"]))); + +// multi-line template string - line numbers +var node = Reflect.parse("`\n\n ${2}\n\n\n`"); +Pattern({loc:{start:{line:1, column:0}, end:{line:6, column:1}, source:null}, type:"Program", +body:[{loc:{start:{line:1, column:0}, end:{line:6, column:1}, source:null}, +type:"ExpressionStatement", expression:{loc:{start:{line:1, column:0}, end:{line:6, column:1}, +source:null}, type:"TemplateLiteral", elements:[{loc:{start:{line:1, column:0}, end:{line:3, +column:5}, source:null}, type:"Literal", value:"\n\n "}, {loc:{start:{line:3, column:5}, +end:{line:3, column:6}, source:null}, type:"Literal", value:2}, {loc:{start:{line:3, column:6}, +end:{line:6, column:1}, source:null}, type:"Literal", value:"\n\n\n"}]}}]}).match(node); + + +assertStringExpr("\"hey there\"", literal("hey there")); + +} + +runtest(test); |