[Pkg-javascript-commits] [uglifyjs] 33/190: add asm.js test
Antonio Terceiro
terceiro at moszumanska.debian.org
Sun Aug 7 23:17:10 UTC 2016
This is an automated email from the git hooks/post-receive script.
terceiro pushed a commit to annotated tag upstream/2.7.0
in repository uglifyjs.
commit 0d952ae43de50d85a2315b2a94594eaf5f498009
Author: kzc <zaxxon2011 at gmail.com>
Date: Tue Oct 6 17:05:36 2015 -0400
add asm.js test
---
test/compress/asm.js | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 106 insertions(+)
diff --git a/test/compress/asm.js b/test/compress/asm.js
new file mode 100644
index 0000000..c301848
--- /dev/null
+++ b/test/compress/asm.js
@@ -0,0 +1,106 @@
+asm_mixed: {
+ options = {
+ sequences : true,
+ properties : true,
+ dead_code : true,
+ drop_debugger : true,
+ conditionals : true,
+ comparisons : true,
+ evaluate : true,
+ booleans : true,
+ loops : true,
+ unused : true,
+ hoist_funs : true,
+ keep_fargs : true,
+ keep_fnames : false,
+ hoist_vars : true,
+ if_return : true,
+ join_vars : true,
+ cascade : true,
+ side_effects : true,
+ negate_iife : true
+ };
+ input: {
+ // adapted from http://asmjs.org/spec/latest/
+ function asm_GeometricMean(stdlib, foreign, buffer) {
+ "use asm";
+ var exp = stdlib.Math.exp;
+ var log = stdlib.Math.log;
+ var values = new stdlib.Float64Array(buffer);
+ function logSum(start, end) {
+ start = start|0;
+ end = end|0;
+ var sum = 0.0, p = 0, q = 0;
+ // asm.js forces byte addressing of the heap by requiring shifting by 3
+ for (p = start << 3, q = end << 3; (p|0) < (q|0); p = (p + 8)|0) {
+ sum = sum + +log(values[p>>3]);
+ }
+ return +sum;
+ }
+ function geometricMean(start, end) {
+ start = start|0;
+ end = end|0;
+ return +exp(+logSum(start, end) / +((end - start)|0));
+ }
+ return { geometricMean: geometricMean };
+ }
+ function no_asm_GeometricMean(stdlib, foreign, buffer) {
+ var exp = stdlib.Math.exp;
+ var log = stdlib.Math.log;
+ var values = new stdlib.Float64Array(buffer);
+ function logSum(start, end) {
+ start = start|0;
+ end = end|0;
+ var sum = 0.0, p = 0, q = 0;
+ // asm.js forces byte addressing of the heap by requiring shifting by 3
+ for (p = start << 3, q = end << 3; (p|0) < (q|0); p = (p + 8)|0) {
+ sum = sum + +log(values[p>>3]);
+ }
+ return +sum;
+ }
+ function geometricMean(start, end) {
+ start = start|0;
+ end = end|0;
+ return +exp(+logSum(start, end) / +((end - start)|0));
+ }
+ return { geometricMean: geometricMean };
+ }
+ }
+ expect: {
+ function asm_GeometricMean(stdlib, foreign, buffer) {
+ "use asm";
+ var exp = stdlib.Math.exp;
+ var log = stdlib.Math.log;
+ var values = new stdlib.Float64Array(buffer);
+ function logSum(start, end) {
+ start = start | 0;
+ end = end | 0;
+ var sum = 0.0, p = 0, q = 0;
+ for (p = start << 3, q = end << 3; (p | 0) < (q | 0); p = p + 8 | 0) {
+ sum = sum + +log(values[p >> 3]);
+ }
+ return +sum;
+ }
+ function geometricMean(start, end) {
+ start = start | 0;
+ end = end | 0;
+ return +exp(+logSum(start, end) / +(end - start | 0));
+ }
+ return { geometricMean: geometricMean };
+ }
+ function no_asm_GeometricMean(stdlib, foreign, buffer) {
+ function logSum(start, end) {
+ start = 0 | start, end = 0 | end;
+ var sum = 0, p = 0, q = 0;
+ for (p = start << 3, q = end << 3; (0 | q) > (0 | p); p = p + 8 | 0) sum += +log(values[p >> 3]);
+ return +sum;
+ }
+ function geometricMean(start, end) {
+ return start = 0 | start, end = 0 | end, +exp(+logSum(start, end) / +(end - start | 0));
+ }
+ var exp = stdlib.Math.exp, log = stdlib.Math.log, values = new stdlib.Float64Array(buffer);
+ return { geometricMean: geometricMean };
+ }
+ }
+}
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git
More information about the Pkg-javascript-commits
mailing list