Skip to content

Commit 7e7531b

Browse files
author
Michael Russell
committedJul 4, 2013
Add support for .NET 3.5 passing objects as dictionaries rather than as dynamic objects.
1 parent 2875078 commit 7e7531b

13 files changed

+440
-26
lines changed
 

‎Sandbox/Sandbox.csproj

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -27,6 +27,21 @@
2727
<WarningLevel>4</WarningLevel>
2828
<Externalconsole>true</Externalconsole>
2929
</PropertyGroup>
30+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug NET35|AnyCPU'">
31+
<DebugSymbols>true</DebugSymbols>
32+
<OutputPath>bin\Debug NET35\</OutputPath>
33+
<DefineConstants>DEBUG;</DefineConstants>
34+
<PlatformTarget>AnyCPU</PlatformTarget>
35+
<ErrorReport>prompt</ErrorReport>
36+
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
37+
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
38+
</PropertyGroup>
39+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release NET35|AnyCPU'">
40+
<OutputPath>bin\Release NET35\</OutputPath>
41+
<Optimize>true</Optimize>
42+
<PlatformTarget>AnyCPU</PlatformTarget>
43+
<ErrorReport>prompt</ErrorReport>
44+
</PropertyGroup>
3045
<ItemGroup>
3146
<Reference Include="System" />
3247
</ItemGroup>

‎VroomJs.Win32.sln

