Skip to content

BREAKING CHANGE: Refactor enum identifiers to TitleCase and apply some changes in AST nodes #2501

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 31 commits into from
Oct 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
876d407
rename statement -> body in all loop-related AST nodes
MaxGraey Sep 4, 2022
938358a
add Node.isEmpty
MaxGraey Sep 4, 2022
58fa85c
fix typos in comments
MaxGraey Sep 4, 2022
31d7ff8
add isDefault getter for SwitchCase node
MaxGraey Sep 4, 2022
77c4173
statements -> bodyStatements for TryStatment node
MaxGraey Sep 4, 2022
b6341ee
use TitleCase for most of enums (WIP)
MaxGraey Sep 4, 2022
018e82e
Merge branch 'main' into refactor-ast
MaxGraey Sep 4, 2022
c495126
more refactorings (wip)
MaxGraey Sep 5, 2022
b64f0f4
minor refactorings in compiler
MaxGraey Sep 5, 2022
59d1846
more
MaxGraey Sep 5, 2022
f4ed40b
refactor CharCode's enums to TitleCase
MaxGraey Sep 5, 2022
20c06f5
final
MaxGraey Sep 5, 2022
8467fe3
Merge branch 'main' into refactor-ast
MaxGraey Sep 24, 2022
d0572d4
update
MaxGraey Sep 24, 2022
bda7260
Merge branch 'main' into refactor-ast
MaxGraey Sep 25, 2022
30d81d0
update
MaxGraey Sep 25, 2022
180c6ac
Merge branch 'main' into refactor-ast
MaxGraey Sep 26, 2022
319b05f
Merge branch 'main' into refactor-ast
MaxGraey Oct 4, 2022
545bce4
Merge branch 'main' into refactor-ast
MaxGraey Oct 11, 2022
1933882
Merge branch 'main' into refactor-ast
MaxGraey Oct 21, 2022
a48992d
update
MaxGraey Oct 21, 2022
0b66d02
Merge branch 'main' into refactor-ast
MaxGraey Oct 21, 2022
6e5d07f
fixes
MaxGraey Oct 21, 2022
a7ba50d
Merge branch 'main' into refactor-ast
MaxGraey Oct 23, 2022
d3af447
postfix
MaxGraey Oct 23, 2022
b0cc5a4
use insanceof and uppercase SIMD ppstfix
MaxGraey Oct 23, 2022
a10ef78
revert instnaceOf token and use Underscores for compaund token names
MaxGraey Oct 23, 2022
85aa694
more underscores
MaxGraey Oct 23, 2022
fd2e9a1
Revert ExclamationEquals
MaxGraey Oct 23, 2022
28d3017
more
MaxGraey Oct 23, 2022
9f9d80e
Exclamation_Equals
MaxGraey Oct 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
478 changes: 243 additions & 235 deletions src/ast.ts

Large diffs are not rendered by default.

