public void InjectGlobalProperty(IValue value, string identifier, bool readOnly) { if (!Utils.IsValidIdentifier(identifier)) { throw new ArgumentException("Invalid identifier", "identifier"); } if (_globalScope == null) { _globalScope = new SymbolScope(); TypeManager.RegisterType("__globalPropertiesHolder", typeof(PropertyBag)); _injectedProperties = new PropertyBag(); _symbolScopes.PushScope(_globalScope); RegisterObject(_injectedProperties); } _globalScope.DefineVariable(identifier, SymbolType.ContextProperty); _injectedProperties.Insert(value, identifier, true, !readOnly); }