diff options
author | Li Jin <dragon-fly@qq.com> | 2025-01-29 12:20:12 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2025-01-29 12:20:21 +0800 |
commit | 8a771320fa37d6069a1ef4a9ac30ac6243149e26 (patch) | |
tree | dcf65dae13d916eac17b34696d603e80e50a281f | |
parent | 891992d0580c1b6959535450cd79f2df1407ac93 (diff) | |
download | yuescript-8a771320fa37d6069a1ef4a9ac30ac6243149e26.tar.gz yuescript-8a771320fa37d6069a1ef4a9ac30ac6243149e26.tar.bz2 yuescript-8a771320fa37d6069a1ef4a9ac30ac6243149e26.zip |
Fixed issue #183 and issue #185.
-rw-r--r-- | src/yuescript/yue_compiler.cpp | 4 | ||||
-rw-r--r-- | src/yuescript/yuescript.h | 27 |
2 files changed, 14 insertions, 17 deletions
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 2c0b0f9..eb12b3f 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp | |||
@@ -75,7 +75,7 @@ static std::unordered_set<std::string> Metamethods = { | |||
75 | "close"s // Lua 5.4 | 75 | "close"s // Lua 5.4 |
76 | }; | 76 | }; |
77 | 77 | ||
78 | const std::string_view version = "0.26.1"sv; | 78 | const std::string_view version = "0.26.2"sv; |
79 | const std::string_view extension = "yue"sv; | 79 | const std::string_view extension = "yue"sv; |
80 | 80 | ||
81 | class CompileError : public std::logic_error { | 81 | class CompileError : public std::logic_error { |
@@ -7078,7 +7078,7 @@ private: | |||
7078 | } else { | 7078 | } else { |
7079 | for (const auto& exp : tmp) { | 7079 | for (const auto& exp : tmp) { |
7080 | _buf << exp << " == "sv << varName; | 7080 | _buf << exp << " == "sv << varName; |
7081 | if (exp != tmp.back()) { | 7081 | if (&exp != &tmp.back()) { |
7082 | _buf << " or "sv; | 7082 | _buf << " or "sv; |
7083 | } | 7083 | } |
7084 | } | 7084 | } |
diff --git a/src/yuescript/yuescript.h b/src/yuescript/yuescript.h index f6d12dc..ebe90cb 100644 --- a/src/yuescript/yuescript.h +++ b/src/yuescript/yuescript.h | |||
@@ -164,23 +164,20 @@ local function yue_traceback(err, level) | |||
164 | stp.simplified = yue.options.simplified | 164 | stp.simplified = yue.options.simplified |
165 | return stp.stacktrace(err, level) | 165 | return stp.stacktrace(err, level) |
166 | end | 166 | end |
167 | local function yue_require(name) | ||
168 | insert_loader() | ||
169 | local success, res = xpcall(function() | ||
170 | return require(name) | ||
171 | end, function(err) | ||
172 | return yue_traceback(err, 3) | ||
173 | end) | ||
174 | if success then | ||
175 | return res | ||
176 | else | ||
177 | print(res) | ||
178 | return nil | ||
179 | end | ||
180 | end | ||
181 | setmetatable(yue, { | 167 | setmetatable(yue, { |
182 | __call = function(self, name) | 168 | __call = function(self, name) |
183 | return self.require(name) | 169 | insert_loader() |
170 | local success, res = xpcall(function() | ||
171 | return require(name) | ||
172 | end, function(err) | ||
173 | return yue_traceback(err, 3) | ||
174 | end) | ||
175 | if success then | ||
176 | return res | ||
177 | else | ||
178 | print(res) | ||
179 | return nil | ||
180 | end | ||
184 | end | 181 | end |
185 | }) | 182 | }) |
186 | local function dump(what) | 183 | local function dump(what) |