Merge V8 5.2.361.47  DO NOT MERGE

https://chromium.googlesource.com/v8/v8/+/5.2.361.47

FPIIM-449

Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/test/message/const-decl-no-init-sloppy.js b/test/message/const-decl-no-init-sloppy.js
deleted file mode 100644
index a122eae..0000000
--- a/test/message/const-decl-no-init-sloppy.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --harmony-sloppy
-
-function f() {
-  const a;
-}
diff --git a/test/message/let-lexical-name-in-array-prohibited.js b/test/message/let-lexical-name-in-array-prohibited.js
index a6cba6f..e5e37e1 100644
--- a/test/message/let-lexical-name-in-array-prohibited.js
+++ b/test/message/let-lexical-name-in-array-prohibited.js
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy --harmony-sloppy-let
+//
 
 let [let];
diff --git a/test/message/let-lexical-name-in-object-prohibited.js b/test/message/let-lexical-name-in-object-prohibited.js
index 0a12762..4e26c62 100644
--- a/test/message/let-lexical-name-in-object-prohibited.js
+++ b/test/message/let-lexical-name-in-object-prohibited.js
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy --harmony-sloppy-let
+//
 
 let {let};
diff --git a/test/message/let-lexical-name-prohibited.js b/test/message/let-lexical-name-prohibited.js
index ed72fae..b001be8 100644
--- a/test/message/let-lexical-name-prohibited.js
+++ b/test/message/let-lexical-name-prohibited.js
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy --harmony-sloppy-let
+//
 
 let let;
