add traceur test suite
This commit is contained in:
71
test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js
vendored
Normal file
71
test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
var object = {
|
||||
x: {
|
||||
j() {
|
||||
return this.j;
|
||||
}
|
||||
},
|
||||
f() {
|
||||
return this.f;
|
||||
},
|
||||
'g'() {},
|
||||
"h"() {},
|
||||
42() {},
|
||||
null() {},
|
||||
true() {},
|
||||
false() {},
|
||||
function() {},
|
||||
var() {},
|
||||
'class'() {} // NodeJS incorrectly flags {class: ...} as an error.
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
assertArrayEquals([
|
||||
'42',
|
||||
'x',
|
||||
'f',
|
||||
'g',
|
||||
'h',
|
||||
'null',
|
||||
'true',
|
||||
'false',
|
||||
'function',
|
||||
'var',
|
||||
'class'
|
||||
], Object.keys(object));
|
||||
|
||||
function assertMethod(object, name) {
|
||||
assert.isTrue(object.hasOwnProperty(name));
|
||||
var descriptor = Object.getOwnPropertyDescriptor(object, name);
|
||||
assert.equal('object', typeof descriptor);
|
||||
assert.isTrue(descriptor.enumerable);
|
||||
assert.equal('function', typeof object[name]);
|
||||
// IE does not have a name property on functions.
|
||||
assert.isTrue(object[name].name === '' || object[name].name === undefined);
|
||||
}
|
||||
|
||||
assertMethod(object, 'f');
|
||||
assertMethod(object, 'g');
|
||||
assertMethod(object, 'h');
|
||||
assertMethod(object, '42');
|
||||
assertMethod(object, 'null');
|
||||
assertMethod(object, 'true');
|
||||
assertMethod(object, 'false');
|
||||
assertMethod(object, 'function');
|
||||
assertMethod(object, 'var');
|
||||
assertMethod(object, 'class');
|
||||
|
||||
assert.equal(object.f, object.f());
|
||||
|
||||
// Test the nested object.
|
||||
assertArrayEquals(['j'], Object.keys(object.x));
|
||||
assertMethod(object.x, 'j');
|
||||
|
||||
// Test name binding.
|
||||
var m = 42;
|
||||
class C {
|
||||
m() {
|
||||
return m;
|
||||
}
|
||||
}
|
||||
assert.equal(42, new C().m())
|
||||
Reference in New Issue
Block a user