function shouldBe(actual, expected) { | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
function tag() { | |
"use strict"; | |
return this; | |
} | |
var object = { | |
tag() { | |
'use strict'; | |
return this; | |
} | |
}; | |
shouldBe(tag`Hello`, undefined); | |
shouldBe((function () { return tag }())`Hello`, undefined); | |
shouldBe(object.tag`Hello`, object); | |
shouldBe(object['tag']`Hello`, object); | |
shouldBe(object[(function () { return 'tag'; }())]`Hello`, object); | |
with (object) { | |
shouldBe(tag`Hello`, object); | |
} |