docs: protected boolean sameValue(Object newValue, Object currentValue) {
          if (newValue == NOT_FOUND) {
              return true;
          }
          if (currentValue == NOT_FOUND) {
              currentValue = Undefined.instance;
          }
          // Special rules for numbers: NaN is considered the same value,
          // while zeroes with different signs are considered different.
          if (currentValue instanceof Number && newValue instanceof Number) {
              double d1 = ((Number)currentValue).doubleValue();
              double d2 = ((Number)newValue).doubleValue();
              if (Double.isNaN(d1) && Double.isNaN(d2)) {
                  return true;
              }
              if (d1 == 0.0 && Double.doubleToLongBits(d1) != Double.doubleToLongBits(d2)) {
                  return false;
              }
          }
          return ScriptRuntime.shallowEq(currentValue, newValue);
      }