Sha256: c9304fe2760b7de1d4b1ea49bbe63e7afd3b80e2a258a96d0ee953f6414769ec

Contents?: true

Size: 800 Bytes

Versions: 1

Compression:

Stored size: 800 Bytes

Contents

import { meta as metaFor, peekMeta } from '@ember/-internals/meta';
import { makeChainNode } from './chains';
export function watchPath(obj, keyPath, meta) {
    let m = meta === undefined ? metaFor(obj) : meta;
    let counter = m.peekWatching(keyPath);
    m.writeWatching(keyPath, counter + 1);
    if (counter === 0) {
        // activate watching first time
        m.writableChains(makeChainNode).add(keyPath);
    }
}
export function unwatchPath(obj, keyPath, meta) {
    let m = meta === undefined ? peekMeta(obj) : meta;
    if (m === undefined) {
        return;
    }
    let counter = m.peekWatching(keyPath);
    if (counter > 0) {
        m.writeWatching(keyPath, counter - 1);
        if (counter === 1) {
            m.writableChains(makeChainNode).remove(keyPath);
        }
    }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
discourse-ember-source-3.6.0.0 dist/es/@ember/-internals/metal/lib/watch_path.js