+136-4
Original file line numberDiff line numberDiff line change
@@ -13,56 +13,188 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1313
EndProject
1414
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VroomJsNative", "libvroomjs\libvrooomjs.vcxproj", "{17763511-67AD-42AB-A27B-E3F63A3D1DC5}"
1515
EndProject
16+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VroomJs35", "VroomJs\VroomJs35.csproj", "{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}"
17+
EndProject
1618
Global
1719
GlobalSection(SolutionConfigurationPlatforms) = preSolution
20+
Debug NET35|Any CPU = Debug NET35|Any CPU
21+
Debug NET35|Mixed Platforms = Debug NET35|Mixed Platforms
22+
Debug NET35|Win32 = Debug NET35|Win32
23+
Debug NET35|x64 = Debug NET35|x64
24+
Debug NET40|Any CPU = Debug NET40|Any CPU
25+
Debug NET40|Mixed Platforms = Debug NET40|Mixed Platforms
26+
Debug NET40|Win32 = Debug NET40|Win32
27+
Debug NET40|x64 = Debug NET40|x64
1828
Debug|Any CPU = Debug|Any CPU
1929
Debug|Mixed Platforms = Debug|Mixed Platforms
2030
Debug|Win32 = Debug|Win32
2131
Debug|x64 = Debug|x64
32+
Release NET35|Any CPU = Release NET35|Any CPU
33+
Release NET35|Mixed Platforms = Release NET35|Mixed Platforms
34+
Release NET35|Win32 = Release NET35|Win32
35+
Release NET35|x64 = Release NET35|x64
36+
Release NET40|Any CPU = Release NET40|Any CPU
37+
Release NET40|Mixed Platforms = Release NET40|Mixed Platforms
38+
Release NET40|Win32 = Release NET40|Win32
39+
Release NET40|x64 = Release NET40|x64
2240
Release|Any CPU = Release|Any CPU
2341
Release|Mixed Platforms = Release|Mixed Platforms
2442
Release|Win32 = Release|Win32
2543
Release|x64 = Release|x64
2644
EndGlobalSection
2745
GlobalSection(ProjectConfigurationPlatforms) = postSolution
46+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET35|Any CPU.ActiveCfg = Debug|Any CPU
47+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET35|Any CPU.Build.0 = Debug|Any CPU
48+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET35|Mixed Platforms.ActiveCfg = Debug|Any CPU
49+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET35|Mixed Platforms.Build.0 = Debug|Any CPU
50+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET35|Win32.ActiveCfg = Debug|Any CPU
51+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET35|x64.ActiveCfg = Debug|Any CPU
52+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|Any CPU.ActiveCfg = Debug|Any CPU
53+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|Any CPU.Build.0 = Debug|Any CPU
54+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|Mixed Platforms.ActiveCfg = Debug|Any CPU
55+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|Mixed Platforms.Build.0 = Debug|Any CPU
56+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|Win32.ActiveCfg = Debug|Any CPU
57+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|x64.ActiveCfg = Debug|Any CPU
58+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug NET40|x64.Build.0 = Debug|Any CPU
2859
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2960
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
3061
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
3162
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
3263
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug|Win32.ActiveCfg = Debug|Any CPU
3364
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Debug|x64.ActiveCfg = Debug|Any CPU
65+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET35|Any CPU.ActiveCfg = Release|Any CPU
66+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET35|Any CPU.Build.0 = Release|Any CPU
67+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET35|Mixed Platforms.ActiveCfg = Release|Any CPU
68+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET35|Mixed Platforms.Build.0 = Release|Any CPU
69+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET35|Win32.ActiveCfg = Release|Any CPU
70+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET35|x64.ActiveCfg = Release|Any CPU
71+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|Any CPU.ActiveCfg = Release|Any CPU
72+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|Any CPU.Build.0 = Release|Any CPU
73+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|Mixed Platforms.ActiveCfg = Release|Any CPU
74+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|Mixed Platforms.Build.0 = Release|Any CPU
75+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|Win32.ActiveCfg = Release|Any CPU
76+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|x64.ActiveCfg = Release|Any CPU
77+
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release NET40|x64.Build.0 = Release|Any CPU
3478
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
3579
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release|Any CPU.Build.0 = Release|Any CPU
3680
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
3781
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
3882
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release|Win32.ActiveCfg = Release|Any CPU
3983
{2E79AA26-6CD3-4EF0-9113-8421D709E3D4}.Release|x64.ActiveCfg = Release|Any CPU
84+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET35|Any CPU.ActiveCfg = Debug NET35|Any CPU
85+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET35|Mixed Platforms.ActiveCfg = Debug NET35|Any CPU
86+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET35|Mixed Platforms.Build.0 = Debug NET35|Any CPU
87+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET35|Win32.ActiveCfg = Debug NET35|Any CPU
88+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET35|x64.ActiveCfg = Debug NET35|Any CPU
89+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET40|Any CPU.ActiveCfg = Debug|Any CPU
90+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET40|Any CPU.Build.0 = Debug|Any CPU
91+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET40|Mixed Platforms.ActiveCfg = Debug|Any CPU
92+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET40|Mixed Platforms.Build.0 = Debug|Any CPU
93+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET40|Win32.ActiveCfg = Debug|Any CPU
94+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug NET40|x64.ActiveCfg = Debug|Any CPU
4095
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4196
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
4297
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
4398
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
4499
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug|Win32.ActiveCfg = Debug|Any CPU
45100
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Debug|x64.ActiveCfg = Debug|Any CPU
101+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET35|Any CPU.ActiveCfg = Release NET35|Any CPU
102+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET35|Mixed Platforms.ActiveCfg = Release NET35|Any CPU
103+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET35|Mixed Platforms.Build.0 = Release NET35|Any CPU
104+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET35|Win32.ActiveCfg = Release NET35|Any CPU
105+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET35|x64.ActiveCfg = Release NET35|Any CPU
106+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET40|Any CPU.ActiveCfg = Release|Any CPU
107+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET40|Any CPU.Build.0 = Release|Any CPU
108+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET40|Mixed Platforms.ActiveCfg = Release|Any CPU
109+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET40|Mixed Platforms.Build.0 = Release|Any CPU
110+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET40|Win32.ActiveCfg = Release|Any CPU
111+
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release NET40|x64.ActiveCfg = Release|Any CPU
46112
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
47113
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release|Any CPU.Build.0 = Release|Any CPU
48114
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
49115
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
50116
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release|Win32.ActiveCfg = Release|Any CPU
51117
{69D8A607-DDBA-4106-A6D9-10CDCFDF51F8}.Release|x64.ActiveCfg = Release|Any CPU
52-
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|Any CPU.ActiveCfg = Debug|Win32
118+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|Any CPU.ActiveCfg = Debug NET35|x64
119+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|Mixed Platforms.ActiveCfg = Debug NET35|x64
120+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|Mixed Platforms.Build.0 = Debug NET35|x64
121+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|Win32.ActiveCfg = Debug NET35|Win32
122+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|Win32.Build.0 = Debug NET35|Win32
123+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|x64.ActiveCfg = Debug NET35|x64
124+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET35|x64.Build.0 = Debug NET35|x64
125+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|Any CPU.ActiveCfg = Debug|Win32
126+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|Mixed Platforms.ActiveCfg = Debug|x64
127+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|Mixed Platforms.Build.0 = Debug|x64
128+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|Win32.ActiveCfg = Debug|Win32
129+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|Win32.Build.0 = Debug|Win32
130+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|x64.ActiveCfg = Debug|x64
131+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug NET40|x64.Build.0 = Debug|x64
132+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|Any CPU.ActiveCfg = Debug|x64
53133
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
54134
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|Mixed Platforms.Build.0 = Debug|x64
55135
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|Win32.ActiveCfg = Debug|Win32
56136
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|Win32.Build.0 = Debug|Win32
57137
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|x64.ActiveCfg = Debug|x64
58138
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Debug|x64.Build.0 = Debug|x64
59-
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Any CPU.ActiveCfg = Release|Win32
60-
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Mixed Platforms.ActiveCfg = Release|Win32
61-
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Mixed Platforms.Build.0 = Release|Win32
139+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|Any CPU.ActiveCfg = Release NET35|x64
140+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|Mixed Platforms.ActiveCfg = Release NET35|x64
141+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|Mixed Platforms.Build.0 = Release NET35|x64
142+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|Win32.ActiveCfg = Release NET35|Win32
143+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|Win32.Build.0 = Release NET35|Win32
144+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|x64.ActiveCfg = Release NET35|x64
145+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET35|x64.Build.0 = Release NET35|x64
146+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|Any CPU.ActiveCfg = Release|Win32
147+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|Mixed Platforms.ActiveCfg = Release|Win32
148+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|Mixed Platforms.Build.0 = Release|Win32
149+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|Win32.ActiveCfg = Release|Win32
150+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|Win32.Build.0 = Release|Win32
151+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|x64.ActiveCfg = Release|x64
152+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release NET40|x64.Build.0 = Release|x64
153+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Any CPU.ActiveCfg = Release|x64
154+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Mixed Platforms.ActiveCfg = Release|x64
155+
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Mixed Platforms.Build.0 = Release|x64
62156
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Win32.ActiveCfg = Release|Win32
63157
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|Win32.Build.0 = Release|Win32
64158
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|x64.ActiveCfg = Release|x64
65159
{17763511-67AD-42AB-A27B-E3F63A3D1DC5}.Release|x64.Build.0 = Release|x64
160+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|Any CPU.ActiveCfg = Debug NET35|Any CPU
161+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|Any CPU.Build.0 = Debug NET35|Any CPU
162+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|Mixed Platforms.ActiveCfg = Debug NET35|Any CPU
163+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|Mixed Platforms.Build.0 = Debug NET35|Any CPU
164+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|Win32.ActiveCfg = Debug NET35|Any CPU
165+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|x64.ActiveCfg = Debug NET35|Any CPU
166+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET35|x64.Build.0 = Debug NET35|Any CPU
167+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET40|Any CPU.ActiveCfg = Debug NET35|Any CPU
168+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET40|Any CPU.Build.0 = Debug NET35|Any CPU
169+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET40|Mixed Platforms.ActiveCfg = Debug NET35|Any CPU
170+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET40|Mixed Platforms.Build.0 = Debug NET35|Any CPU
171+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET40|Win32.ActiveCfg = Debug NET35|Any CPU
172+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug NET40|x64.ActiveCfg = Debug NET35|Any CPU
173+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
174+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
175+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
176+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
177+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug|Win32.ActiveCfg = Debug|Any CPU
178+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Debug|x64.ActiveCfg = Debug|Any CPU
179+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|Any CPU.ActiveCfg = Release NET35|Any CPU
180+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|Any CPU.Build.0 = Release NET35|Any CPU
181+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|Mixed Platforms.ActiveCfg = Release NET35|Any CPU
182+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|Mixed Platforms.Build.0 = Release NET35|Any CPU
183+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|Win32.ActiveCfg = Release NET35|Any CPU
184+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|x64.ActiveCfg = Release NET35|Any CPU
185+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET35|x64.Build.0 = Release NET35|Any CPU
186+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET40|Any CPU.ActiveCfg = Release NET35|Any CPU
187+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET40|Any CPU.Build.0 = Release NET35|Any CPU
188+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET40|Mixed Platforms.ActiveCfg = Release NET35|Any CPU
189+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET40|Mixed Platforms.Build.0 = Release NET35|Any CPU
190+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET40|Win32.ActiveCfg = Release NET35|Any CPU
191+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release NET40|x64.ActiveCfg = Release NET35|Any CPU
192+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
193+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release|Any CPU.Build.0 = Release|Any CPU
194+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
195+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
196+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release|Win32.ActiveCfg = Release|Any CPU
197+
{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}.Release|x64.ActiveCfg = Release|Any CPU
66198
EndGlobalSection
67199
GlobalSection(SolutionProperties) = preSolution
68200
HideSolutionNode = FALSE

