| Index: test/mjsunit/harmony/templates.js | 
| diff --git a/test/mjsunit/harmony/templates.js b/test/mjsunit/harmony/templates.js | 
| index a884f58fb657b31d2cce4e51dd39e7ed831dd73c..6b89973c5f773d3a24317349b862c931f031e49a 100644 | 
| --- a/test/mjsunit/harmony/templates.js | 
| +++ b/test/mjsunit/harmony/templates.js | 
| @@ -423,10 +423,12 @@ var obj = { | 
| Object.defineProperty(Array.prototype, 0, { | 
| set: function() { | 
| assertUnreachable(); | 
| -    } | 
| +    }, | 
| +    configurable: true | 
| }); | 
| function tag(){} | 
| tag`a${1}b`; | 
| +  delete Array.prototype[0]; | 
| })(); | 
|  | 
|  | 
| @@ -518,3 +520,41 @@ var obj = { | 
| assertThrows("`${(function() { \"use strict\"; return \"\\07\"; })()}`", | 
| SyntaxError); | 
| })(); | 
| + | 
| + | 
| +var global = this; | 
| +(function testCallNew() { | 
| +  "use strict"; | 
| +  var called = false; | 
| +  var calledWith; | 
| +  global.log = function(x) { called = true; calledWith = x; } | 
| + | 
| +  assertInstanceof(new(Function`log("test")`), Object); | 
| +  assertTrue(called); | 
| +  assertSame("test", calledWith); | 
| +  delete global.log; | 
| +})(); | 
| + | 
| + | 
| +(function testCallResultOfTagFn() { | 
| +  "use strict"; | 
| +  var i = 0; | 
| +  var raw = []; | 
| +  function tag(cs) { | 
| +    var args = Array.prototype.slice.call(arguments); | 
| +    var text = String.raw.apply(null, args); | 
| +    if (i++ < 2) { | 
| +      raw.push("tag;" + text); | 
| +      return tag; | 
| +    } | 
| + | 
| +    raw.push("raw;" + text); | 
| +    return text; | 
| +  } | 
| +  assertEquals("test3", tag`test1``test2``test3`); | 
| +  assertEquals([ | 
| +    "tag;test1", | 
| +    "tag;test2", | 
| +    "raw;test3" | 
| +  ], raw); | 
| +})(); | 
|  |