Jelajahi Sumber

Merged the fix for #151.

Dmitry Panov 5 tahun lalu
induk
melakukan
91317b8079
1 mengubah file dengan 8 tambahan dan 8 penghapusan
  1. 8 8
      vm.go

+ 8 - 8
vm.go

@@ -203,9 +203,9 @@ func (s *valueStack) expand(idx int) {
 	}
 }
 
-func stashObjHas(obj objectImpl, name unistring.String) bool {
-	if obj.hasPropertyStr(name) {
-		if unscopables, ok := obj.getSym(symUnscopables, nil).(*Object); ok {
+func stashObjHas(obj *Object, name unistring.String) bool {
+	if obj.self.hasPropertyStr(name) {
+		if unscopables, ok := obj.self.getSym(symUnscopables, nil).(*Object); ok {
 			if b := unscopables.self.getStr(name, nil); b != nil {
 				return !b.ToBoolean()
 			}
@@ -1504,9 +1504,9 @@ func (g getLocal) exec(vm *vm) {
 }
 
 type getVar struct {
-	name unistring.String
-	idx  uint32
-	ref, callee  bool
+	name        unistring.String
+	idx         uint32
+	ref, callee bool
 }
 
 func (g getVar) exec(vm *vm) {
@@ -1657,7 +1657,7 @@ func (n getVar1) exec(vm *vm) {
 type getVar1Ref string
 
 func (n getVar1Ref) exec(vm *vm) {
-	name := string(n)
+	name := unistring.String(n)
 	var val Value
 	for stash := vm.stash; stash != nil; stash = stash.outer {
 		if v, exists := stash.getByName(name, vm); exists {
@@ -1666,7 +1666,7 @@ func (n getVar1Ref) exec(vm *vm) {
 		}
 	}
 	if val == nil {
-		val = vm.r.globalObject.self.getStr(name)
+		val = vm.r.globalObject.self.getStr(name, nil)
 		if val == nil {
 			val = valueUnresolved{r: vm.r, ref: name}
 		}