‎VroomJs/VroomJs.csproj

+3-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<DebugSymbols>true</DebugSymbols>
1515
<Optimize>false</Optimize>
1616
<OutputPath>..\build\Debug\</OutputPath>
17-
<DefineConstants>DEBUG;</DefineConstants>
17+
<DefineConstants>DEBUG;NET40</DefineConstants>
1818
<ErrorReport>prompt</ErrorReport>
1919
<WarningLevel>4</WarningLevel>
2020
<ConsolePause>false</ConsolePause>
@@ -27,6 +27,7 @@
2727
<WarningLevel>4</WarningLevel>
2828
<ConsolePause>false</ConsolePause>
2929
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
30+
<DefineConstants>NET40</DefineConstants>
3031
</PropertyGroup>
3132
<ItemGroup>
3233
<Reference Include="System" />
@@ -35,11 +36,11 @@
3536
<ItemGroup>
3637
<Compile Include="Properties\AssemblyInfo.cs" />
3738
<Compile Include="VroomJs\JsEngine.cs" />
39+
<Compile Include="VroomJs\JsObject.Dynamic.cs" />
3840
<Compile Include="VroomJs\JsValue.cs" />
3941
<Compile Include="VroomJs\JsException.cs" />
4042
<Compile Include="VroomJs\JsValueType.cs" />
4143
<Compile Include="VroomJs\JsInteropException.cs" />
42-
<Compile Include="VroomJs\JsObject.cs" />
4344
<Compile Include="VroomJs\JsConvert.cs" />
4445
<Compile Include="VroomJs\WeakDelegate.cs" />
4546
<Compile Include="VroomJs\JsEngineStats.cs" />

