mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-12-22 17:41:33 +03:00
170 lines
2.8 KiB
JavaScript
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);
|
|
}
|
|
};
|