Skip to content

Commit ccbc3ec

Browse files
authored
Optimize construction of array vals from vectors (emscripten-core#7575)
1 parent 63543ae commit ccbc3ec

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

  • system/include/emscripten

system/include/emscripten/val.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,14 +297,20 @@ namespace emscripten {
297297
return val(internal::_emval_new_array());
298298
}
299299

300-
template<typename T>
301-
static val array(const std::vector<T> vec) {
300+
template<typename Iter>
301+
static val array(Iter begin, Iter end) {
302302
val new_array = array();
303-
for(auto it = vec.begin(); it != vec.end(); it++)
303+
for (auto it = begin; it != end; ++it) {
304304
new_array.call<void>("push", *it);
305+
}
305306
return new_array;
306307
}
307308

309+
template<typename T>
310+
static val array(const std::vector<T>& vec) {
311+
return array(vec.begin(), vec.end());
312+
}
313+
308314
static val object() {
309315
return val(internal::_emval_new_object());
310316
}

0 commit comments

Comments
 (0)