internal void CreateDataPropertyOrThrow([NotNull] ScriptObject scriptObject, ScriptValue property, ScriptValue value)
        {
            //https://tc39.github.io/ecma262/#sec-createdatapropertyorthrow
            Debug.Assert(IsPropertyKey(property));

            var success = scriptObject.CreateDataProperty(property, value);

            if (!success)
            {
                throw CreateTypeError();
            }
        }