aboutsummaryrefslogtreecommitdiffstats
path: root/jsre/completion.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2016-02-15 23:42:39 +0800
committerFelix Lange <fjl@twurst.com>2016-02-15 23:43:25 +0800
commit6ba7bbbe29029c8bf2bf75f8ebcbd3847eafa401 (patch)
tree9cbe612ff89d66304bd530136992ae7a3f8e04d5 /jsre/completion.go
parentae5bc89cad98a4fd3176502b66678d768f2fd15f (diff)
downloadgo-tangerine-6ba7bbbe29029c8bf2bf75f8ebcbd3847eafa401.tar.gz
go-tangerine-6ba7bbbe29029c8bf2bf75f8ebcbd3847eafa401.tar.zst
go-tangerine-6ba7bbbe29029c8bf2bf75f8ebcbd3847eafa401.zip
jsre: include constructor properties in auto-completion
Diffstat (limited to 'jsre/completion.go')
-rw-r--r--jsre/completion.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/jsre/completion.go b/jsre/completion.go
index 2fda6ef0d..e84a5b75c 100644
--- a/jsre/completion.go
+++ b/jsre/completion.go
@@ -40,11 +40,11 @@ func getCompletions(vm *otto.Otto, line string) (results []string) {
prefix = parts[len(parts)-1]
}
- res, err := vm.Eval(objRef)
- if err != nil || !res.IsObject() {
+ obj, _ := vm.Object(objRef)
+ if obj == nil {
return nil
}
- for _, k := range res.Object().Keys() {
+ iterOwnAndConstructorKeys(vm, obj, func(k string) {
if strings.HasPrefix(k, prefix) {
if objRef == "this" {
results = append(results, k)
@@ -52,9 +52,9 @@ func getCompletions(vm *otto.Otto, line string) (results []string) {
results = append(results, strings.Join(parts[:len(parts)-1], ".")+"."+k)
}
}
- }
+ })
// e.g. web3<tab><tab> append dot since its an object
- if lineRes, _ := vm.Eval(line); lineRes.IsObject() {
+ if obj, _ = vm.Object(line); obj != nil {
results = append(results, line+".")
}