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