private void WriteSetting(IScriptable target) { for (int i = 1; i <= MAX_INSTANCE_ID; ++i) { int id = base.MaxInstanceId + i; string name = GetInstanceIdName(id); object value = GetInstanceIdValue(id); ScriptableObject.PutProperty(target, name, value); } }
internal static void Init(IScriptable scope, bool zealed) { BuiltinError obj = new BuiltinError(); ScriptableObject.PutProperty(obj, "name", "Error"); ScriptableObject.PutProperty(obj, "message", ""); ScriptableObject.PutProperty(obj, "fileName", ""); ScriptableObject.PutProperty(obj, "lineNumber", 0); // TODO: Implement as non-ecma feature ScriptableObject.PutProperty(obj, "stack", "NOT IMPLEMENTED"); obj.ExportAsJSClass(MAX_PROTOTYPE_ID, scope, zealed , ScriptableObject.DONTENUM | ScriptableObject.READONLY | ScriptableObject.PERMANENT); }
protected internal string Render(object value, string templateScript) { try { string json = value.ToJson(); StringBuilder script = CreateBaseScript(); script.Append("dust.loadSource(compiledSource);"); script.Append(@"dust.render(templateName, JSON.parse(jsonData), function(err, result){ error = err; output = result; })"); EcmaScript.NET.Context ctx = EcmaScript.NET.Context.Enter(); ScriptableObject scope = ctx.InitStandardObjects(); SetParameters(scope); ScriptableObject.PutProperty(scope, "jsonData", json); ScriptableObject.PutProperty(scope, "compiledSource", Regex.Unescape(templateScript)); ScriptableObject.PutProperty(scope, "error", null); ScriptableObject.PutProperty(scope, "output", ""); ctx.EvaluateString(scope, script.ToString(), "render", 0, null); object error = ScriptableObject.GetProperty(scope, "error"); if (error != null) { throw new InvalidOperationException("An error occurred during dust.render: " + error.ToString()); } string result = ((string)ScriptableObject.GetProperty(scope, "output")); return(Regex.Unescape(result)); } catch (Exception ex) { string sig = "An error occurred rendering template ({0}) : {1}"; string msg = ex.Message; this.Exception = Args.Exception <DustException>(sig, Name, msg); return(string.Format(sig, Name, msg)); } }
private void SetCompiledScript() { try { StringBuilder script = CreateBaseScript(); script.Append("compiledTemplate = dust.compile(templateSource, templateName);"); EcmaScript.NET.Context ctx = EcmaScript.NET.Context.Enter(); ScriptableObject scope = ctx.InitStandardObjects(); SetParameters(scope); ScriptableObject.PutProperty(scope, "compiledTemplate", null); ctx.EvaluateString(scope, script.ToString(), "Compile", 0, null); CompiledScript = (string)ScriptableObject.GetProperty(scope, "compiledTemplate"); SetCompiledTemplate(); } catch (Exception ex) { CompiledScript = string.Format("alert('An error occurred compiling {0}: {1}');", Name, ex.Message); Exception = Args.Exception <DustException>("An error occurred compiling script ({0}) :{1}", ex, Name, ex.Message); } }
internal static BuiltinError make(Context cx, IScriptable scope, IdFunctionObject ctorObj, object [] args) { IScriptable proto = (IScriptable)(ctorObj.Get("prototype", ctorObj)); BuiltinError obj = new BuiltinError(); obj.SetPrototype(proto); obj.ParentScope = scope; if (args.Length >= 1) { ScriptableObject.PutProperty(obj, "message", ScriptConvert.ToString(args [0])); if (args.Length >= 2) { ScriptableObject.PutProperty(obj, "fileName", args [1]); if (args.Length >= 3) { int line = ScriptConvert.ToInt32(args [2]); ScriptableObject.PutProperty(obj, "lineNumber", (object)line); } } } return(obj); }
private void SetParameters(IScriptable scope) { ScriptableObject.PutProperty(scope, "templateSource", Source); ScriptableObject.PutProperty(scope, "templateName", Name); }
public void SetCliValue(string varName, object instance) { ScriptableObject.PutProperty(_scope, varName, instance); }