Author: coke
Date: Sun Jul 27 14:15:49 2008
New Revision: 29807

Modified:
   trunk/languages/tcl/lib/skipped_tests.tcl
   trunk/languages/tcl/runtime/builtin/incr.pir
   trunk/languages/tcl/t/cmd_incr.t

Log:
[tcl] make [incr] autovivify, unTODOing some internal & spec tests.


Modified: trunk/languages/tcl/lib/skipped_tests.tcl
==============================================================================
--- trunk/languages/tcl/lib/skipped_tests.tcl   (original)
+++ trunk/languages/tcl/lib/skipped_tests.tcl   Sun Jul 27 14:15:49 2008
@@ -74,8 +74,6 @@
   } {better switch handling} {
     subst-7.[27]
     switch-3.1[234]
-  } {[incr] should autovivify} {
-    incr-1.13 incr-1.26 incr-2.13 incr-2.26 incr-old-2.3
   } {[expr wide()]} {
     incr-3.[12]
   } {[unknown]} {

Modified: trunk/languages/tcl/runtime/builtin/incr.pir
==============================================================================
--- trunk/languages/tcl/runtime/builtin/incr.pir        (original)
+++ trunk/languages/tcl/runtime/builtin/incr.pir        Sun Jul 27 14:15:49 2008
@@ -11,12 +11,18 @@
   # get necessary conversion subs
   .local pmc toInteger
   toInteger = get_root_global ['_tcl'], 'toInteger'
-  .local pmc readVar
-  readVar = get_root_global ['_tcl'], 'readVar'
+  .local pmc makeVar
+  makeVar = get_root_global ['_tcl'], 'makeVar'
   .local pmc a_varName
   a_varName = argv[0]
-  a_varName = readVar(a_varName)
-  a_varName = toInteger(a_varName)
+  $P0 = makeVar(a_varName)
+  $S0 = typeof $P0
+  if $S0 != 'Undef' goto got_var
+  .local pmc setVar
+  setVar = get_root_global ['_tcl'], 'setVar'
+  $P0 = setVar(a_varName,0)
+got_var:
+  a_varName = toInteger($P0)
   .local pmc a_increment
   if argc < 2 goto default_increment
   a_increment = argv[1]

Modified: trunk/languages/tcl/t/cmd_incr.t
==============================================================================
--- trunk/languages/tcl/t/cmd_incr.t    (original)
+++ trunk/languages/tcl/t/cmd_incr.t    Sun Jul 27 14:15:49 2008
@@ -77,7 +77,7 @@
 eval_is {
   catch {unset a}
   incr a
-} 1 {no such variable} {TODO {not changed yet. this will require some work}}
+} 1 {no such variable}
 
 
 # Uses the same parsing mechanism as

Reply via email to