Skip to content

Commit

Permalink
Merge branch 'interop-dynamic'
Browse files Browse the repository at this point in the history
  • Loading branch information
otac0n committed Jul 4, 2011
2 parents aa61a73 + 5f9243f commit 51d7ac7
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions Src/IronJS/Runtime.fs
Expand Up @@ -525,22 +525,29 @@ and [<AllowNullLiteral>] CommonObject =
}

override x.TryGetMember(binder:GetMemberBinder, result:obj byref) : bool =
let item:Descriptor = x.Find(binder.Name)
result <- if item.HasValue then item.Value.UnboxObject() else Undefined.Instance :> obj
let prop = x.Get(binder.Name)
result <- prop.UnboxObject()
true

override x.TryGetIndex(binder:GetIndexBinder, indexes:obj array, result:obj byref) : bool =
if indexes.Length <> 1 then
false
else
let item:Descriptor = x.Find(string indexes.[0])
result <- if item.HasValue then item.Value.UnboxObject() else Undefined.Instance :> obj
let prop = x.Get(string indexes.[0])
result <- prop.UnboxObject()
true

override x.TrySetMember(binder:SetMemberBinder, value:obj) : bool =
x.Put(binder.Name, value)
true

override x.TrySetIndex(binder:SetIndexBinder, indexes:obj array, value:obj) : bool =
if indexes.Length <> 1 then
false
else
x.Put(string indexes.[0], value)
true

override x.TryInvokeMember(binder:InvokeMemberBinder, args:obj array, result:obj byref) : bool =
let item:Descriptor = x.Find(binder.Name)
if item.HasValue then
Expand Down

0 comments on commit 51d7ac7

Please sign in to comment.