How do I report problems?
I get an internal compiler error while compiling javascript code from
http://closure-compiler.appspot.com/home.
I would be glad to pass on the original source if you tell me how to
post it to you
Cheers
Gopalan.
23: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
Conflicting externs name: {SyntheticVarsDeclar}
Node: Input_0:358:8
hanoi(disc-1, source, destination, auxillary);
Parent: Input_0:358:13
hanoi(disc-1, source, destination, auxillary);
at com.google.javascript.jscomp.Compiler.newExternInput(Compiler.java:
900)
at com.google.javascript.jscomp.VarCheck.getSynthesizedExternsInput
(VarCheck.java:192)
at com.google.javascript.jscomp.VarCheck.getSynthesizedExternsRoot
(VarCheck.java:201)
at com.google.javascript.jscomp.VarCheck.visit(VarCheck.java:124)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:463)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction
(NodeTraversal.java:490)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:448)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch
(NodeTraversal.java:456)
at com.google.javascript.jscomp.NodeTraversal.traverseRoots
(NodeTraversal.java:271)
at com.google.javascript.jscomp.NodeTraversal.traverseRoots
(NodeTraversal.java:421)
at com.google.javascript.jscomp.VarCheck.process(VarCheck.java:83)
at com.google.javascript.jscomp.Compiler.process(Compiler.java:670)
at com.google.javascript.jscomp.Compiler.sanityCheckVars
(Compiler.java:1489)
at com.google.javascript.jscomp.Compiler.optimize(Compiler.java:1469)
at com.google.javascript.jscomp.Compiler.compileInternal
(Compiler.java:555)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:65)
at com.google.javascript.jscomp.Compiler$1.call(Compiler.java:462)
at com.google.javascript.jscomp.Compiler$1.call(Compiler.java:460)
at com.google.javascript.jscomp.Compiler$2.run(Compiler.java:494)
at com.google.javascript.jscomp.Compiler.runInCompilerThread
(Compiler.java:517)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:460)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:429)
at
com.google.javascript.jscomp.webservice.backend.CompilerInvokerImpl.compile
(CompilerInvokerImpl.java:54)
at
com.google.javascript.jscomp.webservice.backend.ServerController.executeRequest
(ServerController.java:179)
at
com.google.javascript.jscomp.webservice.backend.CompilationRequestHandler.service
(CompilationRequestHandler.java:122)
at
com.google.javascript.jscomp.webservice.backend.CompilationRequestHandler.service
(CompilationRequestHandler.java:102)
at
com.google.javascript.jscomp.webservice.frontend.CompilationServlet.doPost
(CompilationServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1093)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
(AppVersionHandlerMap.java:238)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:830)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest
(JettyServletEngineAdapter.java:139)
at com.google.apphosting.runtime.JavaRuntime.handleRequest
(JavaRuntime.java:239)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:5135)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:5133)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
363)
at com.google.net.rpc.impl.Server$2.run(Server.java:814)
at com.google.tracing.LocalTraceSpanRunnable.run
(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
(LocalTraceSpanBuilder.java:516)
at com.google.net.rpc.impl.Server.startRpc(Server.java:769)
at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
at com.google.net.rpc.impl.ServerConnection.messageReceived
(ServerConnection.java:437)
at com.google.net.rpc.impl.RpcConnection.parseMessages
(RpcConnection.java:319)
at com.google.net.rpc.impl.RpcConnection.dataReceived
(RpcConnection.java:290)
at com.google.net.async.Connection.handleReadEvent(Connection.java:
436)
at com.google.net.async.EventDispatcher.processNetworkEvents
(EventDispatcher.java:762)
at com.google.net.async.EventDispatcher.internalLoop
(EventDispatcher.java:207)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
101)
at com.google.net.rpc.RpcService.runUntilServerShutdown
(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
(JavaRuntime.java:396)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Conflicting externs
name: {SyntheticVarsDeclar}
... 76 more
Original Post Data:
output_format=json&output_info=compiled_code&output_info=warnings&output_info=errors&output_info=statistics&compilation_level=ADVANCED_OPTIMIZATIONS&warning_level=verbose&formatting=pretty_print&formatting=print_input_delimiter&output_file_name=default.js&js_code=
%2F*%20%0A%20*%20To%20change%20this%20template%2C%20choose%20Tools
%20%7C%20Templates%0A%20*%20and%20open%20the%20template%20in%20the
%20editor.%0A%20*%2F%0Adocument.writeln(%22Hello%2C%20Gopalan%20Suresh
%20Raj%22)%3B%0A%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-
%20Objects%20-%20Object%20Literals%22)%3B%0Adocument.writeln(%22%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0Avar%20empty_object
%20%3D%20%7B%7D%3B%0Avar%20stooge%20%3D%20%7B%0A%20%20%20%20%22first-
name%22%3A%22Gopalan%22%2C%0A%20%20%20%20%22middle-name%22%3A%22Suresh
%22%2C%0A%20%20%20%20%22last-name%22%3A%22Raj%22%0A%7D%3B
%0Adocument.writeln(%22stooge%5B%5C%22FIRST-NAME%5C%22%5D%3D
%20%22%2Bstooge%5B%22FIRST-NAME%22%5D)%3B%0Adocument.writeln(%22stooge
%5B%5C%22middle-name%5C%22%5D%3D%20%22%2Bstooge%5B%22middle-name%22%5D)
%3B%0A%0Avar%20flight%20%3D%20%7B%0A%20%20%20%20airline%3A%20%22Oceanic
%22%2C%0A%20%20%20%20number%3A%20815%2C%0A%20%20%20%20departure%3A
%20%7B%0A%20%20%20%20%20%20%20%20IATA%3A%20%22MAS%22%2C%0A
%20%20%20%20%20%20%20%20time%3A%20%222009-09-22%2014%3A55%22%2C%0A
%20%20%20%20%20%20%20%20city%3A%20%22Chennai%22%0A%20%20%20%20%7D%2C%0A
%20%20%20%20arrival%3A%20%7B%0A%20%20%20%20%20%20%20%20IATA%3A%20%22LAX
%22%2C%0A%20%20%20%20%20%20%20%20time%3A
%20%222009-09-23%2010%3A42%22%2C%0A%20%20%20%20%20%20%20%20city%3A
%20%22Los%20Angeles%22%0A%20%20%20%20%7D%0A%7D%3B%0A%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B
%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-%20Objects%20-
%20Retrieval%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%22)%3B%0Adocument.writeln(%22flight.status%3D
%20%22%2Bflight.status)%3B%0A%0Avar%20nickname%20%3D%20stooge%5B
%22nick-name%22%5D%20%7C%7C%20%22(none)%22%3B%0Adocument.writeln
(%22nickname%3D%20%22%2Bnickname)%3B%0Avar%20status%20%3D
%20flight.status%20%7C%7C%20%22unknown%22%3B%0Adocument.writeln
(%22status%3D%20%22%2Bstatus)%3B%0A%0Avar%20theEquipment%20%3D
%20flight.equipment%3B%0Adocument.writeln(%22flight.equipment%3D
%20%22%2Bflight.equipment)%3B%0A%0A%2F%2Fvar%20theModel%20%3D
%20flight.equipment.model%3B%0A%2F%2Fdocument.writeln(theModel)%3B%0A
%2F%2F%0A%2F%2Fvar%20theCombo%20%3D%20flight.equipment
%20%26%26%20flight.equipment.model%3B%0A%2F%2Fdocument.writeln
(theCombo)%3B%0A%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-
%20Objects%20-%20Update%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0Astooge%5B%22other-name%22%5D%20%3D
%20%22Suresh%20Raj%20Gopalan%22%3B%0Adocument.writeln(%22stooge%5B%5C
%22other-name%5C%22%5D%3D%20%22%2Bstooge%5B%22other-name%22%5D)%3B
%0Astooge.nickname%20%3D%20%22Suresh%22%3B%0Adocument.writeln
(%22stooge.nickname%3D%20%22%2Bstooge.nickname)%3B%0Aflight.equipment
%20%3D%20%7B%0A%20%20%20%20model%20%3A%20'Boeing%20777'%0A%7D%3B
%0Adocument.writeln(%22flight.equipment.model%3D
%20%22%2Bflight.equipment.model)%3B%0Aflight.status%20%3D
%20'overdue'%3B%0Adocument.writeln(%22flight.status%3D
%20%22%2Bflight.status)%3B%0A%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0Adocument.writeln(%22%2F%2F
%20Chapter%203%20-%20Objects%20-%20Reference%22)%3B%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0Avar%20x%20%3D
%20stooge%3B%0Adocument.writeln(%22x%3D%20%22%2Bx)%3B%0Ax.nickname
%20%3D%20%22The%20Raj%22%3B%0Adocument.writeln(%22x.nickname%3D
%20%22%2Bx.nickname)%3B%0Avar%20nick%20%3D%20stooge.nickname%3B
%0Adocument.writeln(%22nick%3D%20%22%2Bnick)%3B%0A%0Avar%20a%20%3D
%20%7B%0A%20%20%20%20value%3A%22a%22%0A%7D%2C%20b%20%3D%20%7B%0A
%20%20%20%20value%3A%22b%22%0A%7D%2C%20c%20%3D%20%7B%0A
%20%20%20%20value%3A%22c%22%0A%7D%3B%0Adocument.writeln(%22a.value%3D
%20%22%2Ba.value)%3B%0Adocument.writeln(%22b.value%3D%20%22%2Bb.value)
%3B%0Adocument.writeln(%22c.value%3D%20%22%2Bc.value)%3B%0A%0Aa%20%3D
%20b%20%3D%20c%20%3D%20%7B%0A%20%20%20%20value%3A%22common%20d%22%0A%7D
%3B%0Adocument.writeln(%22a.value%3D%20%22%2Ba.value)%3B
%0Adocument.writeln(%22b.value%3D%20%22%2Bb.value)%3B
%0Adocument.writeln(%22c.value%3D%20%22%2Bc.value)%3B%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-%20Objects%20-
%20Prototype%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%22)%3B%0Aif(typeof%20Object.create%20!%3D%3D
%20'function')%20%7B%0A%20%20%20%20Object.create%20%3D%20function
(anObject)%20%7B%0A%20%20%20%20%20%20%20%20var%20aFunctionVariable
%20%3D%20function()%20%7B%7D%3B%0A
%20%20%20%20%20%20%20%20aFunctionVariable.prototype%20%3D%20anObject%3B
%0A%20%20%20%20%20%20%20%20return%20new%20aFunctionVariable()%3B%0A
%20%20%20%20%7D%3B%0A%7D%0Avar%20another_stooge%20%3D%20Object.create
(stooge)%3B%0Aanother_stooge%5B'first-name'%5D%20%3D%20'Suresh'%3B
%0Adocument.writeln(%22another_stooge%5B'first-name'%5D%3D
%20%22%2Banother_stooge%5B'first-name'%5D)%3B%0Aanother_stooge
%5B'middle-name'%5D%20%3D%20'Raj'%3B%0Adocument.writeln
(%22another_stooge%5B'middle-name'%5D%3D%20%22%2Banother_stooge
%5B'middle-name'%5D)%3B%0Aanother_stooge.nickname%20%3D%20'Raj'%3B
%0Adocument.writeln(%22another_stooge.nickname%3D
%20%22%2Banother_stooge.nickname)%3B%0A%0Astooge.profession%20%3D
%20'actor'%3B%0Adocument.writeln(%22stooge.profession%3D
%20%22%2Bstooge.profession)%3B%0Adocument.writeln
(%22another_stooge.profession%3D%20%22%2Banother_stooge.profession)%3B
%0A%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-%20Objects%20-
%20Reflection%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%22)%3B%0A%0Adocument.writeln(%22typeof
%20flight.number%3D%20%22%2Btypeof%20flight.number)%3B
%0Adocument.writeln(%22typeof%20flight.status%3D%20%22%2Btypeof
%20flight.status)%3B%0Adocument.writeln(%22typeof%20flight.arrival%3D
%20%22%2Btypeof%20flight.arrival)%3B%0Adocument.writeln(%22typeof
%20flight.manifest%3D%20%22%2Btypeof%20flight.manifest)%3B%0A
%0Adocument.writeln(%22typeof%20flight.toString%3D%20%22%2Btypeof
%20flight.toString)%3B%0Adocument.writeln(%22typeof
%20flight.constructor%3D%20%22%2Btypeof%20flight.constructor)%3B%0A
%0Adocument.writeln(%22flight.hasOwnProperty('number')%3D
%20%22%2Bflight.hasOwnProperty('number'))%3B%0Adocument.writeln
(%22flight.hasOwnProperty('constructor')%3D
%20%22%2Bflight.hasOwnProperty('constructor'))%3B%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-%20Objects%20-
%20Enumeration%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%22)%3B%0A%0Avar%20attribute%3B%0Afor(attribute%20in
%20another_stooge)%20%7B%0A%20%20%20%20if(typeof%20another_stooge
%5Battribute%5D%20!%3D%3D%20'function')%20%7B%0A
%20%20%20%20%20%20%20%20document.writeln(attribute
%2B'%3A'%2Banother_stooge%5Battribute%5D)%3B%0A%20%20%20%20%7D%0A%7D%0A
%0Avar%20index%3B%0Avar%20properties%20%3D%20%5B%0A'first-name'%2C
%0A'middle-name'%2C%0A'last-name'%2C%0A'profession'%0A%5D%3B%0Afor
(index%20%3D%200%3B%20index%20%3C%20properties.length%3B%20index%20%2B
%3D%201)%20%7B%0A%20%20%20%20document.writeln(properties%5Bindex%5D
%20%2B%20%22%3A%22%20%2B%20another_stooge%5Bproperties%5Bindex%5D%5D)
%3B%0A%7D%0A%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-
%20Objects%20-%20Delete%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0Adocument.writeln
(%22another_stooge.nickname%3D%20%22%2Banother_stooge.nickname)%3B
%0Adelete%20another_stooge.nickname%3B%0Adocument.writeln
(%22another_stooge.nickname%3D%20%22%2Banother_stooge.nickname)%3B%0A
%0A%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%203%20-%20Objects%20-
%20Global%20Abatement%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20MYAPP
%20%3D%20%7B%7D%3B%0A%0AMYAPP.stooge%20%3D%20%7B%0A
%20%20%20%20%22first-name%22%20%3A%20%22Gopalan%22%2C%0A
%20%20%20%20%22middle-name%22%20%3A%20%22Suresh%22%2C%0A
%20%20%20%20%22last-name%22%20%3A%20%22Raj%22%0A%7D%3B%0A
%0Adocument.writeln(%22MYAPP.stooge%5B%5C%22first-name%5C%22%5D%3D
%20%22%2BMYAPP.stooge%5B%22first-name%22%5D)%3B%0Adocument.writeln
(%22MYAPP.stooge%5B%5C%22middle-name%5C%22%5D%3D%20%22%2BMYAPP.stooge
%5B%22middle-name%22%5D)%3B%0Adocument.writeln(%22MYAPP.stooge%5B%5C
%22last-name%5C%22%5D%3D%20%22%2BMYAPP.stooge%5B%22last-name%22%5D)%3B
%0A%0AMYAPP.flight%20%3D%20%7B%0A%20%20%20%20airline%20%3A%20%22Oceanic
%22%2C%0A%20%20%20%20number%20%3A%20815%2C%0A%20%20%20%20departure
%20%3A%20%7B%0A%20%20%20%20%20%20%20%20IATA%20%3A%20%22MAA%22%2C%0A
%20%20%20%20%20%20%20%20time%20%3A%20%222009-09-22%2014%3A55%22%2C%0A
%20%20%20%20%20%20%20%20city%20%3A%20%22Chennai%22%0A%20%20%20%20%7D%2C
%0A%20%20%20%20arrival%20%3A%20%7B%0A%20%20%20%20%20%20%20%20IATA%20%3A
%20%22LAX%22%2C%0A%20%20%20%20%20%20%20%20time%20%3A
%20%222009-09-23%2010%3A42%22%2C%0A%20%20%20%20%20%20%20%20city%20%3A
%20%22Los%20Angeles%22%0A%20%20%20%20%7D%0A%7D%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Function%20Literal%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20add%20%3D
%20function(a%2C%20b)%20%7B%0A%20%20%20%20return%20a%20%2B%20b%3B%0A%7D
%3B%0Avar%20total%20%3D%20add(7%2C3)%3B%0Adocument.writeln(%22add
(7%2C3)%3D%20%22%2Btotal)%3B%0A%2F%2F
%20-------------------------------------------------%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Method%20Invocation%20Pattern%22)%3B%0Adocument.writeln(%22%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20myObject
%20%3D%20%7B%0A%20%20%20%20value%20%3A%200%2C%0A%20%20%20%20increment
%20%3A%20function(anIncrement)%20%7B%0A
%20%20%20%20%20%20%20%20this.value%20%2B%3D%20(typeof%20anIncrement
%20%3D%3D%3D%20'number')%20%3F%20anIncrement%20%3A%201%3B%0A
%20%20%20%20%7D%0A%7D%3B%0AmyObject.increment()%3B%0Adocument.writeln
(%22myObject.increment()%3D%20%22%2BmyObject.value%2B%22%20is%20the
%20value%20of%20myObject.value%22)%3B%0A%0AmyObject.increment(2)%3B
%0Adocument.writeln(%22myObject.increment(2)%3D%20%22%2BmyObject.value
%2B%22%20is%20the%20value%20of%20myObject.value%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Function%20Invocation%20Pattern%22)%3B%0Adocument.writeln(%22%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20sum%20%3D
%20add(9%2C1)%3B%0Adocument.writeln(%22add(9%2C1)%3D%20%22%2Bsum)%3B%0A
%0A%2F%2F%20-------------------------------------------------
%0AmyObject.myDouble%20%3D%20function()%20%7B%0A%20%20%20%20var%20that
%20%3D%20this%3B%20%2F%2F%20workaround%0A%20%20%20%20var%20helper%20%3D
%20function()%20%7B%0A%20%20%20%20%20%20%20%20that.value%20%3D%20add
(that.value%2C%20that.value)%3B%0A%20%20%20%20%7D%3B%0A
%20%20%20%20helper()%3B%20%2F%2F%20Invoke%20helper%20as%20a%20function
%0A%7D%3B%0AmyObject.myDouble()%3B%0Adocument.writeln
(%22myObject.myDouble()%3D%20%22%2BmyObject.value%2B%22%20is%20the
%20value%20of%20myObject.value%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Constructor%20Invocation%20Pattern%20%22)%3B%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20Quote
%20%3D%20function(aString)%20%7B%0A%20%20%20%20this.status%20%3D
%20aString%3B%0A%7D%3B%0AQuote.prototype.get_status%20%3D%20function()
%20%7B%0A%20%20%20%20return%20this.status%3B%0A%7D%0Avar%20myQuote
%20%3D%20new%20Quote(%22confused!!!%22)%3B%0Adocument.writeln
(%22myQuote.get_status()%3D%20%22%2BmyQuote.get_status())%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Apply%20Invocation%20Pattern%22)%3B%0Adocument.writeln(%22%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20array
%20%3D%20%5B6%2C4%5D%3B%0Avar%20aSum%20%3D%20add.apply(null%2C%20array)
%3B%0Adocument.writeln(%22add.apply(null%2C%20array)%3D%20%22%2BaSum)
%3B%0A%0A%2F%2F%20-------------------------------------------------
%0Avar%20statusObject%20%3D%20%7B%0A%20%20%20%20status%20%3A%20'A-
OK'%0A%7D%3B%0Avar%20aStatus%20%3D%20Quote.prototype.get_status.apply
(statusObject)%3B%0Adocument.writeln
(%22Quote.prototype.get_status.apply(statusObject)%3D%20%22%2BaStatus)
%3B%0A%2F%2F%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Arguments%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20arraySum
%20%3D%20function()%20%7B%0A%20%20%20%20var%20index%2C%20theArraySum
%20%3D%200%3B%0A%20%20%20%20for(index%20%3D%200%3B%20index%20%3C
%20arguments.length%3B%20index%20%2B%3D%201)%20%7B%0A
%20%20%20%20%20%20%20%20theArraySum%20%2B%3D%20arguments%5Bindex%5D%3B
%0A%20%20%20%20%7D%0A%20%20%20%20return%20theArraySum%3B%0A%7D%3B
%0Adocument.writeln(%22arraySum(4%2C8%2C12%2C16%2C20%2C24%2C28)%3D
%20%22%2BarraySum(4%2C8%2C12%2C16%2C20%2C24%2C28))%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20safeAdd
%20%3D%20function(a%2C%20b)%20%7B%0A%20%20%20%20if(typeof%20a%20!%3D%3D
%20'number'%20%7C%7C%20typeof%20b%20!%3D%3D%20'number')%20%7B%0A
%20%20%20%20%20%20%20%20throw%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20name%20%3A%20'TypeError'%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20message%20%3A%20'safeAdd%20needs
%20numbers'%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A
%20%20%20%20return%20a%20%2B%20b%3B%0A%7D%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20trySafeAdd
%20%3D%20function()%20%7B%0A%20%20%20%20try%20%7B%0A
%20%20%20%20%20%20%20%20safeAdd(%22seven%22)%3B%0A%20%20%20%20%7D
%20catch(exception)%20%7B%0A%20%20%20%20%20%20%20%20document.writeln
(%22Exception%20from%20trySafeAdd%22)%3B%0A
%20%20%20%20%20%20%20%20document.writeln(
exception.name%20%2B%20'%20%3A
%20'%20%2B%20exception.message)%3B%0A%20%20%20%20%7D%0A%7D%3B
%0AtrySafeAdd()%3B%0A%2F%2F
%20-------------------------------------------------%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Augmenting%20Types%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------
%0AFunction.prototype.method%20%3D%20function(name%2C%20aFunction)
%20%7B%0A%20%20%20%20if(!this.prototype%5Bname%5D)%20%7B%0A
%20%20%20%20%20%20%20%20this.prototype%5Bname%5D%20%3D%20aFunction%3B
%0A%20%20%20%20%7D%0A%20%20%20%20return%20this%3B%0A%7D%3B
%0ANumber.method('integer'%2C%0A%20%20%20%20function()%20%7B%0A
%20%20%20%20%20%20%20%20return%20Math%5B(this%20%3C
%200)%3F'ceil'%3A'floor'%5D(this)%3B%0A%20%20%20%20%7D%0A
%20%20%20%20)%3B%0Adocument.writeln(%22(-10%2F3).integer()%3D%20%22%2B
(-10%2F3).integer())%3B%0A%0A%2F%2F
%20-------------------------------------------------%0AString.method
('trim'%2C%0A%20%20%20%20function()%20%7B%0A%20%20%20%20%20%20%20%20var
%20regularExpression%20%3D%20%2F%5E%5Cs%2B%7C%5Cs%2B%24%2Fg%3B%0A
%20%20%20%20%20%20%20%20return%20this.replace(regularExpression%2C
%20'')%3B%0A%20%20%20%20%7D%0A%20%20%20%20)%3B%0Adocument.writeln
('%22'%2B%20%22%20%20%20%20%20%20neat!%20%20%20%20%22.trim()%2B'%22')
%3B%0A%2F%2F%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Recursion%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20hanoi
%20%3D%20function%20hanoi(disc%2C%20source%2C%20auxillary%2C
%20destination)%20%7B%0A%20%20%20%20if(disc%20%3E%200)%20%7B%0A
%20%20%20%20%20%20%20%20hanoi(disc-1%2C%20source%2C%20destination%2C
%20auxillary)%3B%0A%20%20%20%20%20%20%20%20document.writeln('Move
%20disc%23%20'%2Bdisc%2B'%20from%20'%2Bsource%2B'%20to%20'%2B
%20destination)%3B%0A%20%20%20%20%20%20%20%20hanoi(disc-1%2C
%20auxillary%2C%20source%2C%20destination)%3B%0A%20%20%20%20%7D%0A%7D
%3B%0Ahanoi(3%2C%20'Source'%2C%20'Auxillary'%2C%20'Destination')%3B%0A
%0A%2F%2F%20-------------------------------------------------%0Avar
%20walk_the_DOM%20%3D%20function%20walk(node%2C%20aFunction)%20%7B%0A
%20%20%20%20aFunction(node)%3B%0A%20%20%20%20node%20%3D
%20node.firstChild%3B%0A%20%20%20%20while(node)%20%7B%0A
%20%20%20%20%20%20%20%20walk(node%2C%20aFunction)%3B%0A
%20%20%20%20%20%20%20%20node%20%3D%20node.nextSibling%3B%0A
%20%20%20%20%7D%0A%7D%3B%0Avar%20getElementsByAttribute%20%3D
%20function(anAttribute%2C%20value)%20%7B%0A%20%20%20%20var%20results
%20%3D%20%5B%5D%3B%0A%20%20%20%20walk_the_DOM(document.body%2C%0A
%20%20%20%20%20%20%20%20function(node)%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20var%20actual%20%3D%20node.nodeType
%20%3D%3D%3D%201%20%26%26%20node.getAttribute(anAttribute)%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20if(%20(typeof%20actual%20%3D%3D%3D
%20'string')%20%26%26%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20((actual%20%3D%3D%3D
%20value)%20%7C%7C%20(typeof%20value%20!%3D%3D%20'string'))%20)%20%7B
%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20results.push(node)
%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A
%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20)%3B%0A
%20%20%20%20return%20results%3B%0A%7D%3B%0Avar%20theAttributes%20%3D
%20getElementsByAttribute('src')%3B%0Afor(value%20in%20theAttributes)
%20%7B%0A%20%20%20%20document.writeln(value)%3B%0A%7D%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20factorial
%20%3D%20function%20factorial(theNumber%2C%20index)%20%7B%0A
%20%20%20%20index%20%3D%20index%20%7C%7C%201%3B%0A%20%20%20%20if
(theNumber%20%3C%202)%20%7B%0A%20%20%20%20%20%20%20%20return%20index%3B
%0A%20%20%20%20%7D%0A%20%20%20%20return%20factorial(theNumber-1%2C
%20theNumber*index)%3B%0A%7D%3B%0Adocument.writeln(%22factorial(10)%3D
%20%22%2Bfactorial(10))%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Scope%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar
%20fooFunction%20%3D%20function()%20%7B%0A%20%20%20%20var%20a%20%3D
%203%2C%20b%20%3D%205%3B%0A%20%20%20%20document.writeln(%22Inside
%20fooFunction%20(after%20a%20%3D%203%2C%20b%20%3D%205)%2C%20a%20%3D
%20%22%2Ba%2B%22%2C%20b%20%3D%20%22%2Bb)%3B%0A%20%20%20%20var
%20barFunction%20%3D%20function()%20%7B%0A%20%20%20%20%20%20%20%20var
%20b%20%3D%207%2C%20e%20%3D%2011%3B%0A
%20%20%20%20%20%20%20%20document.writeln(%22Inside%20barFunction%20
(after%20b%20%3D%207%2C%20c%20%3D%2011)%2C%20a%20%3D%20%22%2Ba%2B%22%2C
%20b%20%3D%20%22%2Bb%2B%22%2C%20e%20%3D%20%22%2Be)%3B%0A
%20%20%20%20%20%20%20%20a%20%2B%3D%20b%20%2B%20e%3B%0A
%20%20%20%20%20%20%20%20document.writeln(%22Inside%20barFunction%20
(after%20a%20%2B%3D%20b%20%2B%20c)%2C%20a%20%3D%20%22%2Ba%2B%22%2C%20b
%20%3D%20%22%2Bb%2B%22%2C%20e%20%3D%20%22%2Be)%3B%0A%20%20%20%20%7D%3B
%0A%20%20%20%20document.writeln(%22Inside%20fooFunction%20(after%20a
%20%3D%203%2C%20b%20%3D%205)%2C%20a%20%3D%20%22%2Ba%2B%22%2C%20b%20%3D
%20%22%2Bb)%3B%0A%20%20%20%20barFunction()%3B%0A
%20%20%20%20document.writeln(%22Inside%20fooFunction%20(after
%20invoking%20barFunction()%2C%20a%20%3D%20%22%2Ba%2B%22%2C%20b%20%3D
%20%22%2Bb)%3B%0A%7D%3B%0AfooFunction()%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Closure%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20someObject
%20%3D%20function()%20%7B%0A%20%20%20%20var%20value%20%3D%200%3B%0A
%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20increment%3A
%20function(anIncrement)%20%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20value%20%2B%3D%20(typeof
%20anIncrement%20%3D%3D%3D%20'number')%3FanIncrement%20%3A%201%3B%0A
%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20getValue%3A
%20function()%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return
%20value%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D()
%3B%0AsomeObject.increment(9)%3B%0AsomeObject.increment(1)%3B
%0Adocument.writeln(%22someObject.increment(9)%3D
%20%22%2BsomeObject.getValue()%2B%22%20is%20the%20value%20of
%20someObject.getValue()%22)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20someQuote
%20%3D%20function(status)%20%7B%0A%20%20%20%20return%20%7B%0A
%20%20%20%20%20%20%20%20get_status%3A%20function()%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20return%20status%3B%0A
%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D%3B%0Avar
%20mySomeQuote%20%3D%20someQuote('amazed!')%3B%0Adocument.writeln
(%22someQuote('amazed!')%3D%20%22%2BmySomeQuote.get_status()%2B%22%20is
%20the%20value%20of%20mySomeQuote.get_status()%22)%3B%0A%0A%0A%2F%2F
%20-------------------------------------------------%0Avar%20fade%20%3D
%20function(node)%20%7B%0A%20%20%20%20var%20level%20%3D%201%3B%0A
%20%20%20%20var%20stepExpressionToRun%20%3D%20function()%20%7B%0A
%20%20%20%20%20%20%20%20var%20hex%20%3D%20level.toString(16)%3B%0A
%20%20%20%20%20%20%20%20node.style.backgroundColor%20%3D
%20'%23FFFF'%2Bhex%2Bhex%3B%0A%20%20%20%20%20%20%20%20if(level%20%3C
%2015)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20level%20%2B%3D
%201%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout
(stepExpressionToRun%2C%20100)%3B%0A%20%20%20%20%20%20%20%20%7D%0A
%20%20%20%20%7D%3B%0A%20%20%20%20setTimeout(stepExpressionToRun%2C
%20100)%3B%0A%7D%3B%0Afade(document.body)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar
%20add_the_handlers%20%3D%20function(nodes)%20%7B%0A%20%20%20%20var
%20index%3B%0A%20%20%20%20for(index%20%3D%200%3B%20index%20%3C
%20nodes.length%3B%20index%20%2B%3D%201)%20%7B%0A
%20%20%20%20%20%20%20%20nodes%5Bindex%5D.onclick%20%3D%20function
(index)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20function
(anExpression)%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alert(anExpression)%3B
%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A
%20%20%20%20%20%20%20%20%7D(index)%3B%0A%20%20%20%20%7D%0A%7D%3B
%0Aadd_the_handlers(document)%3B%0A%0Adocument.writeln(%22%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0Adocument.writeln(%22%2F%2F
%20Chapter%204%20-%20Functions%20-%20Module%22)%3B%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%2F%2F%20My
%20additions%20start%0AString.prototype.startsWith%20%3D%20function
(str)%0A%7B%0A%20%20%20%20return%20(this.match(%22%5E%22%2Bstr)%3D
%3Dstr)%0A%20%20%20%20%7D%0AString.prototype.endsWith%20%3D%20function
(str)%0A%7B%0A%20%20%20%20return%20(this.match(str%2B%22%24%22)%3D
%3Dstr)%0A%20%20%20%20%7D%0A%2F%2F%20My%20additions%20end%0A%0A%2F%2F
%20-------------------------------------------------%0AString.method
('deEntityify'%2C%0A%20%20%20%20function()%20%7B%0A
%20%20%20%20%20%20%20%20var%20entityNamesToCharacterMapTable%20%3D
%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20quot%3A%20'%22'%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20lt%3A%20'%3C'%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20gt%3A%20'%3E'%0A
%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20return
%20function()%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return
%20this.replace(%2F%26(%5B%5E%26%3B%5D%2B)%3B%2Fg%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20function
(originalStringBeingReplaced%2C%20tokenToReplaceKey)%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var
%20replacementValueFromTable%20%3D%20entityNamesToCharacterMapTable
%5BtokenToReplaceKey%5D%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var
%20theNewChar%20%3D%20originalStringBeingReplaced.startsWith
(%22%26%22)%3F(%22Starts%20With%20%26%22%2BoriginalStringBeingReplaced)
%3AoriginalStringBeingReplaced%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.writeln
(%22originalStringBeingReplaced%3D%20%22%2BtheNewChar%2B%22%2C
%20tokenToReplaceKey%3D%20%22%2BtokenToReplaceKey%2B%22%2C
%20replacementValueFromTable%3D%20%22%2BreplacementValueFromTable)%3B
%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return
%20(typeof%20replacementValueFromTable%20%3D%3D%3D%20'string')%20%3F
%20replacementValueFromTable%20%3A%20originalStringBeingReplaced%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%3B%0A
%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D()%0A%20%20%20%20)%3B
%0Avar%20deEntityificationResult%20%3D%20'%26lt%3B%26quot%3B%26gt
%3B'.deEntityify()%3B%0Adocument.writeln(%22'%26amp%3Blt%3B%26amp
%3Bquot%3B%26amp%3Bgt%3B'.deEntityify()%3D
%20%22%2BdeEntityificationResult)%3B%0A%0A%2F%2F
%20-------------------------------------------------%0Avar
%20serial_maker%20%3D%20function()%20%7B%0A%20%20%20%20var%20prefix
%20%3D%20''%3B%0A%20%20%20%20var%20sequence%20%3D%200%3B%0A
%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20set_prefix%20%3A
%20function(aPrefix)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20prefix
%20%3D%20String(aPrefix)%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A
%20%20%20%20%20%20%20%20set_sequence%20%3A%20function(aSequence)%20%7B
%0A%20%20%20%20%20%20%20%20%20%20%20%20sequence%20%3D%20aSequence%3B%0A
%20%20%20%20%20%20%20%20%7D%2C%0A
%20%20%20%20%20%20%20%20generateSerialNumber%20%3A%20function()%20%7B
%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20prefix
%20%2B%20sequence%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sequence
%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.writeln
(%22prefix%3D%20%22%2Bprefix%2B%22%2C%20After%20incrementing%2C
%20sequence%3D%20%22%2Bsequence)%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20return%20result%3B%0A
%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D%3B%0Avar
%20sequencer%20%3D%20serial_maker()%3B%0Asequencer.set_prefix(%22Q
%22)%3B%0Asequencer.set_sequence(1000)%3B%0Avar%20unique%20%3D
%20sequencer.generateSerialNumber()%3B%0Adocument.writeln
(%22sequencer.generateSerialNumber()%3D%20%22%2Bunique)%3B%0A%2F%2F
%20-------------------------------------------------%0A%0A%2F
%2Fdocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0A%2F%2Fdocument.writeln(%22%2F%2F%20Chapter%204%20-
%20Functions%20-%20Cascade%22)%3B%0A%2F%2Fdocument.writeln(%22%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2FgetElement
('myBoxDiv').%0A%2F%2F%20%20%20%20move(350%2C%20150).%0A%2F%2F
%20%20%20%20width(100).%0A%2F%2F%20%20%20%20height(100).%0A%2F%2F
%20%20%20%20color('red').%0A%2F%2F%20%20%20%20border('10px%20outset').
%0A%2F%2F%20%20%20%20padding('4px').%0A%2F%2F%20%20%20%20appendText
(%22Please%20stand%20by%22).%0A%2F%2F%20%20%20%20on(%0A%2F%2F
%20%20%20%20%20%20%20%20'mousedown'%2C%0A%2F%2F
%20%20%20%20%20%20%20%20function(m)%20%7B%0A%2F%2F
%20%20%20%20%20%20%20%20%20%20%20%20this.startDrag(m%2C%20this.getNinth
(m))%3B%0A%2F%2F%20%20%20%20%20%20%20%20%7D%0A%2F%2F
%20%20%20%20%20%20%20%20).%0A%2F%2F%20%20%20%20on('mousemove'%2C
%20'drag').%0A%2F%2F%20%20%20%20on('mouseup'%2C%20'stopDrag').%0A%2F%2F
%20%20%20%20later(%0A%2F%2F%20%20%20%20%20%20%20%202000%2C%0A%2F%2F
%20%20%20%20%20%20%20%20function()%20%7B%0A%2F%2F
%20%20%20%20%20%20%20%20%20%20%20%20this.color('yellow').%0A%2F%2F
%20%20%20%20%20%20%20%20%20%20%20%20setHTML(%22What%20hath%20God
%20wrought%3F%22).%0A%2F%2F%20%20%20%20%20%20%20%20%20%20%20%20slide
(400%2C%2040%2C%20200%2C200)%3B%0A%2F%2F%20%20%20%20%20%20%20%20%7D%0A
%2F%2F%20%20%20%20%20%20%20%20).%0A%2F%2F%20%20%20%20tip('This%20box
%20is%20resizable')%3B%0A%2F%2F
%20-------------------------------------------------%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20Curry%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0AFunction.method
('curry'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20function
()%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20slice
%20%3D%20Array.prototype.slice%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20args
%20%3D%20slice.apply(arguments)%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20that
%20%3D%20this%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return
%20function()%20%7B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return
%20that.apply(null%2C%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20args.concat
(slice.apply(arguments)))%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A)%3B%0Avar
%20add1%20%3D%20add.curry(1)%3B%0Adocument.writeln(%22add1(6)%3D
%20%22%2Badd1(6))%3B%0A%2F%2F
%20-------------------------------------------------%0A%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B
%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------%0A%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B
%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------%0A%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------%0Adocument.writeln
(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%22)%3B
%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------%0A%0A%0A
%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%22)%3B%0Adocument.writeln(%22%2F%2F%20Chapter%204%20-%20Functions%20-
%20%22)%3B%0Adocument.writeln(%22%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
%2F%2F%2F%22)%3B%0A%2F%2F
%20-------------------------------------------------%0A%2F%2F
%20-------------------------------------------------