blob: c1932e0c33588deff7a5b92eea88746fad1feb79 [file] [log] [blame]
// Copyright (C) 2014 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 12.3.7
description: Argument list evalution for member expresions
info: |
A tagged template is a function call where the arguments of the call are
derived from a TemplateLiteral. The actual arguments include a template
object and the values produced by evaluating the expressions embedded
within the TemplateLiteral.
---*/
var number = 5;
var string = 'str';
var object = {};
function fn() { return 'result'; }
var calls;
calls = 0;
(function() {
calls++;
assert.sameValue(
arguments.length, 1, 'NoSubstitutionTemplate arguments length'
);
})`NoSubstitutionTemplate`;
assert.sameValue(calls, 1, 'NoSubstitutionTemplate function invocation');
calls = 0;
(function(site, n, s, o, f, r) {
calls++;
assert.sameValue(n, number);
assert.sameValue(s, string);
assert.sameValue(o, object);
assert.sameValue(f, fn);
assert.sameValue(r, 'result');
assert.sameValue(arguments.length, 6, 'TemplateHead arguments length');
})`TemplateHead${number}TemplateSpans${string}${object}${fn}${fn()}`;
assert.sameValue(calls, 1, 'TemplateHead function invocation');