wasm-bindgen/crates/webidl-tests/simple.js
2018-09-17 17:36:53 -07:00

170 lines
2.8 KiB
JavaScript

global.Method = class Method {
constructor(value) {
this.value = value;
}
myCmp(other) {
return this.value === other.value;
}
};
global.Property = class Property {
constructor(value) {
this._value = value;
}
get value() {
return this._value;
}
set value(value) {
this._value = value;
}
};
global.NamedConstructor = class NamedConstructor {
constructor() {
this._value = 0;
}
get value(){
return this._value;
}
};
global.NamedConstructorBar = class NamedConstructorBar extends NamedConstructor {
constructor(_value) {
super();
this._value = _value;
}
};
global.StaticMethod = class StaticMethod {
static swap(value) {
const res = StaticMethod.value;
StaticMethod.value = value;
return res;
}
};
StaticMethod.value = 0;
global.StaticProperty = class StaticProperty {
static get value(){
return StaticProperty._value;
}
static set value(value) {
StaticProperty._value = value;
}
};
StaticProperty._value = 0;
global.UndefinedMethod = class UndefinedMethod {
constructor() {}
ok_method() {
return true;
}
};
global.NullableMethod = class NullableMethod {
constructor() {}
opt(a) {
if (a == undefined) {
return undefined;
} else {
return a + 1;
}
}
};
global.Unforgeable = class Unforgeable {
constructor() {
this.uno = 1;
}
get dos() {
return 2;
}
};
global.GlobalMethod = class {
m() { return 123; }
};
global.get_global_method = () => new GlobalMethod();
global.Indexing = function () {
return new Proxy({}, {
get(obj, prop) {
return obj.hasOwnProperty(prop) ? obj[prop] : -1;
},
set(obj, prop, value) {
obj[prop] = value;
},
deleteProperty(obj, prop) {
delete obj[prop];
},
});
};
global.OptionalAndUnionArguments = class OptionalAndUnionArguments {
constructor() {}
m(a, b = true, c = 123, d = 456) {
return [typeof a, a, typeof b, b, typeof c, c, typeof d, d].join(', ');
}
};
global.Variadic = class Variadic {
constructor() {}
sum(...values) {
return values.reduce((a, b) => a + b, 0);
}
};
global.PartialInterface = class PartialInterface {
get un() {
return 1;
}
deux() {
return 2;
}
get trois() {
return 3;
}
quatre() {
return 4;
}
};
global.MixinFoo = class MixinFoo {
constructor(bar) {
this._bar = bar | MixinFoo.defaultBar;
}
static get defaultBar() {
return MixinFoo._defaultBar;
}
static set defaultBar(defaultBar) {
MixinFoo._defaultBar = defaultBar;
}
get bar() {
return this._bar;
}
addToBar(other) {
this._bar += other;
}
};
global.Overloads = class {
foo() {}
};
global.InvokeCallback = class {
invoke(f) { f(); }
callAdd(f) {
return f(1, 2);
}
callRepeat(f) {
return f('ab', 4);
}
};