Skip to content

Instantly share code, notes, and snippets.

@joliss
Created June 30, 2012 18:22
Show Gist options
  • Save joliss/3024937 to your computer and use it in GitHub Desktop.
Save joliss/3024937 to your computer and use it in GitHub Desktop.
Ember get/getPath unification benchmark
diff --git a/packages/ember-metal/lib/accessors.js b/packages/ember-metal/lib/accessors.js
index 059501c..1c4b013 100644
--- a/packages/ember-metal/lib/accessors.js
+++ b/packages/ember-metal/lib/accessors.js
@@ -54,6 +54,9 @@ var basicSet = function set(obj, keyName, value) {
/** @private */
get = function(obj, keyName) {
Ember.assert("You need to provide an object and key to `get`.", !!obj && keyName);
+ if (keyName.indexOf('.') !== -1) {
+ return Ember.getPath(obj, keyName);
+ }
var desc = meta(obj, false).descs[keyName];
if (desc) { return desc.get(obj, keyName); }
@@ -63,6 +66,9 @@ get = function(obj, keyName) {
/** @private */
set = function(obj, keyName, value) {
Ember.assert("You need to provide an object and key to `set`.", !!obj && keyName !== undefined);
+ if (keyName.indexOf('.') !== -1) {
+ return Ember.setPath(obj, keyName);
+ }
var desc = meta(obj, false).descs[keyName];
if (desc) { desc.set(obj, keyName, value); }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment