diff --git a/lib/Runtime/Types/ActivationObject.cpp b/lib/Runtime/Types/ActivationObject.cpp index 95888cf1178..557880ed825 100644 --- a/lib/Runtime/Types/ActivationObject.cpp +++ b/lib/Runtime/Types/ActivationObject.cpp @@ -10,11 +10,16 @@ namespace Js { template <> bool VarIsImpl(RecyclableObject* instance) { - return VirtualTableInfo::HasVirtualTable(instance) || - VirtualTableInfo::HasVirtualTable(instance) || - VirtualTableInfo::HasVirtualTable(instance) || - VirtualTableInfo::HasVirtualTable(instance) || - VirtualTableInfo::HasVirtualTable(instance); + return VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance) || + VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance) || + VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance) || + VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance) || + VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance); } BOOL ActivationObject::HasOwnPropertyCheckNoRedecl(PropertyId propertyId) @@ -172,7 +177,8 @@ namespace Js template <> bool VarIsImpl(RecyclableObject* instance) { - return VirtualTableInfo::HasVirtualTable(instance); + return VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance); } BOOL PseudoActivationObject::InitPropertyScoped(PropertyId propertyId, Var value) @@ -211,7 +217,8 @@ namespace Js template <> bool VarIsImpl(RecyclableObject* instance) { - return VirtualTableInfo::HasVirtualTable(instance); + return VirtualTableInfo::HasVirtualTable(instance) || + VirtualTableInfo>::HasVirtualTable(instance); } #if ENABLE_TTD diff --git a/test/Bugs/misc_bugs.js b/test/Bugs/misc_bugs.js index 68b6abd9520..7b405fe1e28 100644 --- a/test/Bugs/misc_bugs.js +++ b/test/Bugs/misc_bugs.js @@ -155,6 +155,16 @@ var tests = [ var obj2 = {__proto__ : p}; // This should not call the getPrototypeOf } }, + { + name: "Cross-site activation object", + body: function () { + var tests = [0, 0]; + tests.forEach(function() { + var eval = WScript.LoadScript(0, "samethread").eval; + eval(0); + }); + } + }, { name: "Destructuring declaration should return undefined", body: function () {