(obj, path, setValue, fullExp)
| 13955 | ////////////////////////////////////////////////// |
| 13956 | |
| 13957 | function setter(obj, path, setValue, fullExp) { |
| 13958 | ensureSafeObject(obj, fullExp); |
| 13959 | |
| 13960 | var element = path.split('.'), key; |
| 13961 | for (var i = 0; element.length > 1; i++) { |
| 13962 | key = ensureSafeMemberName(element.shift(), fullExp); |
| 13963 | var propertyObj = ensureSafeObject(obj[key], fullExp); |
| 13964 | if (!propertyObj) { |
| 13965 | propertyObj = {}; |
| 13966 | obj[key] = propertyObj; |
| 13967 | } |
| 13968 | obj = propertyObj; |
| 13969 | } |
| 13970 | key = ensureSafeMemberName(element.shift(), fullExp); |
| 13971 | ensureSafeObject(obj[key], fullExp); |
| 13972 | obj[key] = setValue; |
| 13973 | return setValue; |
| 13974 | } |
| 13975 | |
| 13976 | var getterFnCacheDefault = createMap(); |
| 13977 | var getterFnCacheExpensive = createMap(); |
no test coverage detected