Skip to content

Commit 439760a

Browse files
committed
Updated to build meter
The build metering concept provides a mechanism for profiling.
1 parent dda6b27 commit 439760a

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

src/main/java/wyjs/io/JavaScriptFileWriter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,14 @@ public final class JavaScriptFileWriter extends AbstractConsumer<JavaScriptFileW
102102

103103
private WyilFile wyilfile;
104104

105-
public JavaScriptFileWriter(Build.Project project, PrintWriter writer) {
105+
public JavaScriptFileWriter(Build.Meter meter, Build.Project project, PrintWriter writer) {
106+
super(meter);
106107
this.project = project;
107108
this.out = writer;
108109
}
109110

110-
public JavaScriptFileWriter(Build.Project project, OutputStream stream) {
111+
public JavaScriptFileWriter(Build.Meter meter, Build.Project project, OutputStream stream) {
112+
super(meter);
111113
this.project = project;
112114
this.out = new PrintWriter(new OutputStreamWriter(stream));
113115
}

src/main/java/wyjs/tasks/JavaScriptCompileTask.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public Function<Build.Meter,Boolean> initialise() throws IOException {
8282
}
8383

8484
public boolean execute(Build.Meter meter, JavaScriptFile target, WyilFile source, JavaScriptFile... includes) {
85+
meter = meter.fork("JavaScriptCompiler");
8586
// FIXME: this is a fairly temporary solution at the moment which just
8687
// turns the WyIL file directly into a string. A more useful solution
8788
// will be to generate an intermediate file representing JavaScript in
@@ -93,6 +94,8 @@ public boolean execute(Build.Meter meter, JavaScriptFile target, WyilFile source
9394
for (JavaScriptFile i : includes) {
9495
target.getDeclarations().addAll(i.getDeclarations());
9596
}
97+
//
98+
meter.done();
9699
// How can this fail?
97100
return true;
98101
}

src/main/java/wyjs/tasks/JavaScriptCompiler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ public Term constructLambda(Decl.Lambda decl, Term term) {
241241
Term inner = new Lambda(parameters,new Block(new Return(term)));
242242
// NOTE: need to use Immediately Invoked Function Expression here, otherwise
243243
// capture variables don't behave properly.
244-
Tuple<Decl.Variable> captured = new Tuple<>(decl.getCapturedVariables());
244+
Tuple<Decl.Variable> captured = new Tuple<>(decl.getCapturedVariables(meter));
245245
List<String> captures = toParameterNames(captured);
246246
Term[] capturedArgs = toLambdaArguments(captured);
247247
// Construct outer lambda (this is for the IIFE)
@@ -1854,7 +1854,7 @@ private void extractUsedVariables(LVal lval, Set<Decl.Variable> uses) {
18541854
*/
18551855
private void extractUsedVariables(Expr e, Set<Decl.Variable> uses) {
18561856
// Construct appropriate visitor
1857-
AbstractVisitor visitor = new AbstractVisitor() {
1857+
AbstractVisitor visitor = new AbstractVisitor(meter) {
18581858
@Override
18591859
public void visitVariableAccess(Expr.VariableAccess e) {
18601860
uses.add(e.getVariableDeclaration());

0 commit comments

Comments
 (0)