Last active
August 5, 2020 16:43
-
-
Save sukima/ac8f21fe08f4090f3a7669ffe3d7f26c to your computer and use it in GitHub Desktop.
New Twiddle
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Controller from '@ember/controller'; | |
import EmberObject, { action, computed } from '@ember/object'; | |
const PROPERTY_BAG = Symbol('PROPERTY_BAG'); | |
function legacyTrackedVanilla(target, key, descriptor) { | |
target[PROPERTY_BAG] = target[PROPERTY_BAG] ?? EmberObject.create(); | |
target[PROPERTY_BAG].set(key, descriptor.initializer?.()); | |
descriptor.get = function() { | |
console.log(1); // NEVER CALLED | |
return target[PROPERTY_BAG].get(key); | |
}; | |
descriptor.set = function(value) { | |
console.log(2); // NEVER CALLED | |
this.notifyPropertyChange(key); | |
return target[PROPERTY_BAG].set(key, value); | |
}; | |
return descriptor; | |
} | |
function legacyTrackedComputed(target, key, descriptor) { | |
target[PROPERTY_BAG] = target[PROPERTY_BAG] ?? EmberObject.create(); | |
target[PROPERTY_BAG].set(key, descriptor.initializer?.()); | |
descriptor.value = computed({ | |
get() { | |
console.log(1); // NEVER CALLED | |
return target[PROPERTY_BAG].get(key); | |
}, | |
set(_, value) { | |
console.log(2); // NEVER CALLED | |
this.notifyPropertyChange(key); | |
return target[PROPERTY_BAG].set(key, value); | |
}, | |
}); | |
return descriptor; | |
} | |
export default class ApplicationController extends Controller { | |
@legacyTrackedVanilla testVanillaDecorator = 1; | |
@legacyTrackedComputed testComputedDecorator = 1; | |
@action | |
testIt() { | |
this.testVanillaDecorator = this.testVanillaDecorator + 1; | |
this.testComputedDecorator = this.testComputedDecorator + 1; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": "0.17.1", | |
"EmberENV": { | |
"FEATURES": {}, | |
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false, | |
"_APPLICATION_TEMPLATE_WRAPPER": true, | |
"_JQUERY_INTEGRATION": true | |
}, | |
"options": { | |
"use_pods": false, | |
"enable-testing": false | |
}, | |
"dependencies": { | |
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js", | |
"ember": "3.12.2", | |
"ember-template-compiler": "3.12.2", | |
"ember-testing": "3.12.2" | |
}, | |
"addons": { | |
"@glimmer/component": "1.0.0" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment