From f8f16110354f492102a3cf1efbf0a4d733932c2a Mon Sep 17 00:00:00 2001
From: Sam <sam.saffron@gmail.com>
Date: Thu, 11 Dec 2014 11:50:43 +1100
Subject: [PATCH] compatibility fixes

---
 .../discourse/helpers/cold-age-class.js.es6          |  4 ++--
 .../discourse/helpers/register-unbound.js.es6        |  4 +---
 .../discourse/lib/ember_compat_handlebars.js         | 12 ++++++++++++
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6 b/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6
index 1727448e6..7f5dbfd15 100644
--- a/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6
+++ b/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6
@@ -7,7 +7,7 @@ export function daysSinceEpoch(dt) {
   Converts a date to a coldmap class
 **/
 function coldAgeClass(property, options) {
-  var dt = Em.Handlebars.get(this, property, options);
+  var dt = Discourse.EmberCompatHandlebars.get(this, property, options);
   var className = (options && options.hash && options.hash.class !== undefined) ? options.hash.class : 'age';
 
   if (!dt) { return className; }
@@ -15,7 +15,7 @@ function coldAgeClass(property, options) {
   var startDate = (options && options.hash && options.hash.startDate) || new Date();
 
   if (typeof startDate === "string") {
-    startDate = Em.Handlebars.get(this, startDate, options);
+    startDate = Discourse.EmberCompatHandlebars.get(this, startDate, options);
   }
 
   // Show heat on age
diff --git a/app/assets/javascripts/discourse/helpers/register-unbound.js.es6 b/app/assets/javascripts/discourse/helpers/register-unbound.js.es6
index 5e356f892..729c86376 100644
--- a/app/assets/javascripts/discourse/helpers/register-unbound.js.es6
+++ b/app/assets/javascripts/discourse/helpers/register-unbound.js.es6
@@ -1,9 +1,7 @@
 function registerUnbound(name, fn) {
   Handlebars.registerHelper(name, function(property, options) {
 
-    if (options.types[0] === "ID") {
-      property = options.data.view.getStream(property).value();
-    }
+    property = Discourse.EmberCompatHandlebars.get(this, property, options);
 
     var params = {},
         hash = options.hash;
diff --git a/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js b/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js
index 458db7cc5..0fc916e85 100644
--- a/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js
+++ b/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js
@@ -96,6 +96,18 @@
     return template;
   };
 
+  RawHandlebars.get = function(_this, property, options){
+    var val;
+
+    if (options.types && options.data.view && options.types[0] === "ID") {
+      val = options.data.view.getStream(property).value();
+    } else {
+      val = Em.get(_this, property);
+    }
+
+    return val;
+  };
+
   Discourse.EmberCompatHandlebars = RawHandlebars;
 
 })();