Skip to content

Instantly share code, notes, and snippets.

View chrisber's full-sized avatar

Christian Karl Bernasko chrisber

View GitHub Profile
Linux
<CustomCommands>
<CustomCommands>
<Command type="Execute" command="/opt/monodevelop/lib/monodevelop/bin/MonoDevelop.exe" workingdir="/opt/monodevelop/lib/monodevelop/bin">
<EnvironmentVariables>
<Variable name="MONODEVELOP_DEV_ADDINS" value="${TargetDir}" />
</EnvironmentVariables>
</Command>
</CustomCommands>
@chrisber
chrisber / v8dotnet_segmentation_fault.cs
Last active August 29, 2015 14:09
#v8dotnet segmentation fault
using System;
using System.IO;
using System.Threading;
using V8.Net;
namespace SegmentationFault
{
public class Alpha
{
Run till exit from #0 CreateHandleProxyTest () at Exports.cpp:610
0x000000004001c275 in ?? ()
Value returned is $1 = (HandleProxy *) 0x7fffe80a8d50
(gdb) p * (HandleProxy *) 0x7fffe80a8d50
$2 = {
<ProxyBase> = {
Type = HandleProxyClass
},
members of HandleProxy:
_ID = 117835012,
{
"includes": [
"common.gypi"
],
'variables':{
'base_dir%':'<(base_dir)',
'target_arch%':'x64',
'build_option%':'release',
},
@chrisber
chrisber / v8dotnet_lldb_osx_mono
Last active August 29, 2015 14:13
v8dotnet lldb on OSX with mono
sudo lldb
(lldb) target create mono
Current executable set to 'mono' (i386).
(lldb) run --debug V8.Net-Console.exe
Process 12784 launched: '/usr/bin/mono' (i386)
warning: (i386) /Library/Frameworks/Mono.framework/Versions/3.10.0/lib/mono/4.5/mscorlib.dll.dylib empty dSYM file detected, dSYM was created with an executable with no debug info.
(lldb) c
Creating a V8Engine instance ... Done!
@chrisber
chrisber / V8dotnetTest.cs
Last active August 29, 2015 14:14
#v8dotnet acccess the function of a global object in javascript and return an object from it .
// This is the correct solution provided by jamesnw
// https://gist.github.com/rjamesnw/5ee5a0a2a769b321e1d0
// I added my solution based on his at the bottom.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using V8.Net;
@chrisber
chrisber / v8dotnet_global_function.cs
Last active August 29, 2015 14:14
#v8dotnet Adding a fuction to global context setTimeout()
public class setTimeout : V8Function
{
public override ObjectHandle Initialize(bool isConstructCall, params InternalHandle[] args)
{
Callback = setTimeoutConstructWrapper;
return base.Initialize(isConstructCall, args);
}
@chrisber
chrisber / gist:e8c4394f7d887426bebd
Last active August 29, 2015 14:15
dtmc statechart
dtmc
module statechart
// local state
s : [0..4] init 0;
[] s=0 -> 1.0 : (s'=1) ;
[] s=1 -> 0.2 : (s'=3) + 0.8 : (s'=2);
[] s=2 -> 1.0 : (s'=1);
public static void CleanupSemanticCache()
{
var ls = v8Engine.GlobalObject.GetProperty("languageService");
var resultHandle = ls.Call("cleanupSemanticCache", null);
}
public static Diagnostic[] GetSyntacticDiagnostics(string fileName)
{
Handle fileNameHandle = v8Engine.CreateValue(fileName);
var ls = v8Engine.GlobalObject.GetProperty("languageService");
// Blog post from Nicholas Wolverson
// http://www.scottlogic.com/blog/2015/01/20/typescript-compiler-api.html
function getCompilerOutput(text) {
host.addFile(dummyScriptName, text);
var output = languageService.getEmitOutput(dummyScriptName).outputFiles;
return output && output.length > 0 ? output[0].text : "";
}
function getMatchingBracePosition(text, pos) {
host.addFile(dummyScriptName, text);