public function pushValue($value)
    {
        $old = $this->value;
        if (!$this->stackable) {
            $this->setValue($value);
            return;
        }
        if (!is_array($this->value)) {
            $this->value = [$this->value, $value];
        } else {
            $f = false;
            foreach ($this->value as $k => $v) {
                if (!is_int($k)) {
                    $f = true;
                    break;
                }
            }
            if (!$f) {
                $this->value[] = $value;
            } else {
                $this->value = [$this->value, $value];
            }
        }
        $this->onUpdate($old);
    }