This file contains tips and instructions to help porting Sun Microsystems Lively Kernel to Internet Explorer. Feel free to add your own tips and tricks. ######## # TIPS # ######## Accessing members of rawNode """""""""""""""""""""""""""" With Safari and Mozilla Firefox, the following notation can be used to access to the members of SVG elements: points = this.rawNode.points This may not work with IE, but methods getAttributeNS and setAttributeNS do work, so it's better to use them. points = this.rawNode.getAttributeNS(null, "points"); forEach() """"""""" The method forEach() of arrays does not work, so use each() instead. toString() """""""""" For some reason, toString() method does not work with IE. This is vital function for many SVG calls, so possible reason for some graphical glitches might be that some parameter is got using toString() and therefore IE passes an empty string to an SVG function. The toIEString() method has to be implemented separately and is used instead of toString(). With it is easy to differentiate IE specific code parts. ########################### # HOW TO MERGE FROM TRUNK # ########################### Before merging, make sure that the whole working copy of repository on your computer is updated and that you don't have any local changes pending. 1) Go to the ie-branch and check which is the latest revision that has been merged. In the example below it's 1420: > svn log | head ------------------------------------------------------------------------ r1420 | Henu | 2008-08-19 10:12:12 +0300 (ti, 19 elo    2008) | 1 line Merge from trunk ------------------------------------------------------------------------ r1380 | tjm | 2008-08-14 10:04:06 +0300 (to, 14 elo    2008) | 1 line Updated comments. 2) Then do the merging. Use the revision number that you got from the previous step. In this example it's 1420. Note that you have to be in the /branches/ directory when you give the following command. > svn -r 1420:HEAD merge http://livelykernel.sunlabs.com/repository/lively-kernel/trunk ie-port/ 3) Now SVN starts to merge code. If conflicts occur, just give command df (diff hull) and after it just mark the code resolved (command: r). 4) It is a good idea to look all the changes that merging has done. Use the command below. From here it's easy to see what files cause conflicts (search "<<<<" from log). It's also a good idea to search for those parts of code that cause problems or things that might have broken. Good examples are "forEach", "isIE7", etc. > svn log | less 5) After all conflicts and possible other problems have been fixed, ensure that LK works with IE. After this you can commit your changes. 6) After all this is done, it is a good idea to update trunk and ensure that no changes have been done there. If changes have been done, then you have not really merged from the latest version and you need to merge also those changes that have occurred between the revision you merged from (1420 in our example) and between HEAD.