From 49363961dff118fde38ddc256dd26c3f972beb5e Mon Sep 17 00:00:00 2001 From: David Hagler Date: Tue, 17 Mar 2015 15:18:17 -0500 Subject: [PATCH] Removed forEach function call to improve compatibility with older browsers (< IE8) --- slug.js | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/slug.js b/slug.js index fb95d99..0ea71ec 100644 --- a/slug.js +++ b/slug.js @@ -16,17 +16,25 @@ function slug(string, opts) { opts = {replacement:opts}; opts.mode = opts.mode || slug.defaults.mode; var defaults = slug.defaults.modes[opts.mode]; - ['replacement','multicharmap','charmap','remove'].forEach(function (key) { - opts[key] = opts[key] || defaults[key]; - }); + + opts['replacement'] = opts['replacement'] || defaults['replacement']; + opts['multicharmap'] = opts['multicharmap'] || defaults['multicharmap']; + opts['charmap'] = opts['charmap'] || defaults['charmap']; + opts['remove'] = opts['remove'] || defaults['remove']; + if ('undefined' === typeof opts.symbols) opts.symbols = defaults.symbols; + var lengths = []; - Object.keys(opts.multicharmap).forEach(function (key) { + for (var key in opts.multicharmap) { + if (!opts.multicharmap.hasOwnProperty(key)) + continue; + var len = key.length; if (lengths.indexOf(len) === -1) lengths.push(len); - }); + } + var code, unicode, result = ""; for (var char, i = 0, l = string.length; i < l; i++) { char = string[i]; if (!lengths.some(function (len) { @@ -161,18 +169,25 @@ slug.defaults.modes = { if (typeof define !== 'undefined' && define.amd) { // AMD // dont load symbols table in the browser - Object.keys(slug.defaults.modes).forEach(function (key) { + + for (var key in slug.defaults.modes) { + if (!slug.defaults.modes.hasOwnProperty(key)) + continue; + slug.defaults.modes[key].symbols = false; - }); + } define([], function () {return slug}); } else if (typeof module !== 'undefined' && module.exports) { // CommonJS symbols(); // preload symbols table module.exports = slug; } else { // Script tag // dont load symbols table in the browser - Object.keys(slug.defaults.modes).forEach(function (key) { + for (var key in slug.defaults.modes) { + if (!slug.defaults.modes.hasOwnProperty(key)) + continue; + slug.defaults.modes[key].symbols = false; - }); + } root.slug = slug; }