_setPendingPropertyOrPath(path, value, shouldNotify, isPathNotification) {
      if (isPathNotification ||
          root$0(Array.isArray(path) ? path[0] : path) !== path) {
        // Dirty check changes being set to a path against the actual object,
        // since this is the entry point for paths into the system; from here
        // the only dirty checks are against the `__dataTemp` cache to prevent
        // duplicate work in the same turn only. Note, if this was a notification
        // of a change already set to a path (isPathNotification: true),
        // we always let the change through and skip the `set` since it was
        // already dirty checked at the point of entry and the underlying
        // object has already been updated
        if (!isPathNotification) {
          let old = get$0(this, path);
          path = /** @type {string} */ (set$0(this, path, value));
          // Use property-accessor's simpler dirty check
          if (!path || !super._shouldPropertyChange(path, value, old)) {
            return false;
          }
        }
        this.__dataHasPaths = true;
        if (this._setPendingProperty(/**@type{string}*/(path), value, shouldNotify)) {
          computeLinkedPaths(this, path, value);
          return true;
        }
      } else {
        if (this.__dataHasAccessor && this.__dataHasAccessor[path]) {
          return this._setPendingProperty(/**@type{string}*/(path), value, shouldNotify);
        } else {
          this[path] = value;
        }
      }
      return false;
    }
/**
     * Sets a pending property or path.  If the root property of the path in
     * question had no accessor, the path is set, otherwise it is enqueued
     * via `_setPendingProperty`.
     *
     * This function isolates relatively expensive functionality necessary
     * for the public API (`set`, `setProperties`, `notifyPath`, and property
     * change listeners via {{...}} bindings), such that it is only done
     * when paths enter the system, and not at every propagation step.  It
     * also sets a `__dataHasPaths` flag on the instance which is used to
     * fast-path slower path-matching code in the property effects host paths.
     *
     * `path` can be a path string or array of path parts as accepted by the
     * public API.
     *
     * @param {string | !Array<number|string>} path Path to set
     * @param {*} value Value to set
     * @param {boolean=} shouldNotify Set to true if this change should
     *  cause a property notification event dispatch
     * @param {boolean=} isPathNotification If the path being set is a path
     *   notification of an already changed value, as opposed to a request
     *   to set and notify the change.  In the latter `false` case, a dirty
     *   check is performed and then the value is set to the path before
     *   enqueuing the pending property change.
     * @return {boolean} Returns true if the property/path was enqueued in
     *   the pending changes bag.
     * @protected
     */
Sets a pending property or path.  If the root property of the path in
question had no accessor, the path is set, otherwise it is enqueued
via `_setPendingProperty`.



`path` can be a path string or array of path parts as accepted by the
public API.

@param {string | !Array} path Path to set
@param {*} value Value to set
@param {boolean=} shouldNotify Set to true if this change should
cause a property notification event dispatch
@param {boolean=} isPathNotification If the path being set is a path
notification of an already changed value, as opposed to a request
to set and notify the change.  In the latter `false` case, a dirty
check is performed and then the value is set to the path before
enqueuing the pending property change.
@return {boolean} Returns true if the property/path was enqueued in
the pending changes bag.
@protected
Sets a pending property or path . If the root property of the path in question had no accessor the path is set otherwise it is enqueued via ` _setPendingProperty ` . ` path ` can be a path string or array of path parts as accepted by the public API . @param { string | !Array } path Path to set @param { * } value Value to set @param { boolean = } shouldNotify Set to true if this change should cause a property notification event dispatch @param { boolean = } isPathNotification If the path being set is a path notification of an already changed value as opposed to a request to set and notify the change . In the latter ` false ` case a dirty check is performed and then the value is set to the path before enqueuing the pending property change . @return { boolean } Returns true if the property / path was enqueued in the pending changes bag . @protected
_setPendingPropertyOrPath(path, value, shouldNotify, isPathNotification) {
      if (isPathNotification ||
          root$0(Array.isArray(path) ? path[0] : path) !== path) {
        if (!isPathNotification) {
          let old = get$0(this, path);
          path =  (set$0(this, path, value));
          if (!path || !super._shouldPropertyChange(path, value, old)) {
            return false;
          }
        }
        this.__dataHasPaths = true;
        if (this._setPendingProperty((path), value, shouldNotify)) {
          computeLinkedPaths(this, path, value);
          return true;
        }
      } else {
        if (this.__dataHasAccessor && this.__dataHasAccessor[path]) {
          return this._setPendingProperty((path), value, shouldNotify);
        } else {
          this[path] = value;
        }
      }
      return false;
    }
_setPendingPropertyOrPath ( path , value , shouldNotify , isPathNotification ) { if ( isPathNotification || root$0 ( Array . isArray ( path ) ? path [ 0 ] : path ) !== path ) { if ( ! isPathNotification ) { let old = get$0 ( this , path ) ; path = ( set$0 ( this , path , value ) ) ; if ( ! path || ! super . _shouldPropertyChange ( path , value , old ) ) { return false ; } } this . __dataHasPaths = true ; if ( this . _setPendingProperty ( ( path ) , value , shouldNotify ) ) { computeLinkedPaths ( this , path , value ) ; return true ; } } else { if ( this . __dataHasAccessor && this . __dataHasAccessor [ path ] ) { return this . _setPendingProperty ( ( path ) , value , shouldNotify ) ; } else { this [ path ] = value ; } } return false ; }
Sets a pending property or path.
Sets a pending property or path .
// Dirty check changes being set to a path against the actual object, // since this is the entry point for paths into the system; from here // the only dirty checks are against the `__dataTemp` cache to prevent // duplicate work in the same turn only. Note, if this was a notification // of a change already set to a path (isPathNotification: true), // we always let the change through and skip the `set` since it was // already dirty checked at the point of entry and the underlying // object has already been updated /** @type {string} */ // Use property-accessor's simpler dirty check /**@type{string}*/ /**@type{string}*/