aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2025-01-29 12:20:12 +0800
committerLi Jin <dragon-fly@qq.com>2025-01-29 12:20:21 +0800
commit8a771320fa37d6069a1ef4a9ac30ac6243149e26 (patch)
treedcf65dae13d916eac17b34696d603e80e50a281f /src
parent891992d0580c1b6959535450cd79f2df1407ac93 (diff)
downloadyuescript-8a771320fa37d6069a1ef4a9ac30ac6243149e26.tar.gz
yuescript-8a771320fa37d6069a1ef4a9ac30ac6243149e26.tar.bz2
yuescript-8a771320fa37d6069a1ef4a9ac30ac6243149e26.zip
Fixed issue #183 and issue #185.
Diffstat (limited to 'src')
-rw-r--r--src/yuescript/yue_compiler.cpp4
-rw-r--r--src/yuescript/yuescript.h27
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
78const std::string_view version = "0.26.1"sv; 78const std::string_view version = "0.26.2"sv;
79const std::string_view extension = "yue"sv; 79const std::string_view extension = "yue"sv;
80 80
81class CompileError : public std::logic_error { 81class 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)
166end 166end
167local 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
180end
181setmetatable(yue, { 167setmetatable(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})
186local function dump(what) 183local function dump(what)