diff --git a/src/vm/wren_compiler.c b/src/vm/wren_compiler.c index d90273bf..c6a968c0 100644 --- a/src/vm/wren_compiler.c +++ b/src/vm/wren_compiler.c @@ -3420,6 +3420,12 @@ void definition(Compiler* compiler) ObjFn* wrenCompile(WrenVM* vm, ObjModule* module, const char* source, bool isExpression, bool printErrors) { + // Skip potential UTF-8 BOM + if (strncmp(source, "\xEF\xBB\xBF", 3) == 0) + { + source += 3; + } + Parser parser; parser.vm = vm; parser.module = module; @@ -3447,7 +3453,7 @@ ObjFn* wrenCompile(WrenVM* vm, ObjModule* module, const char* source, nextToken(&parser); int numExistingVariables = module->variables.count; - + Compiler compiler; initCompiler(&compiler, &parser, NULL, false); ignoreNewlines(&compiler); diff --git a/test/regression/520.wren b/test/regression/520.wren new file mode 100644 index 00000000..6eddf921 --- /dev/null +++ b/test/regression/520.wren @@ -0,0 +1,2 @@ +// This file should have a UTF-8 byte order mark +System.print("ok") // expect: ok