Skip to content

Commit

Permalink
Formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewp committed Mar 19, 2021
1 parent 6b5bb40 commit 7ed2b00
Show file tree
Hide file tree
Showing 29 changed files with 4,032 additions and 4,019 deletions.
119 changes: 63 additions & 56 deletions src/compiler/Stats.ts
Original file line number Diff line number Diff line change
@@ -1,75 +1,82 @@
// @ts-nocheck

const now = (typeof process !== 'undefined' && process.hrtime)
? () => {
const t = process.hrtime();
return t[0] * 1e3 + t[1] / 1e6;
}
: () => self.performance.now();
const now =
typeof process !== 'undefined' && process.hrtime
? () => {
const t = process.hrtime();
return t[0] * 1e3 + t[1] / 1e6;
}
: () => self.performance.now();

interface Timing {
label: string;
start: number;
end: number;
children: Timing[];
label: string;
start: number;
end: number;
children: Timing[];
}

function collapse_timings(timings) {
const result = {};
timings.forEach(timing => {
result[timing.label] = Object.assign({
total: timing.end - timing.start
}, timing.children && collapse_timings(timing.children));
});
return result;
const result = {};
timings.forEach((timing) => {
result[timing.label] = Object.assign(
{
total: timing.end - timing.start,
},
timing.children && collapse_timings(timing.children)
);
});
return result;
}

export default class Stats {
start_time: number;
current_timing: Timing;
current_children: Timing[];
timings: Timing[];
stack: Timing[];
start_time: number;
current_timing: Timing;
current_children: Timing[];
timings: Timing[];
stack: Timing[];

constructor() {
this.start_time = now();
this.stack = [];
this.current_children = this.timings = [];
}
constructor() {
this.start_time = now();
this.stack = [];
this.current_children = this.timings = [];
}

start(label) {
const timing = {
label,
start: now(),
end: null,
children: []
};
start(label) {
const timing = {
label,
start: now(),
end: null,
children: [],
};

this.current_children.push(timing);
this.stack.push(timing);
this.current_children.push(timing);
this.stack.push(timing);

this.current_timing = timing;
this.current_children = timing.children;
}
this.current_timing = timing;
this.current_children = timing.children;
}

stop(label) {
if (label !== this.current_timing.label) {
throw new Error(`Mismatched timing labels (expected ${this.current_timing.label}, got ${label})`);
}
stop(label) {
if (label !== this.current_timing.label) {
throw new Error(`Mismatched timing labels (expected ${this.current_timing.label}, got ${label})`);
}

this.current_timing.end = now();
this.stack.pop();
this.current_timing = this.stack[this.stack.length - 1];
this.current_children = this.current_timing ? this.current_timing.children : this.timings;
}
this.current_timing.end = now();
this.stack.pop();
this.current_timing = this.stack[this.stack.length - 1];
this.current_children = this.current_timing ? this.current_timing.children : this.timings;
}

render() {
const timings = Object.assign({
total: now() - this.start_time
}, collapse_timings(this.timings));
render() {
const timings = Object.assign(
{
total: now() - this.start_time,
},
collapse_timings(this.timings)
);

return {
timings
};
}
return {
timings,
};
}
}
2 changes: 1 addition & 1 deletion src/compiler/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { default as parse } from './parse/index.js';
export { default as parse } from './parse/index.js';
22 changes: 12 additions & 10 deletions src/compiler/parse/acorn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ import jsx from 'acorn-jsx';

const acornJsx = acorn.Parser.extend(jsx());

export const parse = (source: string): Node => acorn.parse(source, {
sourceType: 'module',
ecmaVersion: 2020,
locations: true
});
export const parse = (source: string): Node =>
acorn.parse(source, {
sourceType: 'module',
ecmaVersion: 2020,
locations: true,
});

export const parse_expression_at = (source: string, index: number): Node => acornJsx.parseExpressionAt(source, index, {
sourceType: 'module',
ecmaVersion: 2020,
locations: true
});
export const parse_expression_at = (source: string, index: number): Node =>
acornJsx.parseExpressionAt(source, index, {
sourceType: 'module',
ecmaVersion: 2020,
locations: true,
});
Loading

0 comments on commit 7ed2b00

Please sign in to comment.