File tree Expand file tree Collapse file tree 3 files changed +19
-0
lines changed
tests/capi/luaL_loadbuffer_proto Expand file tree Collapse file tree 3 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -383,6 +383,9 @@ message BinaryOperator {
383
383
uint32 notEqual = 13 ;
384
384
uint32 and = 14 ;
385
385
uint32 or = 15 ;
386
+
387
+ /* Arithmetic operators (5.3+). */
388
+ uint32 idiv = 16 ;
386
389
}
387
390
}
388
391
Original file line number Diff line number Diff line change @@ -8,6 +8,8 @@ local not_nan_and_nil = function(val)
8
8
return (val ~= val or val == nil ) and DEFAULT_NUMBER or val
9
9
end
10
10
11
+ _G .always_number = always_number
12
+
11
13
local __add = function (v1 , v2 )
12
14
return always_number (v1 ) + always_number (v2 )
13
15
end
70
72
local __unm = function (v )
71
73
return - always_number (v )
72
74
end
75
+ local __idiv = load ([[
76
+ local v1, v2 = ...
77
+ return always_number(v1) // always_number(v2)
78
+ ]] )
73
79
74
80
debug.setmetatable (' string' , {
75
81
__add = __add ,
76
82
__call = __call ,
77
83
__div = __div ,
84
+ __idiv = __idiv ,
78
85
__index = __index ,
79
86
__mod = __mod ,
80
87
__mul = __mul ,
@@ -88,6 +95,7 @@ debug.setmetatable(0, {
88
95
__call = __call ,
89
96
__concat = __concat ,
90
97
__div = __div ,
98
+ __idiv = __idiv ,
91
99
__index = __index ,
92
100
__len = __len ,
93
101
__newindex = __newindex ,
@@ -97,6 +105,7 @@ debug.setmetatable(nil, {
97
105
__call = __call ,
98
106
__concat = __concat ,
99
107
__div = __div ,
108
+ __idiv = __idiv ,
100
109
__index = __index ,
101
110
__le = __le ,
102
111
__len = __len ,
@@ -112,6 +121,7 @@ debug.setmetatable(function() end, {
112
121
__add = __add ,
113
122
__concat = __concat ,
114
123
__div = __div ,
124
+ __idiv = __idiv ,
115
125
__index = __index ,
116
126
__le = __le ,
117
127
__len = __len ,
@@ -128,6 +138,7 @@ debug.setmetatable(true, {
128
138
__call = __call ,
129
139
__concat = __concat ,
130
140
__div = __div ,
141
+ __idiv = __idiv ,
131
142
__index = __index ,
132
143
__le = __le ,
133
144
__len = __len ,
@@ -144,6 +155,7 @@ local table_mt = {
144
155
__call = __call ,
145
156
__concat = __concat ,
146
157
__div = __div ,
158
+ __idiv = __idiv ,
147
159
__le = __le ,
148
160
__len = __len ,
149
161
__lt = __lt ,
Original file line number Diff line number Diff line change @@ -1157,6 +1157,10 @@ PROTO_TOSTRING(BinaryOperator, op)
1157
1157
return " *" ;
1158
1158
case BinopType::kDiv :
1159
1159
return " /" ;
1160
+ #if LUA_VERSION_NUM >= 503
1161
+ case BinopType::kIDiv :
1162
+ return " //" ;
1163
+ #endif
1160
1164
case BinopType::kExp :
1161
1165
return " ^" ;
1162
1166
case BinopType::kMod :
You can’t perform that action at this time.
0 commit comments