74 changes: 37 additions & 37 deletions src/bindings/js.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ export class JSBuilder extends ExportsWalker {
let sb = this.sb;
let type = element.type;
this.exports.push(name);
if (!isPlainValue(type, Mode.EXPORT)) {
if (!isPlainValue(type, Mode.Export)) {
indent(sb, this.indentLevel);
sb.push(name);
sb.push(": {\n");
Expand All @@ -156,7 +156,7 @@ export class JSBuilder extends ExportsWalker {
sb.push(";\n");
indent(sb, --this.indentLevel);
sb.push("}");
if (!element.is(CommonFlags.CONST)) {
if (!element.is(CommonFlags.Const)) {
sb.push(",\n");
indent(sb, this.indentLevel);
sb.push("set value(value) {\n");
Expand Down Expand Up @@ -190,20 +190,20 @@ export class JSBuilder extends ExportsWalker {
if (members) {
for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) {
let value = _values[i];
if (value.kind != ElementKind.ENUMVALUE) continue;
if (value.kind != ElementKind.EnumValue) continue;
indent(sb, this.indentLevel);
sb.push("values[values.");
sb.push(value.name);
if (value.is(CommonFlags.INLINED)) {
if (value.is(CommonFlags.Inlined)) {
sb.push(" = ");
sb.push(i64_low((<EnumValue>value).constantIntegerValue).toString());
} else {
sb.push(" = exports[\"");
sb.push(escapeString(name + "." + value.name, CharCode.DOUBLEQUOTE));
sb.push(escapeString(name + "." + value.name, CharCode.DoubleQuote));
sb.push("\"].valueOf()");
}
sb.push("] = \"");
sb.push(escapeString(value.name, CharCode.DOUBLEQUOTE));
sb.push(escapeString(value.name, CharCode.DoubleQuote));
sb.push("\",\n");
}
}
Expand All @@ -222,11 +222,11 @@ export class JSBuilder extends ExportsWalker {
sb.push(name);
} else {
sb.push("\"");
sb.push(escapeString(name, CharCode.DOUBLEQUOTE));
sb.push(escapeString(name, CharCode.DoubleQuote));
sb.push("\": ");
}
let moduleId = this.ensureModuleId(moduleName);
if (isPlainValue(type, Mode.IMPORT)) {
if (isPlainValue(type, Mode.Import)) {
sb.push("(\n");
indent(sb, this.indentLevel + 1);
sb.push("// ");
Expand Down Expand Up @@ -268,10 +268,10 @@ export class JSBuilder extends ExportsWalker {
sb.push(name);
} else {
sb.push("\"");
sb.push(escapeString(name, CharCode.DOUBLEQUOTE));
sb.push(escapeString(name, CharCode.DoubleQuote));
sb.push("\"");
}
if (isPlainFunction(signature, Mode.IMPORT) && !code) {
if (isPlainFunction(signature, Mode.Import) && !code) {
sb.push(": (\n");
indent(sb, this.indentLevel + 1);
sb.push("// ");
Expand Down Expand Up @@ -303,7 +303,7 @@ export class JSBuilder extends ExportsWalker {
sb.push("\n");
for (let i = 0, k = parameterTypes.length; i < k; ++i) {
let type = parameterTypes[i];
if (!isPlainValue(type, Mode.EXPORT)) {
if (!isPlainValue(type, Mode.Export)) {
let name = element.getParameterName(i);
indent(sb, this.indentLevel);
sb.push(name);
Expand Down Expand Up @@ -351,11 +351,11 @@ export class JSBuilder extends ExportsWalker {
}

visitFunction(name: string, element: Function): void {
if (element.is(CommonFlags.PRIVATE)) return;
if (element.is(CommonFlags.Private)) return;
let sb = this.sb;
let signature = element.signature;
this.exports.push(name);
if (!isPlainFunction(signature, Mode.EXPORT)) {
if (!isPlainFunction(signature, Mode.Export)) {
indent(sb, this.indentLevel);
sb.push(name);
sb.push("(");
Expand All @@ -375,7 +375,7 @@ export class JSBuilder extends ExportsWalker {
let releases = new Array<string>();
for (let i = 0, k = parameterTypes.length; i < k; ++i) {
let type = parameterTypes[i];
if (!isPlainValue(type, Mode.IMPORT)) {
if (!isPlainValue(type, Mode.Import)) {
let name = element.getParameterName(i);
indent(sb, this.indentLevel);
sb.push(name);
Expand Down Expand Up @@ -465,17 +465,17 @@ export class JSBuilder extends ExportsWalker {
}

getExternalCode(element: Function): string | null {
let decorator = findDecorator(DecoratorKind.EXTERNAL_JS, element.decoratorNodes);
let decorator = findDecorator(DecoratorKind.ExternalJs, element.decoratorNodes);
if (decorator) {
let args = decorator.args;
if (args && args.length == 1) {
let codeArg = args[0];
if (codeArg.kind == NodeKind.LITERAL) {
if (codeArg.kind == NodeKind.Literal) {
let literal = <LiteralExpression>codeArg;
if (literal.literalKind == LiteralKind.STRING) {
if (literal.literalKind == LiteralKind.String) {
return (<StringLiteralExpression>literal).value;
}
if (literal.literalKind == LiteralKind.TEMPLATE) {
if (literal.literalKind == LiteralKind.Template) {
let parts = (<TemplateLiteralExpression>literal).parts;
if (parts.length == 1) {
return parts[0];
Expand Down Expand Up @@ -514,7 +514,7 @@ export class JSBuilder extends ExportsWalker {
sb.push(moduleName);
} else {
sb.push("\"");
sb.push(escapeString(moduleName, CharCode.DOUBLEQUOTE));
sb.push(escapeString(moduleName, CharCode.DoubleQuote));
sb.push("\"");
}
let resetPos = sb.length;
Expand All @@ -535,16 +535,16 @@ export class JSBuilder extends ExportsWalker {
for (let _keys2 = Map_keys(module), j = 0, l = _keys2.length; j < l; ++j) {
let name = _keys2[j];
let elem = assert(module.get(name));
if (elem.kind == ElementKind.FUNCTION) {
if (elem.kind == ElementKind.Function) {
let func = <Function>elem;
let code = this.getExternalCode(func);
if (!isPlainFunction(func.signature, Mode.IMPORT) || !isIdentifier(name) || code) {
if (!isPlainFunction(func.signature, Mode.Import) || !isIdentifier(name) || code) {
this.makeFunctionImport(moduleName, name, <Function>elem, code);
++numInstrumented;
}
} else if (elem.kind == ElementKind.GLOBAL) {
} else if (elem.kind == ElementKind.Global) {
let global = <Global>elem;
if (!isPlainValue(global.type, Mode.IMPORT) || !isIdentifier(name)) {
if (!isPlainValue(global.type, Mode.Import) || !isIdentifier(name)) {
this.makeGlobalImport(moduleName, name, global);
++numInstrumented;
}
Expand Down Expand Up @@ -590,7 +590,7 @@ export class JSBuilder extends ExportsWalker {
map.push(moduleName);
} else {
map.push("[\"");
map.push(escapeString(moduleName, CharCode.DOUBLEQUOTE));
map.push(escapeString(moduleName, CharCode.DoubleQuote));
map.push("\"]");
}
map.push(";\n");
Expand Down Expand Up @@ -901,7 +901,7 @@ export class JSBuilder extends ExportsWalker {
sb.push(moduleName);
} else {
sb.push("\"");
sb.push(escapeString(moduleName, CharCode.DOUBLEQUOTE));
sb.push(escapeString(moduleName, CharCode.DoubleQuote));
sb.push("\"");
}
sb.push(": __maybeDefault(__import");
Expand All @@ -910,14 +910,14 @@ export class JSBuilder extends ExportsWalker {
importExpr.push("import * as __import");
importExpr.push(moduleId.toString());
importExpr.push(" from \"");
importExpr.push(escapeString(moduleName, CharCode.DOUBLEQUOTE));
importExpr.push(escapeString(moduleName, CharCode.DoubleQuote));
importExpr.push("\";\n");
needsMaybeDefault = true;
}
}
sb[0] = importExpr.join("");
sb.push(` }
))(new URL("${escapeString(options.basenameHint, CharCode.DOUBLEQUOTE)}.wasm", import.meta.url));
))(new URL("${escapeString(options.basenameHint, CharCode.DoubleQuote)}.wasm", import.meta.url));
`);
if (needsMaybeDefault) {
sb.push(`function __maybeDefault(module) {
Expand Down Expand Up @@ -1107,7 +1107,7 @@ export class JSBuilder extends ExportsWalker {
}
}
sb.push(")");
if (!type.is(TypeFlags.NULLABLE)) {
if (!type.is(TypeFlags.Nullable)) {
this.needsNotNull = true;
sb.push(" || __notnull()");
}
Expand Down Expand Up @@ -1241,7 +1241,7 @@ export class JSBuilder extends ExportsWalker {
for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) {
let memberName = _keys[i];
let member = assert(members.get(memberName));
if (member.kind != ElementKind.FIELD) continue;
if (member.kind != ElementKind.Field) continue;
let field = <Field>member;
indent(sb, this.indentLevel);
sb.push(field.name);
Expand Down Expand Up @@ -1283,7 +1283,7 @@ export class JSBuilder extends ExportsWalker {
for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) {
let memberName = _keys[i];
let member = assert(members.get(memberName));
if (member.kind != ElementKind.FIELD) continue;
if (member.kind != ElementKind.Field) continue;
let field = <Field>member;
indent(sb, this.indentLevel);
this.makeLowerToMemory(field.type, sb, "pointer + " + field.memoryOffset.toString(), "value." + memberName);
Expand All @@ -1303,12 +1303,12 @@ export class JSBuilder extends ExportsWalker {
// Helpers

enum Mode {
IMPORT,
EXPORT
Import,
Export
}

function isPlainValue(type: Type, kind: Mode): bool {
if (kind == Mode.IMPORT) {
if (kind == Mode.Import) {
// may be stored to an Uint8Array, make sure to store 1/0
if (type == Type.bool) return false;
// requires coercion of undefined to 0n
Expand All @@ -1325,7 +1325,7 @@ function isPlainValue(type: Type, kind: Mode): bool {

function isPlainFunction(signature: Signature, mode: Mode): bool {
let parameterTypes = signature.parameterTypes;
let inverseMode = mode == Mode.IMPORT ? Mode.EXPORT : Mode.IMPORT;
let inverseMode = mode == Mode.Import ? Mode.Export : Mode.Import;
if (!isPlainValue(signature.returnType, mode)) return false;
for (let i = 0, k = parameterTypes.length; i < k; ++i) {
if (!isPlainValue(parameterTypes[i], inverseMode)) return false;
Expand All @@ -1340,8 +1340,8 @@ function isPlainObject(clazz: Class): bool {
if (members) {
for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) {
let member = _values[i];
if (member.isAny(CommonFlags.PRIVATE | CommonFlags.PROTECTED)) return false;
if (member.is(CommonFlags.CONSTRUCTOR)) {
if (member.isAny(CommonFlags.Private | CommonFlags.Protected)) return false;
if (member.is(CommonFlags.Constructor)) {
// a generated constructor is ok
if (member.declaration.range != member.program.nativeRange) return false;
}
Expand All @@ -1355,7 +1355,7 @@ function indentText(text: string, indentLevel: i32, sb: string[], butFirst: bool
let length = text.length;
let pos = 0;
while (pos < length) {
if (text.charCodeAt(pos) == CharCode.LINEFEED) {
if (text.charCodeAt(pos) == CharCode.LineFeed) {
if (butFirst) butFirst = false;
else indent(sb, indentLevel);
sb.push(text.substring(lineStart, lineStart = pos + 1));
Expand Down
16 changes: 8 additions & 8 deletions src/bindings/tsd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export class TSDBuilder extends ExportsWalker {
indent(sb, this.indentLevel);
sb.push("get value(): ");
sb.push(tsType);
if (!element.is(CommonFlags.CONST)) {
if (!element.is(CommonFlags.Const)) {
sb.push(";\n");
indent(sb, this.indentLevel);
sb.push("set value(value: ");
Expand Down Expand Up @@ -101,7 +101,7 @@ export class TSDBuilder extends ExportsWalker {
for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) {
let memberName = unchecked(_keys[i]);
let member = assert(members.get(memberName));
if (member.kind != ElementKind.ENUMVALUE) continue;
if (member.kind != ElementKind.EnumValue) continue;
indent(sb, this.indentLevel);
sb.push("/** @type `i32` */\n");
indent(sb, this.indentLevel);
Expand Down Expand Up @@ -218,7 +218,7 @@ export class TSDBuilder extends ExportsWalker {
sb.push(moduleName);
} else {
sb.push("\"");
sb.push(escapeString(moduleName, CharCode.DOUBLEQUOTE));
sb.push(escapeString(moduleName, CharCode.DoubleQuote));
sb.push("\"");
}
sb.push(": unknown,\n");
Expand All @@ -235,8 +235,8 @@ export class TSDBuilder extends ExportsWalker {
if (members) {
for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) {
let member = _values[i];
if (member.isAny(CommonFlags.PRIVATE | CommonFlags.PROTECTED)) return false;
if (member.is(CommonFlags.CONSTRUCTOR)) {
if (member.isAny(CommonFlags.Private | CommonFlags.Protected)) return false;
if (member.is(CommonFlags.Constructor)) {
// a generated constructor is ok
if (member.declaration.range != this.program.nativeRange) return false;
}
Expand Down Expand Up @@ -314,7 +314,7 @@ export class TSDBuilder extends ExportsWalker {
}
}
}
if (type.is(TypeFlags.NULLABLE)) {
if (type.is(TypeFlags.Nullable)) {
sb.push(" | null");
}
return sb.join("");
Expand Down Expand Up @@ -347,7 +347,7 @@ export class TSDBuilder extends ExportsWalker {
for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) {
let memberName = _keys[i];
let member = assert(members.get(memberName));
if (member.kind != ElementKind.FIELD) continue;
if (member.kind != ElementKind.Field) continue;
let field = <Field>member;
sb.push(" /** @type `");
sb.push(field.type.toString());
Expand All @@ -367,7 +367,7 @@ export class TSDBuilder extends ExportsWalker {

fieldAcceptsUndefined(type: Type): bool {
if (type.isInternalReference) {
return type.is(TypeFlags.NULLABLE);
return type.is(TypeFlags.Nullable);
}
return true;
}
Expand Down
Loading