[bugfix slot-value henrik.hjelte@poboxes.com**20051219131901] { hunk ./js.lisp 730 - :slot (js-compile-to-symbol slot))) + :slot (js-compile slot))) hunk ./js.lisp 734 - (format nil ".~A" (symbol-to-js (sv-slot sv))))) + (if (symbolp (sv-slot sv)) + (format nil ".~A" (symbol-to-js (sv-slot sv))) + (format nil "[~A]" (first (js-to-strings (sv-slot sv) 0)))))) hunk ./js.lisp 1376 - hunk ./test.lisp 54 + +(test-ps-js simple-slot-value + (let ((foo (create :a 1))) + (alert (slot-value foo 'a))) + "{ + var foo = { a : 1 }; + alert(foo.a); + }") + +(test-ps-js buggy-slot-value + (let ((foo (create :a 1)) + (slot-name "a")) + (alert (slot-value foo slot-name))) + "{ + var foo = { a : 1 }; + var slotName = 'a'; + alert(foo[slotName]); + }"); Last line was alert(foo.slotName) before bug-fix. + +(test-ps-js buggy-slot-value-two + (slot-value foo (get-slot-name)) + "foo[getSlotName()]") + }