canjs / can-observe

Observable objects
https://canjs.com/doc/can-observe.html
MIT License
20 stars 2 forks source link

Some symbols on observed object don't have descriptors #54

Closed matthewp closed 6 years ago

matthewp commented 6 years ago

Example test:

QUnit.test("Symbols can be retrieved with getOwnPropertyDescriptor", function() {
    var o = observe({});

    Object.getOwnPropertySymbols(o).forEach(function(sym){
        var desc = Object.getOwnPropertyDescriptor(o, sym);
        QUnit.ok(!!desc, "There is a descriptor");
    });
});

https://github.com/canjs/can-observe/tree/symbols-descriptors

This happens because we define a ownKeys trap that includes stuff not on the target: https://github.com/canjs/can-observe/blob/910c576fdd1ee20a2eec5c9ee4dddc22c334d1c6/src/-make-object.js#L199