On 7/12/13 5:38 PM, Robert O'Callahan wrote:
What would the developer experience be like with this approach? I mean,
what kind of code would developers have to write to declare classes
managed by JS and to declare references to such objects?

I suspect it would be something like:

    #[deriving(JsManagable)]
    struct MyObject {
        field_a: int,
        field_b: float,
        field_c: Option<JsManaged<OtherObject>>,
        ...
    }

    fn f(x: JsManaged<MyObject>) {
        ... do something with x ...

        // make a loop, why not?
        x.mutate().field_c = Some(x.clone());
    }

    fn g(x: &JsManaged<MyObject>) {
        ... do something with x ...
    }

    fn main() {
        let object = new(JsManaged) MyObject {
            field_a: 10,
            field_b: 20.0,
            field_c: None,
            ...
        };
        f(object.clone()); // make a new reference
        g(&object);        // or don't and just borrow
    }

Patrick

_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to