1
1
namespace AngleSharp . Scripting . JavaScript
2
2
{
3
3
using AngleSharp . Dom ;
4
+ using AngleSharp . Dom . Events ;
4
5
using Jint ;
5
6
using Jint . Runtime . Environments ;
6
7
using System ;
@@ -12,10 +13,10 @@ sealed class EngineInstance
12
13
readonly Engine _engine ;
13
14
readonly LexicalEnvironment _lexicals ;
14
15
readonly LexicalEnvironment _variables ;
15
- readonly DomNodeInstance _this ;
16
+ readonly DomNodeInstance _window ;
16
17
readonly DomConstructors _constructors ;
17
18
18
- public EngineInstance ( IWindow @this , IDictionary < String , Object > assignments )
19
+ public EngineInstance ( IWindow window , IDictionary < String , Object > assignments )
19
20
{
20
21
_objects = new Dictionary < Object , DomNodeInstance > ( ) ;
21
22
_engine = new Engine ( ) ;
@@ -24,11 +25,14 @@ public EngineInstance(IWindow @this, IDictionary<String, Object> assignments)
24
25
foreach ( var assignment in assignments )
25
26
_engine . SetValue ( assignment . Key , assignment . Value ) ;
26
27
27
- _this = GetDomNode ( @this ) ;
28
- _lexicals = LexicalEnvironment . NewObjectEnvironment ( _engine , _this , _engine . ExecutionContext . LexicalEnvironment , true ) ;
28
+ _window = GetDomNode ( window ) ;
29
+ _lexicals = LexicalEnvironment . NewObjectEnvironment ( _engine , _window , _engine . ExecutionContext . LexicalEnvironment , true ) ;
29
30
_variables = LexicalEnvironment . NewObjectEnvironment ( _engine , _engine . Global , null , false ) ;
30
31
_constructors = new DomConstructors ( this ) ;
31
32
_constructors . Configure ( ) ;
33
+
34
+ this . AddConstructor ( _window , typeof ( Event ) ) ;
35
+ this . AddConstructor ( _window , typeof ( CustomEvent ) ) ;
32
36
}
33
37
34
38
public DomConstructors Constructors
@@ -63,7 +67,7 @@ public DomNodeInstance GetDomNode(Object obj)
63
67
64
68
public void RunScript ( String source )
65
69
{
66
- _engine . EnterExecutionContext ( Lexicals , Variables , _this ) ;
70
+ _engine . EnterExecutionContext ( Lexicals , Variables , _window ) ;
67
71
_engine . Execute ( source ) ;
68
72
_engine . LeaveExecutionContext ( ) ;
69
73
}
0 commit comments