Skip to content

Commit

Permalink
BREAKING CHANGE: Refactor enum identifiers to TitleCase and apply som…
Browse files Browse the repository at this point in the history
…e changes in AST nodes (AssemblyScript#2501)
  • Loading branch information
MaxGraey authored Oct 23, 2022
1 parent 0d39f0f commit a7d10ba
Show file tree
Hide file tree
Showing 24 changed files with 4,318 additions and 4,300 deletions.
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

0 comments on commit a7d10ba

Please sign in to comment.