Espruino/tests/test_setter.js
2018-05-25 11:44:24 +01:00

56 lines
1.1 KiB
JavaScript

// Examples from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set
var results = [];
var language = {
set current(name) {
this.log.push(name);
},
log: []
}
language.current = 'EN';
language.current = 'FA';
results.push(JSON.stringify(language.log));
// expected output: Array ["EN", "FA"]
var language = {
set current(name) {
this.log.push(name);
},
log: []
}
language.current = 'EN';
results.push(JSON.stringify(language.log)); // ['EN']
language.current = 'FA';
results.push(JSON.stringify(language.log)); // ['EN', 'FA']
delete language.current;
language.current = 'EN';
results.push(JSON.stringify(language.log)); // ['EN', 'FA']
var o = {a: 0};
Object.defineProperty(o, 'b', { set: function(x) { this.a = x / 2; } });
o.b = 10; // Runs the setter, which assigns 10 / 2 (5) to the 'a' property
results.push(o.a) // 5
class Example {
set hello(x) {
console.log("Setting"+x);
this.inner = x;
}
}
const obj = new Example();
trace(obj);
obj.hello = "world"
results.push(obj.inner); // "world"
print(results+"");
result = results=='["EN","FA"],["EN"],["EN","FA"],["EN","FA"],5,world';