# File lib/execjs/mustang_runtime.rb, line 33
      def unbox(value)
        case value
        when Mustang::V8::Array
          value.map { |v| unbox(v) }
        when Mustang::V8::Boolean
          value.to_bool
        when Mustang::V8::NullClass, Mustang::V8::UndefinedClass
          nil
        when Mustang::V8::Function
          nil
        when Mustang::V8::SyntaxError
          raise RuntimeError, value.message
        when Mustang::V8::Error
          raise ProgramError, value.message
        when Mustang::V8::Object
          value.inject({}) { |h, (k, v)|
            v = unbox(v)
            h[k] = v if v
            h
          }
        else
          value.respond_to?(:delegate) ? value.delegate : value
        end
      end