also make sure ->isa works on undeclared packages
authorJesse Luehrs <doy@tozt.net>
Fri, 22 Jun 2012 18:56:15 +0000 (13:56 -0500)
committerJesse Luehrs <doy@tozt.net>
Sat, 23 Jun 2012 17:55:55 +0000 (12:55 -0500)
t/op/universal.t
universal.c

index 01459dd..bbee79e 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
     require "./test.pl";
 }
 
-plan tests => 138;
+plan tests => 139;
 
 $a = {};
 bless $a, "Bob";
@@ -336,3 +336,5 @@ ok(Undeclared->can("can"));
 sub Undeclared::foo { }
 ok(Undeclared->can("foo"));
 ok(!Undeclared->can("something_else"));
+
+ok(Undeclared->isa("UNIVERSAL"));
index 383feaa..a7c480f 100644 (file)
@@ -164,6 +164,8 @@ Perl_sv_derived_from_pvn(pTHX_ SV *sv, const char *const name, const STRLEN len,
     }
     else {
         stash = gv_stashsv(sv, 0);
+        if (!stash)
+            stash = gv_stashpv("UNIVERSAL", 0);
     }
 
     return stash ? isa_lookup(stash, name, len, flags) : FALSE;