MCPcopy Index your code
hub / github.com/nodejs/node / gen

Function gen

deps/v8/tools/compare-table-gen.js:43–107  ·  view source on GitHub ↗
(name, cmp, infix)

Source from the content-addressed store, hash-verified

41}
42
43function gen(name, cmp, infix) {
44
45 print("// Copyright 2015 the V8 project authors. All rights reserved.");
46 print("// Use of this source code is governed by a BSD-style license that can be");
47 print("// found in the LICENSE file.");
48 print();
49 print("var values = [" + strings + "];");
50
51 var body = "(function " + name + "(a,b) { return " + expr(infix, "a", cmp, "b") + "; })";
52 var func = eval(body);
53
54 print("var expected = [");
55
56 for (var i = 0; i < values.length; i++) {
57 var line = " [";
58 for (var j = 0; j < values.length; j++) {
59 if (j > 0) line += ",";
60 line += SpecialToString(func(values[i], values[j]));
61 }
62 line += "]";
63 if (i < (values.length - 1)) line += ",";
64 print(line);
65 }
66 print("];");
67
68 print("var func = " + body + ";");
69 print("var left_funcs = [");
70
71 for (var i = 0; i < values.length; i++) {
72 var value = strings[i];
73 var body = "(function " + name + "_L" + i + "(b) { return " + expr(infix, value, cmp, "b") + "; })";
74 var end = i < (values.length - 1) ? "," : "";
75 print(" " + body + end);
76 }
77 print("];");
78
79 print("var right_funcs = [");
80 for (var i = 0; i < values.length; i++) {
81 var value = strings[i];
82 var body = "(function " + name + "_R" + i + "(a) { return " + expr(infix, "a", cmp, value) + "; })";
83 var end = i < (values.length - 1) ? "," : "";
84 print(" " + body + end);
85 }
86 print("];");
87
88 print("function matrix() {");
89 print(" return [");
90 for (var i = 0; i < values.length; i++) {
91 var line = " [";
92 for (var j = 0; j < values.length; j++) {
93 if (j > 0) line += ",";
94 line += expr(infix, strings[i], cmp, strings[j]);
95 }
96 line += "]";
97 if (i < (values.length - 1)) line += ",";
98 print(line);
99 }
100 print(" ];");

Callers 1

Calls 6

exprFunction · 0.85
SpecialToStringFunction · 0.85
printFunction · 0.70
evalFunction · 0.50
funcFunction · 0.50
toStringMethod · 0.45

Tested by

no test coverage detected