From e465750cd2846a8e5075c2b460db8010dda282bb Mon Sep 17 00:00:00 2001 From: jdalton Date: Wed, 13 May 2015 00:51:30 -0700 Subject: [PATCH] Fix failing `_.has` tests in Rhino. --- lodash.src.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lodash.src.js b/lodash.src.js index dfd267195..cc8ca6040 100644 --- a/lodash.src.js +++ b/lodash.src.js @@ -9666,17 +9666,21 @@ return false; } var result = hasOwnProperty.call(object, path); + if (!result && !isKey(path)) { + path = toPath(path); + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + path = last(path); + result = hasOwnProperty.call(object, path); + } if (result) { return result; } - if (isKey(path)) { - var length = object.length; - return isLength(length) && isIndex(path, length) && - (isArray(object) || isArguments(object) || isString(object)); - } - path = toPath(path); - object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); - return object != null && hasOwnProperty.call(object, last(path)); + var length = object.length; + return isLength(length) && isIndex(path, length) && + (isArray(object) || isArguments(object) || isString(object)); } /**