2015-01-04 19:40:09 +11:00

96 lines
2.4 KiB
JavaScript

// Options: --block-binding
assert.equal('', ``);
assert.equal('a', `a`);
assert.equal('"', `"`);
assert.equal("'", `'`);
assert.equal("`", `\``);
assert.equal('"', `\"`);
assert.equal('\\"', `\\"`);
assert.equal('"\\', `"\\`);
assert.equal('\n', `\n`);
assert.equal('\r', `\r`);
assert.equal('\r\n', `\r\n`);
assert.equal('\t', `\t`);
assert.equal('\u2028', `\u2028`);
assert.equal('\u2029', `\u2029`);
assert.equal('$', `$`);
assert.equal('$ a', `$ a`);
assert.equal('$ {a}', `$ {a}`);
assert.equal('undefined', `${ undefined }`);
assert.equal('null', `${ null }`);
{
let $ = 'DOLLAR';
let $$ = 'DD'
assert.equal('$$', `$$`);
assert.equal('DOLLAR', `${$}`);
assert.equal('$$$', `$$$`);
assert.equal('DOLLARDOLLAR', `${$}${$}`);
assert.equal('DOLLAR$$', `${$}$$`);
assert.equal('$$DOLLAR', `$$${$}`);
assert.equal('$$$', `\$$$`);
let a = 'A';
let b = 'B';
assert.equal('aAbB', `a${a}b${b}`);
assert.equal('aAb$b', `a${a}b$b`);
assert.equal('$a.$b', `$a.$b`);
let x = 3;
let y = 5;
assert.equal('3 + 5 = 8', `${x} + ${y} = ${ x + y}`);
// nested
assert.equal('3 + 5 = 8', `${x} + ${ `${y} = ${ `${x + y}` }` }`);
assert.equal('3', `${x}`);
assert.equal(' 3', ` ${x}`);
assert.equal('3 ', `${x} `);
assert.equal('35', `${x}${y}`);
assert.equal(' 35', ` ${x}${y}`);
assert.equal('3 5', `${x} ${y}`);
assert.equal('35 ', `${x}${y} `);
assert.equal(' 3 5 ', ` ${x} ${y} `);
// def s(x):
// return ' ' if x else ''
// for i in range(16):
// v = (s(i&8), s(i&4), s(i&2), s(i&1))
// print "assert.equal('%s3%s5%s8%s', `%s${x}%s${y}%s${x+y}%s`);" % (v+v)
assert.equal('358', `${x}${y}${x+y}`);
assert.equal('358 ', `${x}${y}${x+y} `);
assert.equal('35 8', `${x}${y} ${x+y}`);
assert.equal('35 8 ', `${x}${y} ${x+y} `);
assert.equal('3 58', `${x} ${y}${x+y}`);
assert.equal('3 58 ', `${x} ${y}${x+y} `);
assert.equal('3 5 8', `${x} ${y} ${x+y}`);
assert.equal('3 5 8 ', `${x} ${y} ${x+y} `);
assert.equal(' 358', ` ${x}${y}${x+y}`);
assert.equal(' 358 ', ` ${x}${y}${x+y} `);
assert.equal(' 35 8', ` ${x}${y} ${x+y}`);
assert.equal(' 35 8 ', ` ${x}${y} ${x+y} `);
assert.equal(' 3 58', ` ${x} ${y}${x+y}`);
assert.equal(' 3 58 ', ` ${x} ${y}${x+y} `);
assert.equal(' 3 5 8', ` ${x} ${y} ${x+y}`);
assert.equal(' 3 5 8 ', ` ${x} ${y} ${x+y} `);
}
// Line continuations
assert.equal('ab', `a\
b`);
assert.equal('ab', `a\
\
b`);
assert.equal('\n', `
`);
assert.equal('\n\n', `
`);