public void WriteInstance(ObjectInstance jsObject, IResultModifier modifier = null) { _writer.StartWriteObject(); modifier?.Modify(jsObject); WriteRawObjectProperties(jsObject); _writer.WriteObjectEnd(); }
private void WriteInstance(ObjectInstance jsObject, IResultModifier modifier, bool isRoot, bool filterProperties) { _writer.StartWriteObject(); modifier?.Modify(jsObject); if (jsObject is BlittableObjectInstance blittableJsObject) { WriteBlittableInstance(blittableJsObject, isRoot, filterProperties); } else { WriteJsInstance(jsObject, isRoot, filterProperties); } _writer.WriteObjectEnd(); }
public static BlittableJsonReaderObject Translate(JsonOperationContext context, Engine scriptEngine, ObjectInstance objectInstance, IResultModifier modifier = null, BlittableJsonDocumentBuilder.UsageMode usageMode = BlittableJsonDocumentBuilder.UsageMode.None) { if (objectInstance == null) { return(null); } if (objectInstance is BlittableObjectInstance boi && boi.Changed == false) { return(boi.Blittable.Clone(context)); } using (var writer = new ManualBlittableJsonDocumentBuilder <UnmanagedWriteBuffer>(context)) { writer.Reset(usageMode); writer.StartWriteObjectDocument(); var blittableBridge = new JsBlittableBridge(writer, usageMode, scriptEngine); blittableBridge.WriteInstance(objectInstance, modifier); writer.FinalizeDocument(); return(writer.CreateReader()); } }