From 0cc2b86fb7fec110bf8abd7e37c4cc0fd2530414 Mon Sep 17 00:00:00 2001 From: Alex Gyoshev Date: Fri, 29 Aug 2014 09:13:22 +0300 Subject: [PATCH] Honor safe flag when retrieving cache. Closes telerik/kendo-ui-core#278. --- src/kendo.core.js | 3 ++- tests/core/accessor.js | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/kendo.core.js b/src/kendo.core.js index ae01f49a5f2..798c6865492 100644 --- a/src/kendo.core.js +++ b/src/kendo.core.js @@ -2506,7 +2506,8 @@ function pad(number, digits, end) { }, getter: function(expression, safe) { - return getterCache[expression] = getterCache[expression] || new Function("d", "return " + kendo.expr(expression, safe)); + var key = expression + safe; + return getterCache[key] = getterCache[key] || new Function("d", "return " + kendo.expr(expression, safe)); }, setter: function(expression) { diff --git a/tests/core/accessor.js b/tests/core/accessor.js index 66b0bd42faf..92055550136 100644 --- a/tests/core/accessor.js +++ b/tests/core/accessor.js @@ -100,6 +100,12 @@ test("getter access property with safe options type is correct", function() { equal(getter("foo.bar", true)(dataItem), 0); }); +test("getter cache honors safe flag", function() { + var dataItem = {}; + getter("foo.bar"); + equal(getter("foo.bar", true)(dataItem), undefined); +}); + test("setter creates function which sets the specified expression", function() { var data = { foo: "foo" };