Skip to content

Commit cb2c223

Browse files
committed
Merge branch 'voidpumpkin-master'
2 parents 744c9bd + a96fed9 commit cb2c223

File tree

5 files changed

+203
-186
lines changed

5 files changed

+203
-186
lines changed

frameworks/keyed/yew/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ crate-type = ["cdylib"]
1111
rand = { version = "0.8.4", features = ["small_rng"] }
1212
getrandom = { version = "0.2.1", features = ["js"] }
1313
wasm-bindgen = "0.2.78"
14-
yew = "0.18"
14+
web-sys = { version = "0.3.55", features = ["Window"]}
15+
yew = "0.19.3"
1516

1617
[profile.release]
1718
lto = true

frameworks/keyed/yew/bundled-dist/js-framework-benchmark-yew.js

Lines changed: 139 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -174,44 +174,41 @@ function getStringFromWasm0(ptr, len) {
174174
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
175175
}
176176

177-
function makeMutClosure(arg0, arg1, dtor, f) {
177+
function isLikeNone(x) {
178+
return x === undefined || x === null;
179+
}
180+
181+
let cachegetFloat64Memory0 = null;
182+
function getFloat64Memory0() {
183+
if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {
184+
cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);
185+
}
186+
return cachegetFloat64Memory0;
187+
}
188+
189+
function makeClosure(arg0, arg1, dtor, f) {
178190
const state = { a: arg0, b: arg1, cnt: 1, dtor };
179191
const real = (...args) => {
180192
// First up with a closure we increment the internal reference
181193
// count. This ensures that the Rust closure environment won't
182194
// be deallocated while we're invoking it.
183195
state.cnt++;
184-
const a = state.a;
185-
state.a = 0;
186196
try {
187-
return f(a, state.b, ...args);
197+
return f(state.a, state.b, ...args);
188198
} finally {
189199
if (--state.cnt === 0) {
190-
wasm.__wbindgen_export_2.get(state.dtor)(a, state.b);
200+
wasm.__wbindgen_export_2.get(state.dtor)(state.a, state.b);
201+
state.a = 0;
191202

192-
} else {
193-
state.a = a;
194203
}
195204
}
196205
};
197206
real.original = state;
198207

199208
return real;
200209
}
201-
202-
let stack_pointer = 32;
203-
204-
function addBorrowedObject(obj) {
205-
if (stack_pointer == 1) throw new Error('out of js stack');
206-
heap[--stack_pointer] = obj;
207-
return stack_pointer;
208-
}
209-
function __wbg_adapter_22(arg0, arg1, arg2) {
210-
try {
211-
wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0e886576bbd022a9(arg0, arg1, addBorrowedObject(arg2));
212-
} finally {
213-
heap[stack_pointer++] = undefined;
214-
}
210+
function __wbg_adapter_24(arg0, arg1, arg2) {
211+
wasm._dyn_core__ops__function__Fn__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h37b16d58472065db(arg0, arg1, addHeapObject(arg2));
215212
}
216213

217214
/**
@@ -232,8 +229,22 @@ function getArrayU8FromWasm0(ptr, len) {
232229
return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
233230
}
234231

235-
function isLikeNone(x) {
236-
return x === undefined || x === null;
232+
let cachegetUint32Memory0 = null;
233+
function getUint32Memory0() {
234+
if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {
235+
cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);
236+
}
237+
return cachegetUint32Memory0;
238+
}
239+
240+
function getArrayJsValueFromWasm0(ptr, len) {
241+
const mem = getUint32Memory0();
242+
const slice = mem.subarray(ptr / 4, ptr / 4 + len);
243+
const result = [];
244+
for (let i = 0; i < slice.length; i++) {
245+
result.push(takeObject(slice[i]));
246+
}
247+
return result;
237248
}
238249

239250
async function load(module, imports) {
@@ -273,25 +284,9 @@ async function init(input) {
273284
}
274285
const imports = {};
275286
imports.wbg = {};
276-
imports.wbg.__wbg_instanceof_Window_c4b70662a0d2c5ec = function(arg0) {
277-
var ret = getObject(arg0) instanceof Window;
278-
return ret;
279-
};
280287
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
281288
takeObject(arg0);
282289
};
283-
imports.wbg.__wbg_document_1c64944725c0d81d = function(arg0) {
284-
var ret = getObject(arg0).document;
285-
return isLikeNone(ret) ? 0 : addHeapObject(ret);
286-
};
287-
imports.wbg.__wbg_createTextNode_365db3bc3d0523ab = function(arg0, arg1, arg2) {
288-
var ret = getObject(arg0).createTextNode(getStringFromWasm0(arg1, arg2));
289-
return addHeapObject(ret);
290-
};
291-
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
292-
var ret = getObject(arg0);
293-
return addHeapObject(ret);
294-
};
295290
imports.wbg.__wbg_process_2f24d6544ea7b200 = function(arg0) {
296291
var ret = getObject(arg0).process;
297292
return addHeapObject(ret);
@@ -358,18 +353,22 @@ async function init(input) {
358353
imports.wbg.__wbg_set_969ad0a60e51d320 = function(arg0, arg1, arg2) {
359354
getObject(arg0).set(getObject(arg1), arg2 >>> 0);
360355
};
361-
imports.wbg.__wbg_removeEventListener_24d5a7c12c3f3c39 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
362-
getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), arg4 !== 0);
363-
}, arguments) };
364-
imports.wbg.__wbindgen_cb_drop = function(arg0) {
365-
const obj = takeObject(arg0).original;
366-
if (obj.cnt-- == 1) {
367-
obj.a = 0;
368-
return true;
369-
}
370-
var ret = false;
356+
imports.wbg.__wbg_instanceof_Window_c4b70662a0d2c5ec = function(arg0) {
357+
var ret = getObject(arg0) instanceof Window;
371358
return ret;
372359
};
360+
imports.wbg.__wbg_document_1c64944725c0d81d = function(arg0) {
361+
var ret = getObject(arg0).document;
362+
return isLikeNone(ret) ? 0 : addHeapObject(ret);
363+
};
364+
imports.wbg.__wbg_createTextNode_365db3bc3d0523ab = function(arg0, arg1, arg2) {
365+
var ret = getObject(arg0).createTextNode(getStringFromWasm0(arg1, arg2));
366+
return addHeapObject(ret);
367+
};
368+
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
369+
var ret = getObject(arg0);
370+
return addHeapObject(ret);
371+
};
373372
imports.wbg.__wbg_querySelector_b92a6c73bcfe671b = function() { return handleError(function (arg0, arg1, arg2) {
374373
var ret = getObject(arg0).querySelector(getStringFromWasm0(arg1, arg2));
375374
return isLikeNone(ret) ? 0 : addHeapObject(ret);
@@ -382,6 +381,24 @@ async function init(input) {
382381
var ret = getObject(arg0).removeChild(getObject(arg1));
383382
return addHeapObject(ret);
384383
}, arguments) };
384+
imports.wbg.__wbg_new_693216e109162396 = function() {
385+
var ret = new Error();
386+
return addHeapObject(ret);
387+
};
388+
imports.wbg.__wbg_stack_0ddaca5d1abfb52f = function(arg0, arg1) {
389+
var ret = getObject(arg1).stack;
390+
var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
391+
var len0 = WASM_VECTOR_LEN;
392+
getInt32Memory0()[arg0 / 4 + 1] = len0;
393+
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
394+
};
395+
imports.wbg.__wbg_error_09919627ac0992f5 = function(arg0, arg1) {
396+
try {
397+
console.error(getStringFromWasm0(arg0, arg1));
398+
} finally {
399+
wasm.__wbindgen_free(arg0, arg1);
400+
}
401+
};
385402
imports.wbg.__wbg_self_c6fbdfc2918d5e58 = function() { return handleError(function () {
386403
var ret = self.self;
387404
return addHeapObject(ret);
@@ -420,6 +437,64 @@ async function init(input) {
420437
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
421438
throw new Error(getStringFromWasm0(arg0, arg1));
422439
};
440+
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
441+
var ret = getStringFromWasm0(arg0, arg1);
442+
return addHeapObject(ret);
443+
};
444+
imports.wbg.__wbindgen_number_new = function(arg0) {
445+
var ret = arg0;
446+
return addHeapObject(ret);
447+
};
448+
imports.wbg.__wbg_set_82a4e8a85e31ac42 = function() { return handleError(function (arg0, arg1, arg2) {
449+
var ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
450+
return ret;
451+
}, arguments) };
452+
imports.wbg.__wbg_body_78ae4fd43b446013 = function(arg0) {
453+
var ret = getObject(arg0).body;
454+
return isLikeNone(ret) ? 0 : addHeapObject(ret);
455+
};
456+
imports.wbg.__wbg_new_0b83d3df67ecb33e = function() {
457+
var ret = new Object();
458+
return addHeapObject(ret);
459+
};
460+
imports.wbg.__wbg_addEventListener_09e11fbf8b4b719b = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
461+
getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), getObject(arg4));
462+
}, arguments) };
463+
imports.wbg.__wbg_target_cc69dde6c2d9ec90 = function(arg0) {
464+
var ret = getObject(arg0).target;
465+
return isLikeNone(ret) ? 0 : addHeapObject(ret);
466+
};
467+
imports.wbg.__wbg_instanceof_Element_97d85e53f1805b82 = function(arg0) {
468+
var ret = getObject(arg0) instanceof Element;
469+
return ret;
470+
};
471+
imports.wbg.__wbg_cancelBubble_f67c419013823f11 = function(arg0) {
472+
var ret = getObject(arg0).cancelBubble;
473+
return ret;
474+
};
475+
imports.wbg.__wbg_parentElement_0253a5d6c3ff0ba5 = function(arg0) {
476+
var ret = getObject(arg0).parentElement;
477+
return isLikeNone(ret) ? 0 : addHeapObject(ret);
478+
};
479+
imports.wbg.__wbg_get_4d0f21c2f823742e = function() { return handleError(function (arg0, arg1) {
480+
var ret = Reflect.get(getObject(arg0), getObject(arg1));
481+
return addHeapObject(ret);
482+
}, arguments) };
483+
imports.wbg.__wbindgen_number_get = function(arg0, arg1) {
484+
const obj = getObject(arg1);
485+
var ret = typeof(obj) === 'number' ? obj : undefined;
486+
getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret;
487+
getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret);
488+
};
489+
imports.wbg.__wbg_valueOf_99d85ac83228d11b = function(arg0) {
490+
var ret = getObject(arg0).valueOf();
491+
return ret;
492+
};
493+
imports.wbg.__wbg_warn_2aa0e7178e1d35f6 = function(arg0, arg1) {
494+
var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
495+
wasm.__wbindgen_free(arg0, arg1 * 4);
496+
console.warn(...v0);
497+
};
423498
imports.wbg.__wbg_appendChild_d318db34c4559916 = function() { return handleError(function (arg0, arg1) {
424499
var ret = getObject(arg0).appendChild(getObject(arg1));
425500
return addHeapObject(ret);
@@ -428,16 +503,24 @@ async function init(input) {
428503
var ret = getObject(arg0).insertBefore(getObject(arg1), getObject(arg2));
429504
return addHeapObject(ret);
430505
}, arguments) };
506+
imports.wbg.__wbg_removeAttribute_eea03ed128669b8f = function() { return handleError(function (arg0, arg1, arg2) {
507+
getObject(arg0).removeAttribute(getStringFromWasm0(arg1, arg2));
508+
}, arguments) };
509+
imports.wbg.__wbg_setAttribute_1b533bf07966de55 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
510+
getObject(arg0).setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
511+
}, arguments) };
431512
imports.wbg.__wbg_setnodeValue_702374ad3d0ec3df = function(arg0, arg1, arg2) {
432513
getObject(arg0).nodeValue = arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2);
433514
};
434515
imports.wbg.__wbg_is_0f5efc7977a2c50b = function(arg0, arg1) {
435516
var ret = Object.is(getObject(arg0), getObject(arg1));
436517
return ret;
437518
};
438-
imports.wbg.__wbg_instanceof_HtmlInputElement_8cafe5f30dfdb6bc = function(arg0) {
439-
var ret = getObject(arg0) instanceof HTMLInputElement;
440-
return ret;
519+
imports.wbg.__wbg_setchecked_206243371da58f6a = function(arg0, arg1) {
520+
getObject(arg0).checked = arg1 !== 0;
521+
};
522+
imports.wbg.__wbg_setvalue_2459f62386b6967f = function(arg0, arg1, arg2) {
523+
getObject(arg0).value = getStringFromWasm0(arg1, arg2);
441524
};
442525
imports.wbg.__wbg_value_0627d4b1c27534e6 = function(arg0, arg1) {
443526
var ret = getObject(arg1).value;
@@ -446,9 +529,8 @@ async function init(input) {
446529
getInt32Memory0()[arg0 / 4 + 1] = len0;
447530
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
448531
};
449-
imports.wbg.__wbg_instanceof_HtmlTextAreaElement_c2f3b4bd6871d5ad = function(arg0) {
450-
var ret = getObject(arg0) instanceof HTMLTextAreaElement;
451-
return ret;
532+
imports.wbg.__wbg_setvalue_0a07023245efa3cc = function(arg0, arg1, arg2) {
533+
getObject(arg0).value = getStringFromWasm0(arg1, arg2);
452534
};
453535
imports.wbg.__wbg_value_686b2a68422cb88d = function(arg0, arg1) {
454536
var ret = getObject(arg1).value;
@@ -457,31 +539,6 @@ async function init(input) {
457539
getInt32Memory0()[arg0 / 4 + 1] = len0;
458540
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
459541
};
460-
imports.wbg.__wbg_removeAttribute_eea03ed128669b8f = function() { return handleError(function (arg0, arg1, arg2) {
461-
getObject(arg0).removeAttribute(getStringFromWasm0(arg1, arg2));
462-
}, arguments) };
463-
imports.wbg.__wbg_setAttribute_1b533bf07966de55 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
464-
getObject(arg0).setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
465-
}, arguments) };
466-
imports.wbg.__wbg_instanceof_HtmlButtonElement_54060a3d8d49c8a6 = function(arg0) {
467-
var ret = getObject(arg0) instanceof HTMLButtonElement;
468-
return ret;
469-
};
470-
imports.wbg.__wbg_settype_bd9da7e07b7cb217 = function(arg0, arg1, arg2) {
471-
getObject(arg0).type = getStringFromWasm0(arg1, arg2);
472-
};
473-
imports.wbg.__wbg_settype_6a7d0ca3b1b6d0c2 = function(arg0, arg1, arg2) {
474-
getObject(arg0).type = getStringFromWasm0(arg1, arg2);
475-
};
476-
imports.wbg.__wbg_setvalue_0a07023245efa3cc = function(arg0, arg1, arg2) {
477-
getObject(arg0).value = getStringFromWasm0(arg1, arg2);
478-
};
479-
imports.wbg.__wbg_setvalue_2459f62386b6967f = function(arg0, arg1, arg2) {
480-
getObject(arg0).value = getStringFromWasm0(arg1, arg2);
481-
};
482-
imports.wbg.__wbg_setchecked_206243371da58f6a = function(arg0, arg1) {
483-
getObject(arg0).checked = arg1 !== 0;
484-
};
485542
imports.wbg.__wbg_namespaceURI_f4cd665d07463337 = function(arg0, arg1) {
486543
var ret = getObject(arg1).namespaceURI;
487544
var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -497,23 +554,8 @@ async function init(input) {
497554
var ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2));
498555
return addHeapObject(ret);
499556
}, arguments) };
500-
imports.wbg.__wbg_new_0b83d3df67ecb33e = function() {
501-
var ret = new Object();
502-
return addHeapObject(ret);
503-
};
504-
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
505-
var ret = getStringFromWasm0(arg0, arg1);
506-
return addHeapObject(ret);
507-
};
508-
imports.wbg.__wbg_set_82a4e8a85e31ac42 = function() { return handleError(function (arg0, arg1, arg2) {
509-
var ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
510-
return ret;
511-
}, arguments) };
512-
imports.wbg.__wbg_addEventListener_09e11fbf8b4b719b = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
513-
getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), getObject(arg4));
514-
}, arguments) };
515-
imports.wbg.__wbindgen_closure_wrapper1357 = function(arg0, arg1, arg2) {
516-
var ret = makeMutClosure(arg0, arg1, 23, __wbg_adapter_22);
557+
imports.wbg.__wbindgen_closure_wrapper1278 = function(arg0, arg1, arg2) {
558+
var ret = makeClosure(arg0, arg1, 28, __wbg_adapter_24);
517559
return addHeapObject(ret);
518560
};
519561

Binary file not shown.

frameworks/keyed/yew/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
"description": "Benchmark for Yew",
55
"license": "ISC",
66
"js-framework-benchmark": {
7-
"frameworkVersion": "0.18.0"
7+
"frameworkVersion": "0.19.3"
88
},
99
"scripts": {
1010
"build-prod": "echo This is a no-op. && echo Due to heavy dependencies, the generated javascript is already provided. && echo If you really want to rebuild from source use: && echo npm run build-prod-force",
11-
"build-prod-force": "rustup target add wasm32-unknown-unknown && cargo install wasm-pack && rimraf bundled-dist && wasm-pack build --release --target web --no-typescript --out-name js-framework-benchmark-yew --out-dir bundled-dist && cpr index.html bundled-dist/index.html && (cd bundled-dist && rimraf .gitignore README.md package.json)"
11+
"build-prod-force": "rustup target add wasm32-unknown-unknown && cargo install wasm-pack && npx build-prod-without-tools-install",
12+
"build-prod-without-tools-install": "rimraf bundled-dist && wasm-pack build --release --target web --no-typescript --out-name js-framework-benchmark-yew --out-dir bundled-dist && cpr index.html bundled-dist/index.html && (cd bundled-dist && rimraf .gitignore README.md package.json)"
1213
},
1314
"repository": {
1415
"type": "git",

0 commit comments

Comments
 (0)