use strict by default in custom iterations, polyfill added for basic ES5/6 methods