‎VroomJs/VroomJs/JsConvert.cs

+26-5
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public object FromJsValue(JsValue v)
6565
case JsValueType.Array: {
6666
var r = new object[v.Length];
6767
for (int i=0 ; i < v.Length ; i++) {
68-
var vi =(JsValue)Marshal.PtrToStructure((v.Ptr + 16*i), typeof(JsValue));
68+
var vi =(JsValue)Marshal.PtrToStructure(new IntPtr(v.Ptr.ToInt64() + (16*i)), typeof(JsValue));
6969
r[i] = FromJsValue(vi);
7070
}
7171
return r;
@@ -87,19 +87,40 @@ public object FromJsValue(JsValue v)
8787
if (v.Ptr != IntPtr.Zero)
8888
msg = Marshal.PtrToStringUni(v.Ptr);
8989
return new JsException(msg, _engine.KeepAliveGet(v.Index) as Exception);
90-
90+
#if NET40
9191
case JsValueType.Wrapped:
9292
return new JsObject(_engine, v.Ptr);
9393

9494
case JsValueType.WrappedError:
9595
return new JsException(new JsObject(_engine, v.Ptr));
96+
#else
97+
case JsValueType.Wrapped:
98+
return JsDictionaryObject(v);
99+
100+
case JsValueType.WrappedError:
101+
return new JsException(JsDictionaryObject(v));
102+
#endif
96103

97-
default:
104+
default:
98105
throw new InvalidOperationException("unknown type code: " + v.Type);
99106
}
100107
}
101108

102-
public JsValue ToJsValue(object obj)
109+
#if !NET40
110+
private JsObject JsDictionaryObject(JsValue v)
111+
{
112+
JsObject obj = new JsObject();
113+
for (int i = 0; i < (v.Length * 2); i += 2)
114+
{
115+
var key = (JsValue)Marshal.PtrToStructure(new IntPtr(v.Ptr.ToInt64() + (16 * i)), typeof(JsValue));
116+
var value = (JsValue)Marshal.PtrToStructure(new IntPtr(v.Ptr.ToInt64() + (16 * (i + 1))), typeof(JsValue));
117+
obj[FromJsValue(key)] = FromJsValue(value);
118+
}
119+
return obj;
120+
}
121+
#endif
122+
123+
public JsValue ToJsValue(object obj)
103124
{
104125
if (obj == null)
105126
return new JsValue { Type = JsValueType.Null };
@@ -156,7 +177,7 @@ public JsValue ToJsValue(object obj)
156177
if (v.Length != array.Length)
157178
throw new JsInteropException("can't allocate memory on the unmanaged side");
158179
for (int i=0 ; i < array.Length ; i++)
159-
Marshal.StructureToPtr(ToJsValue(array[i]), (v.Ptr + 16*i), false);
180+
Marshal.StructureToPtr(ToJsValue(array[i]), new IntPtr(v.Ptr.ToInt64() + (16*i)), false);
160181
return v;
161182
}
162183

‎VroomJs/VroomJs/JsEngine.cs

+17-6
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ static extern IntPtr jsengine_new(
4646
KeepAliveInvokeDelegate keepaliveInvoke
4747
);
4848

49+
[DllImport("VroomJsNative")]
50+
static extern void jsengine_set_object_marshal_type(JsObjectMarshalType objectMarshalType);
51+
4952
[DllImport("VroomJsNative")]
5053
static extern void jsengine_dispose(HandleRef engine);
5154

