aboutsummaryrefslogtreecommitdiff
path: root/src/js_lexer.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-04-30 15:34:31 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-04-30 15:34:31 -0700
commit2961b7c8cac1033c1f039272038fe309e3fe6c01 (patch)
tree38f0b29a16099b1e1ff779d62208122a7b96f72e /src/js_lexer.zig
parentcb639afb57a8caf002a50ae5c0ecd42b8ddeb612 (diff)
downloadbun-2961b7c8cac1033c1f039272038fe309e3fe6c01.tar.gz
bun-2961b7c8cac1033c1f039272038fe309e3fe6c01.tar.zst
bun-2961b7c8cac1033c1f039272038fe309e3fe6c01.zip
inching closure
Former-commit-id: 107310d785ee9dfbd258a1fc015976a76cdcef82
Diffstat (limited to 'src/js_lexer.zig')
-rw-r--r--src/js_lexer.zig35
1 files changed, 21 insertions, 14 deletions
diff --git a/src/js_lexer.zig b/src/js_lexer.zig
index bf2f6cef2..d61850057 100644
--- a/src/js_lexer.zig
+++ b/src/js_lexer.zig
@@ -21,6 +21,8 @@ pub const PropertyModifierKeyword = tables.PropertyModifierKeyword;
pub const TypescriptStmtKeyword = tables.TypescriptStmtKeyword;
pub const TypeScriptAccessibilityModifier = tables.TypeScriptAccessibilityModifier;
+pub var emptyJavaScriptString = ([_]u16{0});
+
pub const JSONOptions = struct {
allow_comments: bool = false,
allow_trailing_commas: bool = false,
@@ -906,12 +908,13 @@ pub const Lexer = struct {
}
pub fn unexpected(lexer: *@This()) void {
- var found: string = undefined;
- if (lexer.start == lexer.source.contents.len) {
- found = "end of file";
- } else {
- found = lexer.raw();
- }
+ const found = finder: {
+ if (lexer.start == lexer.source.contents.len) {
+ break :finder "end of file";
+ } else {
+ break :finder lexer.raw();
+ }
+ };
lexer.addRangeError(lexer.range(), "Unexpected {s}", .{found}, true);
}
@@ -925,10 +928,14 @@ pub const Lexer = struct {
}
pub fn expectedString(self: *@This(), text: string) void {
- var found = self.raw();
- if (self.source.contents.len == self.start) {
- found = "end of file";
- }
+ const found = finder: {
+ if (self.source.contents.len != self.start) {
+ break :finder self.raw();
+ } else {
+ break :finder "end of file";
+ }
+ };
+
self.addRangeError(self.range(), "Expected {s} but found {s}", .{ text, found }, true);
}
@@ -969,7 +976,7 @@ pub const Lexer = struct {
}
pub fn initGlobalName(log: *logger.Log, source: *logger.Source, allocator: *std.mem.Allocator) !@This() {
- var empty_string_literal: JavascriptString = undefined;
+ var empty_string_literal: JavascriptString = emptyJavaScriptString;
var lex = @This(){
.log = log,
.source = source.*,
@@ -986,7 +993,7 @@ pub const Lexer = struct {
}
pub fn initTSConfig(log: *logger.Log, source: *logger.Source, allocator: *std.mem.Allocator) !@This() {
- var empty_string_literal: JavascriptString = undefined;
+ var empty_string_literal: JavascriptString = emptyJavaScriptString;
var lex = @This(){
.log = log,
.source = source.*,
@@ -1006,7 +1013,7 @@ pub const Lexer = struct {
}
pub fn initJSON(log: *logger.Log, source: *logger.Source, allocator: *std.mem.Allocator) !@This() {
- var empty_string_literal: JavascriptString = undefined;
+ var empty_string_literal: JavascriptString = &emptyJavaScriptString;
var lex = @This(){
.log = log,
.source = source.*,
@@ -1026,7 +1033,7 @@ pub const Lexer = struct {
}
pub fn init(log: *logger.Log, source: *logger.Source, allocator: *std.mem.Allocator) !@This() {
- var empty_string_literal: JavascriptString = undefined;
+ var empty_string_literal: JavascriptString = &emptyJavaScriptString;
var lex = @This(){
.log = log,
.source = source.*,