| var smart_pointer_not = require("smart_pointer_not"); | |
| f = new smart_pointer_not.Foo(); | |
| b = new smart_pointer_not.Bar(f); | |
| s = new smart_pointer_not.Spam(f); | |
| g = new smart_pointer_not.Grok(f); | |
| // This is the only that should work | |
| f.getx(); | |
| // Accessing an inexistent property in JS | |
| // does not throw - it returns undefined | |
| fail = false; | |
| try { | |
| x = b.getx(); | |
| fail = new Error("Error! b.x"); | |
| } catch { } | |
| if (fail) throw fail; | |
| try { | |
| x = s.getx(); | |
| fail = new Error("Error! b.x"); | |
| } catch { } | |
| if (fail) throw fail; | |
| try { | |
| x = g.getx(); | |
| fail = new Error("Error! b.x"); | |
| } catch { } | |
| if (fail) throw fail; |