mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-04 05:33:50 +01:00 
			
		
		
		
	sourceRevisionAtLastExport: 33f2fb0e53d135f0ee17cfccd9d993eb2a6f47de targetRevisionAtLastExport: 31340cbd9add103f586d501b0c3354b7b182abc0
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright 2017 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.
 | 
						|
 | 
						|
x = "a";
 | 
						|
 | 
						|
function test_varargs(...args) {
 | 
						|
  var sum = this.x;
 | 
						|
  for (i in args) {
 | 
						|
    sum += "," + args[i];
 | 
						|
  }
 | 
						|
  return sum;
 | 
						|
}
 | 
						|
 | 
						|
assertEquals("a", test_varargs());
 | 
						|
assertEquals("a,b", test_varargs("b"));
 | 
						|
assertEquals("a,b,c", test_varargs("b", "c"));
 | 
						|
assertEquals("a,b,c,d", test_varargs("b", "c", "d"));
 | 
						|
assertEquals("a,b,c,d,e", test_varargs("b", "c", "d", "e"));
 | 
						|
 | 
						|
function forward_varargs(...args) {
 | 
						|
  return test_varargs(...args);
 | 
						|
}
 | 
						|
 | 
						|
assertEquals("a", forward_varargs());
 | 
						|
assertEquals("a,b", forward_varargs("b"));
 | 
						|
assertEquals("a,b,c", forward_varargs("b", "c"));
 | 
						|
assertEquals("a,b,c,d", forward_varargs("b", "c", "d"));
 | 
						|
assertEquals("a,b,c,d,e", forward_varargs("b", "c", "d", "e"));
 | 
						|
 | 
						|
function forward_varargs_one_arg(x, ...args) {
 | 
						|
  return test_varargs(x, ...args);
 | 
						|
}
 | 
						|
 | 
						|
assertEquals("a,undefined", forward_varargs_one_arg());
 | 
						|
assertEquals("a,b", forward_varargs_one_arg("b"));
 | 
						|
assertEquals("a,b,c", forward_varargs_one_arg("b", "c"));
 | 
						|
assertEquals("a,b,c,d", forward_varargs_one_arg("b", "c", "d"));
 | 
						|
assertEquals("a,b,c,d,e", forward_varargs_one_arg("b", "c", "d", "e"));
 | 
						|
 | 
						|
function forward_varargs_two_args(x, y, ...args) {
 | 
						|
  return test_varargs(x, y, ...args);
 | 
						|
}
 | 
						|
 | 
						|
assertEquals("a,undefined,undefined", forward_varargs_two_args());
 | 
						|
assertEquals("a,b,undefined", forward_varargs_two_args("b"));
 | 
						|
assertEquals("a,b,c", forward_varargs_two_args("b", "c"));
 | 
						|
assertEquals("a,b,c,d", forward_varargs_two_args("b", "c", "d"));
 | 
						|
assertEquals("a,b,c,d,e", forward_varargs_two_args("b", "c", "d", "e"));
 |