docs: public void defineOwnProperties(Context cx, ScriptableObject props) {
          Object[] ids = props.getIds(false, true);
          ScriptableObject[] descs = new ScriptableObject[ids.length];
          for (int i = 0, len = ids.length; i < len; ++i) {
              Object descObj = ScriptRuntime.getObjectElem(props, ids[i], cx);
              ScriptableObject desc = ensureScriptableObject(descObj);
              checkPropertyDefinition(desc);
              descs[i] = desc;
          }
          for (int i = 0, len = ids.length; i < len; ++i) {
              defineOwnProperty(cx, ids[i], descs[i]);
          }
      }