How to inherit native Promise?

/**
 * @class   MyPromise
 * @extends Promise
 */
var MyPromise = function (executor) {
  var promise = new Promise(executor);
  promise.__proto__ = this.__proto__;
  return promise;
};
 
MyPromise.prototype = Object.create(Promise.prototype, { constructor: { value: MyPromise } });
 
MyPromise.prototype.done = function (callback) {
  this.then(callback);
  return this;
};
 
MyPromise.prototype.fail = function (callback) {
  this['catch'](callback);
  return this;
};
 
MyPromise.prototype.always = function (callback) {
  this.then(callback, callback);
  return this;
};
 
MyPromise.all = Promise.all;
MyPromise.cast = Promise.cast;
MyPromise.reject = Promise.reject;
MyPromise.resolve = Promise.resolve;

http://code.re/5TC

Sortable v0.4.0: Saving and restoring of the sort.

https://github.com/RubaXa/Sortable/tree/dev#store

new Sortable(el, {
    group: "localStorage",
    store: {
        /**
         * Get the order of elements. Called once during initialization.
         * @param   {Sortable}  sortable
         * @retruns {Array}
         */
        get: function (sortable) {
            var order = localStorage.getItem(sortable.options.group);
            return order ? order.split('|') : [];
        },

        /**
         * Save the order of elements. Called every time at the drag end.
         * @param {Sortable}  sortable
         */
        set: function (sortable) {
            var order = sortable.toArray();
            localStorage.setItem(sortable.options.group, order.join('|'));
        }
    }
})