private Boolean TryGetEntry([NotNull] String name, out Object result) { if (name == null) throw new ArgumentNullException("name"); Object value; if (!_store.TryGetValue(name, out value)) { result = new JsValue(); return false; } var subStore = value as IDictionary<String, Object>; if (subStore != null) { result = new JsStore(subStore); } else { result = new JsValue(value.GetType(), value); } return true; }