(i *interpreter)
| 1208 | } |
| 1209 | |
| 1210 | func buildStdObject(i *interpreter) (*valueObject, error) { |
| 1211 | objVal, err := evaluateStd(i) |
| 1212 | if err != nil { |
| 1213 | return nil, err |
| 1214 | } |
| 1215 | obj := objVal.(*valueObject).uncached.(*simpleObject) |
| 1216 | builtinFields := map[string]unboundField{} |
| 1217 | for key, ec := range funcBuiltins { |
| 1218 | function := valueFunction{ec: ec} // TODO(sbarzowski) better way to build function value |
| 1219 | builtinFields[key] = &readyValue{&function} |
| 1220 | } |
| 1221 | |
| 1222 | for name, value := range builtinFields { |
| 1223 | obj.fields[name] = simpleObjectField{value, ast.ObjectFieldHidden} |
| 1224 | } |
| 1225 | return objVal.(*valueObject), nil |
| 1226 | } |
| 1227 | |
| 1228 | func evaluateStd(i *interpreter) (value, error) { |
| 1229 | // We are bootstrapping std before it is properly available. |
no test coverage detected
searching dependent graphs…