@@ -88,11 +91,17 @@ KeepAliveInvokeDelegate keepaliveInvoke
8891
[DllImport("VroomJsNative")]
8992
static internal extern void jsvalue_dispose(JsValue value);
9093

91-
public JsEngine()
92-
{
93-
_keepalives = new KeepAliveDictionaryStore();
94+
static JsEngine() {
95+
JsObjectMarshalType objectMarshalType = JsObjectMarshalType.Dictionary;
96+
#if NET40
97+
objectMarshalType = JsObjectMarshalType.Dynamic;
98+
#endif
99+
jsengine_set_object_marshal_type(objectMarshalType);
100+
}
94101

95-
_keepalive_remove = new KeepaliveRemoveDelegate(KeepAliveRemove);
102+
public JsEngine() {
103+
_keepalives = new KeepAliveDictionaryStore();
104+
_keepalive_remove = new KeepaliveRemoveDelegate(KeepAliveRemove);
96105
_keepalive_get_property_value = new KeepAliveGetPropertyValueDelegate(KeepAliveGetPropertyValue);
97106
_keepalive_set_property_value = new KeepAliveSetPropertyValueDelegate(KeepAliveSetPropertyValue);
98107
_keepalive_invoke = new KeepAliveInvokeDelegate(KeepAliveInvoke);
@@ -187,6 +196,7 @@ public void SetVariable(string name, object value)
187196
// TODO: Check the result of the operation for errors.
188197
}
189198

199+
#if NET40
190200
public IEnumerable<string> GetMemberNames(JsObject obj) {
191201
if (obj == null)
192202
throw new ArgumentNullException("obj");
@@ -208,6 +218,7 @@ public IEnumerable<string> GetMemberNames(JsObject obj) {
208218
return arr.Cast<string>();
209219
}
210220

221+
211222
public object GetPropertyValue(JsObject obj, string name)
212223
{
213224
if (obj == null)
@@ -290,8 +301,8 @@ public void DisposeObject(JsObject obj)
290301
else
291302
jsengine_dispose_object(_engine, obj.Handle);
292303
}
293-
294-
public void Flush()
304+
#endif
305+
public void Flush()
295306
{
296307
jsengine_force_gc();
297308
}
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace VroomJs
7+
{
8+
public class JsObject : Dictionary<object, object>
9+
{
10+
}
11+
}
File renamed without changes.
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace VroomJs {
7+
public enum JsObjectMarshalType {
8+
Dynamic = 1,
9+
Dictionary = 2
10+
}
11+
}

‎VroomJs/VroomJs35.csproj

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6+
<ProductVersion>10.0.0</ProductVersion>
7+
<SchemaVersion>2.0</SchemaVersion>
8+
<ProjectGuid>{2E79AA26-6CD3-4EF0-9123-8421E709E3D4}</ProjectGuid>
9+
<OutputType>Library</OutputType>
10+
<RootNamespace>VroomJs</RootNamespace>
11+
<AssemblyName>VroomJs</AssemblyName>
12+
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
13+
<TargetFrameworkProfile />
14+
</PropertyGroup>
15+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
16+
<DebugSymbols>true</DebugSymbols>
17+
<Optimize>false</Optimize>
18+
<OutputPath>..\build\Debug\</OutputPath>
19+
<DefineConstants>DEBUG;</DefineConstants>
20+
<ErrorReport>prompt</ErrorReport>
21+
<WarningLevel>4</WarningLevel>
22+
<ConsolePause>false</ConsolePause>
23+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
24+
</PropertyGroup>
25+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
26+
<Optimize>true</Optimize>
27+
<OutputPath>..\build\Release</OutputPath>
28+
<ErrorReport>prompt</ErrorReport>
29+
<WarningLevel>4</WarningLevel>
30+
<ConsolePause>false</ConsolePause>
31+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
32+
</PropertyGroup>
33+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug NET35|AnyCPU'">
34+
<DebugSymbols>true</DebugSymbols>
35+
<OutputPath>..\build\Debug NET35\</OutputPath>
36+
<DefineConstants>DEBUG;NET35</DefineConstants>
37+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
38+
<PlatformTarget>AnyCPU</PlatformTarget>
39+
<ErrorReport>prompt</ErrorReport>
40+
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
41+
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
42+
</PropertyGroup>
43+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release NET35|AnyCPU'">
44+
<OutputPath>bin\Release NET35\</OutputPath>
45+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
46+
<Optimize>true</Optimize>
47+
<PlatformTarget>AnyCPU</PlatformTarget>
48+
<ErrorReport>prompt</ErrorReport>
49+
<DefineConstants>NET35</DefineConstants>
50+
</PropertyGroup>
51+
<ItemGroup>
52+
<Reference Include="System" />
53+
<Reference Include="System.Core" />
54+
</ItemGroup>
55+
<ItemGroup>
56+
<Compile Include="Properties\AssemblyInfo.cs" />
57+
<Compile Include="VroomJs\JsEngine.cs" />
58+
<Compile Include="VroomJs\JsObjectMarshalType.cs" />
59+
<Compile Include="VroomJs\JsValue.cs" />
60+
<Compile Include="VroomJs\JsException.cs" />
61+
<Compile Include="VroomJs\JsValueType.cs" />
62+
<Compile Include="VroomJs\JsInteropException.cs" />
63+
<Compile Include="VroomJs\JsConvert.cs" />
64+
<Compile Include="VroomJs\WeakDelegate.cs" />
65+
<Compile Include="VroomJs\JsEngineStats.cs" />
66+
<Compile Include="VroomJs\IKeepAliveStore.cs" />
67+
<Compile Include="VroomJs\KeepAliveDictionaryStore.cs" />
68+
</ItemGroup>
69+
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
70+
<ItemGroup>
71+
<Compile Include="VroomJs\JsObject.Dictionary.cs" />
72+
</ItemGroup>
73+
</Project>

‎libvroomjs/bridge.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,15 @@
2727

2828
using namespace v8;
2929

30+
int js_object_marshal_type;
31+
3032
extern "C"
3133
{
34+
EXPORT void jsengine_set_object_marshal_type(int32_t type)
35+
{
36+
js_object_marshal_type = type;
37+
}
38+
3239
EXPORT JsEngine* jsengine_new(keepalive_remove_f keepalive_remove,
3340
keepalive_get_property_value_f keepalive_get_property_value,
3441
keepalive_set_property_value_f keepalive_set_property_value,

‎libvroomjs/jsengine.cpp

+23-8
Original file line numberDiff line numberDiff line change
@@ -383,15 +383,30 @@ jsvalue JsEngine::WrappedFromV8(Handle<Object> obj)
383383
jsvalue v;
384384

385385
v.type = JSVALUE_TYPE_WRAPPED;
386-
v.length = 0;
387-
388-
// A Persistent<Object> is exactly the size of an IntPtr, right?
389-
// If not we're in deep deep trouble (on IA32 and AMD64 should be).
390-
// We should even cast it to void* because C++ doesn't allow to put
391-
// it in a union: going scary and scarier here.
392-
v.value.ptr = new Persistent<Object>(Persistent<Object>::New(obj));
393386

394-
return v;
387+
if (js_object_marshal_type == JSOBJECT_MARSHAL_TYPE_DYNAMIC) {
388+
v.length = 0;
389+
// A Persistent<Object> is exactly the size of an IntPtr, right?
390+
// If not we're in deep deep trouble (on IA32 and AMD64 should be).
391+
// We should even cast it to void* because C++ doesn't allow to put
392+
// it in a union: going scary and scarier here.
393+
v.value.ptr = new Persistent<Object>(Persistent<Object>::New(obj));
394+
} else {
395+
Local<Array> names = obj->GetOwnPropertyNames();
396+
v.length = names->Length();
397+
jsvalue* values = new jsvalue[v.length * 2];
398+
if (values != NULL) {
399+
for(int i = 0; i < v.length; i++) {
400+
int indx = (i * 2);
401+
Local<Value> key = names->Get(i);
402+
values[indx] = AnyFromV8(key);
403+
values[indx+1] = AnyFromV8(obj->Get(key));
404+
}
405+
v.value.arr = values;
406+
}
407+
}
408+
409+
return v;
395410
}
396411

397412
jsvalue JsEngine::ManagedFromV8(Handle<Object> obj)

‎libvroomjs/libvrooomjs.vcxproj

+112
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug NET35|Win32">
5+
<Configuration>Debug NET35</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Debug NET35|x64">
9+
<Configuration>Debug NET35</Configuration>
10+
<Platform>x64</Platform>
11+
</ProjectConfiguration>
412
<ProjectConfiguration Include="Debug|Win32">
513
<Configuration>Debug</Configuration>
614
<Platform>Win32</Platform>
@@ -9,6 +17,14 @@
917
<Configuration>Debug</Configuration>
1018
<Platform>x64</Platform>
1119
</ProjectConfiguration>
20+
<ProjectConfiguration Include="Release NET35|Win32">
21+
<Configuration>Release NET35</Configuration>
22+
<Platform>Win32</Platform>
23+
</ProjectConfiguration>
24+
<ProjectConfiguration Include="Release NET35|x64">
25+
<Configuration>Release NET35</Configuration>
26+
<Platform>x64</Platform>
27+
</ProjectConfiguration>
1228
<ProjectConfiguration Include="Release|Win32">
1329
<Configuration>Release</Configuration>
1430
<Platform>Win32</Platform>
@@ -29,46 +45,93 @@
2945
<UseDebugLibraries>true</UseDebugLibraries>
3046
<CharacterSet>MultiByte</CharacterSet>
3147
</PropertyGroup>
48+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|Win32'" Label="Configuration">
49+
<ConfigurationType>DynamicLibrary</ConfigurationType>
50+
<UseDebugLibraries>true</UseDebugLibraries>
51+
<CharacterSet>MultiByte</CharacterSet>
52+
</PropertyGroup>
3253
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
3354
<ConfigurationType>DynamicLibrary</ConfigurationType>
3455
<UseDebugLibraries>true</UseDebugLibraries>
3556
<CharacterSet>MultiByte</CharacterSet>
3657
</PropertyGroup>
58+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|x64'" Label="Configuration">
59+
<ConfigurationType>DynamicLibrary</ConfigurationType>
60+
<UseDebugLibraries>true</UseDebugLibraries>
61+
<CharacterSet>MultiByte</CharacterSet>
62+
</PropertyGroup>
3763
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
3864
<ConfigurationType>Application</ConfigurationType>
3965
<UseDebugLibraries>false</UseDebugLibraries>
4066
<WholeProgramOptimization>true</WholeProgramOptimization>
4167
<CharacterSet>MultiByte</CharacterSet>
4268
</PropertyGroup>
69+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|Win32'" Label="Configuration">
70+
<ConfigurationType>Application</ConfigurationType>
71+
<UseDebugLibraries>false</UseDebugLibraries>
72+
<WholeProgramOptimization>true</WholeProgramOptimization>
73+
<CharacterSet>MultiByte</CharacterSet>
74+
</PropertyGroup>
4375
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
4476
<ConfigurationType>Application</ConfigurationType>
4577
<UseDebugLibraries>false</UseDebugLibraries>
4678
<WholeProgramOptimization>true</WholeProgramOptimization>
4779
<CharacterSet>MultiByte</CharacterSet>
4880
</PropertyGroup>
81+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|x64'" Label="Configuration">
82+
<ConfigurationType>Application</ConfigurationType>
83+
<UseDebugLibraries>false</UseDebugLibraries>
84+
<WholeProgramOptimization>true</WholeProgramOptimization>
85+
<CharacterSet>MultiByte</CharacterSet>
86+
</PropertyGroup>
4987
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
5088
<ImportGroup Label="ExtensionSettings">
5189
</ImportGroup>
5290
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
5391
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
5492
</ImportGroup>
93+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|Win32'" Label="PropertySheets">
94+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
95+
</ImportGroup>
5596
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
5697
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
5798
</ImportGroup>
99+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|x64'" Label="PropertySheets">
100+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
101+
</ImportGroup>
58102
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
59103
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60104
</ImportGroup>
105+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|Win32'" Label="PropertySheets">
106+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
107+
</ImportGroup>
61108
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
62109
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63110
</ImportGroup>
111+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|x64'" Label="PropertySheets">
112+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
113+
</ImportGroup>
64114
<PropertyGroup Label="UserMacros" />
65115
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
66116
<IncludePath>C:\v8-3.15\v8-3.15\include;$(IncludePath)</IncludePath>
67117
</PropertyGroup>
118+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|Win32'">
119+
<IncludePath>C:\v8-3.15\v8-3.15\include;$(IncludePath)</IncludePath>
120+
</PropertyGroup>
68121
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
69122
<IncludePath>C:\v8-3.17\include;$(IncludePath)</IncludePath>
70123
<OutDir>$(SolutionDir)Build\$(Configuration)\</OutDir>
71124
</PropertyGroup>
125+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|x64'">
126+
<IncludePath>C:\v8-3.17\include;$(IncludePath)</IncludePath>
127+
<OutDir>$(SolutionDir)Build\$(Configuration)\</OutDir>
128+
</PropertyGroup>
129+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|x64'">
130+
<IncludePath>C:\v8-3.17\include;$(IncludePath)</IncludePath>
131+
</PropertyGroup>
132+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
133+
<IncludePath>C:\v8-3.17\include;$(IncludePath)</IncludePath>
134+
</PropertyGroup>
72135
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
73136
<ClCompile>
74137
<WarningLevel>Level3</WarningLevel>
@@ -79,6 +142,16 @@
79142
<AdditionalDependencies>C:\v8-3.15\v8-3.15\build\Release\lib\v8_base.lib;C:\v8-3.15\v8-3.15\build\Release\lib\v8_snapshot.lib;%(AdditionalDependencies)</AdditionalDependencies>
80143
</Link>
81144
</ItemDefinitionGroup>
145+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|Win32'">
146+
<ClCompile>
147+
<WarningLevel>Level3</WarningLevel>
148+
<Optimization>Disabled</Optimization>
149+
</ClCompile>
150+
<Link>
151+
<GenerateDebugInformation>true</GenerateDebugInformation>
152+
<AdditionalDependencies>C:\v8-3.15\v8-3.15\build\Release\lib\v8_base.lib;C:\v8-3.15\v8-3.15\build\Release\lib\v8_snapshot.lib;%(AdditionalDependencies)</AdditionalDependencies>
153+
</Link>
154+
</ItemDefinitionGroup>
82155
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
83156
<ClCompile>
84157
<WarningLevel>Level3</WarningLevel>
@@ -90,6 +163,17 @@
90163
<AdditionalDependencies>C:\v8-3.17\build\Release\lib\v8.lib;C:\v8-3.17\build\Release\lib\v8_base.lib;WINMM.LIB;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
91164
</Link>
92165
</ItemDefinitionGroup>
166+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug NET35|x64'">
167+
<ClCompile>
168+
<WarningLevel>Level3</WarningLevel>
169+
<Optimization>Disabled</Optimization>
170+
<PreprocessorDefinitions>NODEBUG;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
171+
</ClCompile>
172+
<Link>
173+
<GenerateDebugInformation>true</GenerateDebugInformation>
174+
<AdditionalDependencies>C:\v8-3.17\build\Release\lib\v8.lib;C:\v8-3.17\build\Release\lib\v8_base.lib;WINMM.LIB;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
175+
</Link>
176+
</ItemDefinitionGroup>
93177
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
94178
<ClCompile>
95179
<WarningLevel>Level3</WarningLevel>
@@ -103,6 +187,19 @@
103187
<OptimizeReferences>true</OptimizeReferences>
104188
</Link>
105189
</ItemDefinitionGroup>
190+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|Win32'">
191+
<ClCompile>
192+
<WarningLevel>Level3</WarningLevel>
193+
<Optimization>MaxSpeed</Optimization>
194+
<FunctionLevelLinking>true</FunctionLevelLinking>
195+
<IntrinsicFunctions>true</IntrinsicFunctions>
196+
</ClCompile>
197+
<Link>
198+
<GenerateDebugInformation>true</GenerateDebugInformation>
199+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
200+
<OptimizeReferences>true</OptimizeReferences>
201+
</Link>
202+
</ItemDefinitionGroup>
106203
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
107204
<ClCompile>
108205
<WarningLevel>Level3</WarningLevel>
@@ -114,6 +211,21 @@
114211
<GenerateDebugInformation>true</GenerateDebugInformation>
115212
<EnableCOMDATFolding>true</EnableCOMDATFolding>
116213
<OptimizeReferences>true</OptimizeReferences>
214+
<AdditionalDependencies>C:\v8-3.17\build\Release\lib\v8.lib;C:\v8-3.17\build\Release\lib\v8_base.lib;WINMM.LIB;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
215+
</Link>
216+
</ItemDefinitionGroup>
217+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release NET35|x64'">
218+
<ClCompile>
219+
<WarningLevel>Level3</WarningLevel>
220+
<Optimization>MaxSpeed</Optimization>
221+
<FunctionLevelLinking>true</FunctionLevelLinking>
222+
<IntrinsicFunctions>true</IntrinsicFunctions>
223+
</ClCompile>
224+
<Link>
225+
<GenerateDebugInformation>true</GenerateDebugInformation>
226+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
227+
<OptimizeReferences>true</OptimizeReferences>
228+
<AdditionalDependencies>C:\v8-3.17\build\Release\lib\v8.lib;C:\v8-3.17\build\Release\lib\v8_base.lib;WINMM.LIB;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
117229
</Link>
118230
</ItemDefinitionGroup>
119231
<ItemGroup>

‎libvroomjs/vroomjs.h

+5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232

3333
using namespace v8;
3434

35+
#define JSOBJECT_MARSHAL_TYPE_DYNAMIC 1
36+
#define JSOBJECT_MARSHAL_TYPE_DICTIONARY 2
37+
3538
// jsvalue (JsValue on the CLR side) is a struct that can be easily marshaled
3639
// by simply blitting its value (being only 16 bytes should be quite fast too).
3740

@@ -56,6 +59,8 @@ using namespace v8;
5659
#define EXPORT
5760
#endif
5861

62+
extern int32_t js_object_marshal_type;
63+
5964
extern "C"
6065
{
6166
struct jsvalue

0 commit comments

Comments
 (0)
Please sign in to comment.