public ScriptMap NewCopy() { var ret = new ScriptMap(m_Script); foreach (var pair in m_Objects) { ret.m_Objects[pair.Key] = pair.Value; } return(ret); }
public override ScriptObject Clone(bool deep) { var ret = new ScriptMap(m_Script); if (deep) { foreach (var pair in m_Objects) { var value = pair.Value; if (value.valueType == ScriptValue.scriptValueType) { var scriptObject = value.scriptValue; if (scriptObject != this && (scriptObject is ScriptArray || scriptObject is ScriptMap)) { ret.m_Objects[pair.Key] = new ScriptValue(scriptObject.Clone(true)); } else { ret.m_Objects[pair.Key] = value; } } else { ret.m_Objects[pair.Key] = value; } } } else { foreach (var pair in m_Objects) { ret.m_Objects[pair.Key] = pair.Value; } } return(ret); }