diff --git a/test/message/message.gyp b/test/message/message.gyp
index dac6d9f..fc1ae32 100644
--- a/test/message/message.gyp
+++ b/test/message/message.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'message.isolate',
diff --git a/test/message/no-legacy-const-2.js b/test/message/no-legacy-const-2.js
deleted file mode 100644
index 5dc63b3..0000000
--- a/test/message/no-legacy-const-2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --no-harmony-sloppy --no-harmony-sloppy-let
-// Flags: --no-harmony-sloppy-function
-
-const = 42;
diff --git a/test/message/no-legacy-const-2.out b/test/message/no-legacy-const-2.out
deleted file mode 100644
index 5385250..0000000
--- a/test/message/no-legacy-const-2.out
+++ /dev/null
@@ -1,5 +0,0 @@
-*%(basename)s:8: SyntaxError: Unexpected token const
-const = 42;
-^^^^^
-
-SyntaxError: Unexpected token const
diff --git a/test/message/no-legacy-const-3.js b/test/message/no-legacy-const-3.js
deleted file mode 100644
index 43dd9c9..0000000
--- a/test/message/no-legacy-const-3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --no-harmony-sloppy --no-harmony-sloppy-let
-// Flags: --no-harmony-sloppy-function
-
-const
diff --git a/test/message/no-legacy-const-3.out b/test/message/no-legacy-const-3.out
deleted file mode 100644
index 7539bbc..0000000
--- a/test/message/no-legacy-const-3.out
+++ /dev/null
@@ -1,5 +0,0 @@
-*%(basename)s:8: SyntaxError: Unexpected token const
-const
-^^^^^
-
-SyntaxError: Unexpected token const
diff --git a/test/message/no-legacy-const.js b/test/message/no-legacy-const.js
deleted file mode 100644
index 9eebee5..0000000
--- a/test/message/no-legacy-const.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --no-harmony-sloppy --no-harmony-sloppy-let
-// Flags: --no-harmony-sloppy-function
-
-const x = 42;
diff --git a/test/message/no-legacy-const.out b/test/message/no-legacy-const.out
deleted file mode 100644
index 33bb038..0000000
--- a/test/message/no-legacy-const.out
+++ /dev/null
@@ -1,5 +0,0 @@
-*%(basename)s:8: SyntaxError: Unexpected token const
-const x = 42;
-^^^^^
-
-SyntaxError: Unexpected token const
diff --git a/test/message/syntactic-tail-call-in-binop-lhs.js b/test/message/syntactic-tail-call-in-binop-lhs.js
new file mode 100644
index 0000000..58d4c95
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-lhs.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return   continue f()   - a ;
+}
diff --git a/test/message/syntactic-tail-call-in-binop-lhs.out b/test/message/syntactic-tail-call-in-binop-lhs.out
new file mode 100644
index 0000000..14670cd
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-lhs.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return   continue f()   - a ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-binop-rhs.js b/test/message/syntactic-tail-call-in-binop-rhs.js
new file mode 100644
index 0000000..a586cc8
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-rhs.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return b + continue f()  ;
+}
diff --git a/test/message/syntactic-tail-call-in-binop-rhs.out b/test/message/syntactic-tail-call-in-binop-rhs.out
new file mode 100644
index 0000000..207c526
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-rhs.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return b + continue f()  ;
+             ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-comma.js b/test/message/syntactic-tail-call-in-comma.js
new file mode 100644
index 0000000..402a4a8
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-comma.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return 1, 2, 3,   continue f() , 4  ;
+}
diff --git a/test/message/syntactic-tail-call-in-comma.out b/test/message/syntactic-tail-call-in-comma.out
new file mode 100644
index 0000000..c4ecc28
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-comma.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return 1, 2, 3,   continue f() , 4  ;
+                    ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-extends.js b/test/message/syntactic-tail-call-in-extends.js
new file mode 100644
index 0000000..86bf77e
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-extends.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function g() {
+  return class A extends continue f() {};
+}
diff --git a/test/message/syntactic-tail-call-in-extends.out b/test/message/syntactic-tail-call-in-extends.out
new file mode 100644
index 0000000..f54155d
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-extends.out
@@ -0,0 +1,4 @@
+*%(basename)s:9: SyntaxError: Tail call expression is not allowed here
+  return class A extends continue f() {};
+                         ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-for-in.js b/test/message/syntactic-tail-call-in-for-in.js
new file mode 100644
index 0000000..8ad7aca
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-in.js
@@ -0,0 +1,16 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  for (var v in {a:0}) {
+    return continue f()  ;
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-for-in.out b/test/message/syntactic-tail-call-in-for-in.out
new file mode 100644
index 0000000..1bf52c4
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-in.out
@@ -0,0 +1,4 @@
+*%(basename)s:14: SyntaxError: Tail call expression in for-in/of body
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in for-in/of body
diff --git a/test/message/syntactic-tail-call-in-for-of.js b/test/message/syntactic-tail-call-in-for-of.js
new file mode 100644
index 0000000..7cd761f
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-of.js
@@ -0,0 +1,16 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  for (var v of [1, 2, 3]) {
+    return continue f()  ;
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-for-of.out b/test/message/syntactic-tail-call-in-for-of.out
new file mode 100644
index 0000000..1bf52c4
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-of.out
@@ -0,0 +1,4 @@
+*%(basename)s:14: SyntaxError: Tail call expression in for-in/of body
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in for-in/of body
diff --git a/test/message/syntactic-tail-call-in-logical-and.js b/test/message/syntactic-tail-call-in-logical-and.js
new file mode 100644
index 0000000..2c62ddc
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-and.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return   continue f()   && a ;
+}
diff --git a/test/message/syntactic-tail-call-in-logical-and.out b/test/message/syntactic-tail-call-in-logical-and.out
new file mode 100644
index 0000000..c400f74
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-and.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return   continue f()   && a ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-logical-or.js b/test/message/syntactic-tail-call-in-logical-or.js
new file mode 100644
index 0000000..6829bc6
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-or.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return   continue f()   || a ;
+}
diff --git a/test/message/syntactic-tail-call-in-logical-or.out b/test/message/syntactic-tail-call-in-logical-or.out
new file mode 100644
index 0000000..4ced761
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-or.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return   continue f()   || a ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-subclass.js b/test/message/syntactic-tail-call-in-subclass.js
new file mode 100644
index 0000000..ab78840
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-subclass.js
@@ -0,0 +1,15 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function g() {
+  class A {};
+  class B extends A {
+    constructor() {
+      return continue f() ;
+    }
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-subclass.out b/test/message/syntactic-tail-call-in-subclass.out
new file mode 100644
index 0000000..fff26cc
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-subclass.out
@@ -0,0 +1,4 @@
+*%(basename)s:12: SyntaxError: Tail call expression is not allowed here
+      return continue f() ;
+             ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-try-catch-finally.js b/test/message/syntactic-tail-call-in-try-catch-finally.js
new file mode 100644
index 0000000..3aa35a1
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-catch-finally.js
@@ -0,0 +1,20 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  try {
+    f();
+  } catch(e) {
+    return continue f()  ;
+  } finally {
+    f();
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-try-catch-finally.out b/test/message/syntactic-tail-call-in-try-catch-finally.out
new file mode 100644
index 0000000..b488c15
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-catch-finally.out
@@ -0,0 +1,4 @@
+*%(basename)s:16: SyntaxError: Tail call expression in catch block when finally block is also present
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in catch block when finally block is also present
diff --git a/test/message/syntactic-tail-call-in-try-try-catch-finally.js b/test/message/syntactic-tail-call-in-try-try-catch-finally.js
new file mode 100644
index 0000000..5b000f1
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-try-catch-finally.js
@@ -0,0 +1,22 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  try {
+    try {
+      f();
+    } catch(e) {
+      return continue f()  ;
+    }
+  } finally {
+    f();
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-try-try-catch-finally.out b/test/message/syntactic-tail-call-in-try-try-catch-finally.out
new file mode 100644
index 0000000..bfc2692
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-try-catch-finally.out
@@ -0,0 +1,4 @@
+*%(basename)s:17: SyntaxError: Tail call expression in try block
+      return continue f()  ;
+             ^^^^^^^^^^^^
+SyntaxError: Tail call expression in try block
diff --git a/test/message/syntactic-tail-call-in-try.js b/test/message/syntactic-tail-call-in-try.js
new file mode 100644
index 0000000..71662db
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try.js
@@ -0,0 +1,17 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  try {
+    return continue f()  ;
+  } catch(e) {
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-try.out b/test/message/syntactic-tail-call-in-try.out
new file mode 100644
index 0000000..ed0b15c
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try.out
@@ -0,0 +1,4 @@
+*%(basename)s:14: SyntaxError: Tail call expression in try block
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in try block
diff --git a/test/message/syntactic-tail-call-inside-member-expr.js b/test/message/syntactic-tail-call-inside-member-expr.js
new file mode 100644
index 0000000..9b85dd4
--- /dev/null
+++ b/test/message/syntactic-tail-call-inside-member-expr.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return (continue  f(1)) (2) ;
+}
diff --git a/test/message/syntactic-tail-call-inside-member-expr.out b/test/message/syntactic-tail-call-inside-member-expr.out
new file mode 100644
index 0000000..10fd54d
--- /dev/null
+++ b/test/message/syntactic-tail-call-inside-member-expr.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return (continue  f(1)) (2) ;
+          ^^^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-of-eval.js b/test/message/syntactic-tail-call-of-eval.js
new file mode 100644
index 0000000..e69aa9c
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-eval.js
@@ -0,0 +1,9 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+
+function g() {
+  return  continue  eval  ("f()")  ;
+}
diff --git a/test/message/syntactic-tail-call-of-eval.out b/test/message/syntactic-tail-call-of-eval.out
new file mode 100644
index 0000000..06eeb78
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-eval.out
@@ -0,0 +1,4 @@
+*%(basename)s:8: SyntaxError: Tail call of a direct eval is not allowed
+  return  continue  eval  ("f()")  ;
+                    ^^^^^^^^^^^^^
+SyntaxError: Tail call of a direct eval is not allowed
diff --git a/test/message/syntactic-tail-call-of-identifier.js b/test/message/syntactic-tail-call-of-identifier.js
new file mode 100644
index 0000000..b3ca31d
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-identifier.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function g(x) {
+  return continue   x  ;
+}
diff --git a/test/message/syntactic-tail-call-of-identifier.out b/test/message/syntactic-tail-call-of-identifier.out
new file mode 100644
index 0000000..393bbc6
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-identifier.out
@@ -0,0 +1,4 @@
+*%(basename)s:9: SyntaxError: Unexpected expression inside tail call
+  return continue   x  ;
+                    ^
+SyntaxError: Unexpected expression inside tail call
diff --git a/test/message/syntactic-tail-call-of-new.js b/test/message/syntactic-tail-call-of-new.js
new file mode 100644
index 0000000..60adec7
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-new.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return continue new f()  ;
+}
diff --git a/test/message/syntactic-tail-call-of-new.out b/test/message/syntactic-tail-call-of-new.out
new file mode 100644
index 0000000..954e1ca
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-new.out
@@ -0,0 +1,4 @@
+*%(basename)s:12: SyntaxError: Unexpected expression inside tail call
+  return continue new f()  ;
+                  ^^^^^^^
+SyntaxError: Unexpected expression inside tail call
diff --git a/test/message/syntactic-tail-call-sloppy.js b/test/message/syntactic-tail-call-sloppy.js
new file mode 100644
index 0000000..3973fc6
--- /dev/null
+++ b/test/message/syntactic-tail-call-sloppy.js
@@ -0,0 +1,9 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+
+function g() {
+  return  continue  f()  ;
+}
diff --git a/test/message/syntactic-tail-call-sloppy.out b/test/message/syntactic-tail-call-sloppy.out
new file mode 100644
index 0000000..74d9d53
--- /dev/null
+++ b/test/message/syntactic-tail-call-sloppy.out
@@ -0,0 +1,4 @@
+*%(basename)s:8: SyntaxError: Tail call expressions are not allowed in non-strict mode
+  return  continue  f()  ;
+          ^^^^^^^^^^^^^
+SyntaxError: Tail call expressions are not allowed in non-strict mode
diff --git a/test/message/syntactic-tail-call-without-return.js b/test/message/syntactic-tail-call-without-return.js
new file mode 100644
index 0000000..130f67d
--- /dev/null
+++ b/test/message/syntactic-tail-call-without-return.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  var x =  continue  f()  ;
+}
diff --git a/test/message/syntactic-tail-call-without-return.out b/test/message/syntactic-tail-call-without-return.out
new file mode 100644
index 0000000..0508fc3
--- /dev/null
+++ b/test/message/syntactic-tail-call-without-return.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  var x =  continue  f()  ;
+           ^^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here